本指南首先简要介绍了DeepSeek的背景,随后详述单机条件下针对DeepSeek-R1-Distill-Qwen-7B模型在昇腾910b物理机上的私有化部署过程,最后介绍通过镜像快速部署DeepSeek模型的方法。
一、DeepSeek简介
DeepSeek是由中国顶尖AI团队深度求索(DeepSeek Inc.)自主研发的通用大语言模型体系。DeepSeek系列涵盖从7B到超千亿参数的完整模型矩阵,在数学推理、代码生成、多轮对话等核心能力上达到国际领先水平。目前已衍生出DeepSeek-V2、DeepSeek-V3、DeepSeek-R1等多个版本,广泛应用于智能客服、教育辅助、金融分析等垂直领域。
2025年1月20日发布的DeepSeek-R1 ,在数学、代码、自然语言推理等任务上,性能比肩 OpenAI o1 正式版。
DeepSeek-R1模型参数量为671B,通过 DeepSeek-R1 的输出,蒸馏了 6 个参数量较小的模型(1.5B、7B、8B、14B、32B、70B),其中 32B 和 70B 模型在多项能力上实现了对标 OpenAI o1-mini 的效果。
二、物理机私有化部署DeepSeek(单机)
2.1 环境准备
2.1.1 开通物理机资源
依次选择昇腾910b物理机所在资源池、可用区、规格、镜像(Ubuntu22.04@ascend-910b),下单等待物理机成功开通。
可选规格(推荐):建议客户根据实际需求选择。
服务器类型 | 规格名 | 资源池 | CPU | 内存(GB) | GPU |
---|---|---|---|---|---|
910b液冷 | physical.lcas910b.2xlarge11 | 上海15(弹性裸金属)杭州7 (弹性裸金属)武汉41(弹性裸金属)芜湖4 (弹性裸金属)西南1 (弹性裸金属)华北2 (弹性裸金属) | 4路48核 | 1536 | 8*昇腾910B |
910b风冷 | physical.acas910b.2xlarge11 | 华北2 (标准裸金属)华南2 (标准裸金属)西南2 (标准裸金属)中卫5 (标准裸金属)沈阳8 (弹性裸金属) | 4路48核 | 1536 | 8*昇腾910B |
2.1.2 基础环境配置
a. 磁盘配置
1、查看存储设备
root@DS-test1:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 57.4M 1 loop /snap/core20/1408
loop1 7:1 0 71.8M 1 loop /snap/lxd/22927
loop2 7:2 0 38.7M 1 loop /snap/snapd/15541
sda 8:0 0 446.6G 0 disk
├─sda1 8:1 0 128M 0 part
├─sda2 8:2 0 1G 0 part /boot/efi
├─sda3 8:3 0 2G 0 part /boot
└─sda4 8:4 0 443.5G 0 part
├─system-lv_root 253:0 0 60G 0 lvm /
└─system-lv_swap 253:1 0 16G 0 lvm
nvme1n1 259:0 0 2.9T 0 disk
nvme0n1 259:1 0 2.9T 0 disk
2、操作硬盘分区及格式化
parted /dev/nvme0n1 mklabel gpt
parted /dev/nvme0n1 mkpart primary xfs 0% 100%
mkfs.xfs /dev/nvme0n1p1
3、查看所有块设备
root@DS-test1:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 57.4M 1 loop /snap/core20/1408
loop1 7:1 0 71.8M 1 loop /snap/lxd/22927
loop2 7:2 0 38.7M 1 loop /snap/snapd/15541
sda 8:0 0 446.6G 0 disk
├─sda1 8:1 0 128M 0 part
├─sda2 8:2 0 1G 0 part /boot/efi
├─sda3 8:3 0 2G 0 part /boot
└─sda4 8:4 0 443.5G 0 part
├─system-lv_root 253:0 0 60G 0 lvm /
└─system-lv_swap 253:1 0 16G 0 lvm
nvme1n1 259:0 0 2.9T 0 disk
nvme0n1 259:1 0 2.9T 0 disk
└─nvme0n1p1 259:3 0 2.9T 0 part
4、查询块设备信息
root@DS-test1:~# blkid
/dev/mapper/system-lv_swap: UUID="c2b6a9db-89ec-44c4-b8ac-ea3f49175aa7" TYPE="swap"
/dev/mapper/system-lv_root: UUID="6e83337a-8e14-4762-92fa-7cbd7ada5926" BLOCK_SIZE="4096" TYPE="xfs"
/dev/sda4: UUID="CRoYWT-Xmfh-tMo5-ifXC-40iK-G7QK-252qaX" TYPE="LVM2_member" PARTLABEL="primary" PARTUUID="05cd83d8-1f43-4e27-987d-2e811729b4f1"
/dev/sda2: UUID="314E-E423" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="primary" PARTUUID="0fec8054-9776-45eb-8b9d-af4fb5efb99e"
/dev/sda3: UUID="11307e46-7908-420a-8011-560e0217f5d5" BLOCK_SIZE="4096" TYPE="ext2" PARTLABEL="primary" PARTUUID="faf7f9ad-579e-4c5e-97b2-52dd7c50dc91"
/dev/loop1: TYPE="squashfs"
/dev/nvme0n1p1: UUID="535068a6-54e7-467e-bd9c-dc78d84d82e2" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="b7b9c51c-cdac-448a-a786-518433859cde"
/dev/loop2: TYPE="squashfs"
/dev/loop0: TYPE="squashfs"
/dev/nvme1n1: PTUUID="eadd3741-c9ba-423a-9762-852320d1b10b" PTTYPE="gpt"
/dev/sda1: PARTLABEL="primary" PARTUUID="aeb549ce-888b-42db-8da0-f17dbf9c619d"
5、挂载硬盘
root@DS-test1:~# mkdir -p /mnt/nvme01
root@DS-test1:~# mount -t xfs /dev/nvme0n1p1 /mnt/nvme01
6、配置开机自动挂载(加一行有关nvme01的配置)
echo "UUID=$(blkid -s UUID -o value /dev/nvme0n1p1) /mnt/nvme01 xfs defaults 0 0" >> /etc/fstab
b. 获取模型资源及专用容器镜像
国内源:ModelScope(DeepSeek-R1-Distill-Qwen-7B),链接:DeepSeek-R1-Distill-Qwen-7B · 模型库 (modelscope.cn)
国际源:HuggingFace(deepseek-ai/DeepSeek-R1-Distill-Qwen-7B),链接:https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B/tree/main
下载模型main分支下所有文件至 /mnt/nvme01/model/DeepSeek-R1-Distill-Qwen-7B
路径下。
获取专用容器镜像(1.0.0-800I-A2-py311-openeuler24.03-lts):
访问昇腾镜像仓库,链接:https://www.hiascend.com/developer/ascendhub。需要登陆华为账号并向华为申请权限,权限申请通过后选择”mindie“->选择“镜像版本”->点击立即下载以获取docker login指令、密码和docker pull指令。
docker login -u cn-south-1@{{XXX账号}} swr.cn-south-1.myhuaweicloud.com
密码:**********************************************************
docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/mindie:1.0.0-800I-A2-py311-openeuler24.03-lts
c. 基础软件依赖库安装
昇腾910b npu信息验证:npu-smi info
关闭TLS加密(逐卡操作):for i in {0..7}; do hccn_tool -i $i -tls -s enable 0 ; done
TLS加密配置检验,需要保证每台机器TLS配置一致,默认最好每台TLS处于关闭状态:for i in {0..7}; do hccn_tool -i $i -tls -g ; done |grep switch
系统组件更新:apt update && apt install -y git docker.io
Python环境配置:pip install tqdm torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 numpy==1.26.4
克隆modelzoo仓库:mkdir /opt/npu && cd /opt/npu && git clone
https://gitee.com/ascend/ModelZoo-PyTorch.git
2.2 服务化部署与推理
2.2.1 容器镜像加载
单机部署DeepSeek-R1-Distill-Qwen-7B模型至少需要1台Atlas 800I A2服务器,华为多机推理不支持量化模型。由于使用的是root用户镜像(从Ascend Hub上取得的),并且可以使用特权容器,因此使用以下命令启动推理容器:
docker run -it -d --net=host --shm-size=1g \
--name DeepSeek-R1-7B \
--device=/dev/davinci_manager \
--device=/dev/hisi_hdc \
--device=/dev/devmm_svm \
--device=/dev/davinci0 \
--device=/dev/davinci1 \
--device=/dev/davinci2 \
--device=/dev/davinci3 \
--device=/dev/davinci4 \
--device=/dev/davinci5 \
--device=/dev/davinci6 \
--device=/dev/davinci7 \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
-v /usr/local/sbin:/usr/local/sbin:ro \
-v /mnt/nvme01/model/DeepSeek-R1-Distill-Qwen-7B:/mnt/nvme01/model/DeepSeek-R1-Distill-Qwen-7B:ro \
swr.cn-south-1.myhuaweicloud.com/ascendhub/mindie:1.0.0-800I-A2-py311-openeuler24.03-lts bash
2.2.2 服务化推理
a. 配置文件修改
docker exec -it DeepSeek-R1-7B vim /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json
更改配置文件关键参数:
{
...
"ServerConfig" :
{
...
"port" : 1040, #自定义
"managementPort" : 1041, #自定义
"metricsPort" : 1042, #自定义
...
"httpsEnabled" : false,
...
},
"BackendConfig": {
...
"npuDeviceIds" : [[0,1]],# 此处使用两张npu卡
...
"ModelDeployConfig":
{
"truncation" : false,
"ModelConfig" : [
{
...
"modelName" : "qwen",
"modelWeightPath" : "/mnt/nvme01/model/DeepSeek-R1-Distill-Qwen-7B",# 更改此处模型权重路径
"worldSize" : 2,
...
}
]
},
}
}
b. 启动推理服务
cd /usr/local/Ascend/mindie/latest/mindie-service/bin
./mindieservice_daemon
(前台启动,需保持两个config.json所在目录内外属组一致为root,执行权限一致不高于640)
c. 服务验证
新建窗口执行推理测试--VLLM接口:
curl 127.0.0.1:1040/generate -d '{
"prompt": "What is deep learning?",
"max_tokens": 32,
"stream": false,
"do_sample":true,
"repetition_penalty": 1.00,
"temperature": 0.01,
"top_p": 0.001,
"top_k": 1,
"model": "qwen"
}'
2.3 Web可视化部署
2.3.1 安装Open-WebUI
创建独立Python3.11环境(安装Open-WebUI要求python3.11版本):
apt install python3.11 && python3.11 -m venv /opt/webui-env
激活虚拟环境(退出虚拟环境命令为deactivate):source /opt/webui-env/bin/activate
在虚拟环境中可使用pip形式安装:pip install open-webui
启动Open-WebUI服务:open-webui serve
Open-WebUI默认使用8080端口,如果机器8080端口默认是封了的,需要使用nginx做代理,将8080端口服务代理到其他可用端口,如8081。
2.3.2 Nginx反向代理
a. 安装Nginx
apt install -y nginx
在/etc/nginx/conf.d/目录下创建文件openwebui.conf,在文件openwebui.conf中添加以下内容:
# HTTPS server for 你的域名 #填入你的域名
server {
listen 8081;
#server_name 你的域名;#填入你的域名
# SSL 配置
#ssl_certificate /etc/nginx/certs/cert.pem; #证书
#ssl_certificate_key /etc/nginx/certs/key.pem; #证书密钥
# WebSocket support
location /ws/ {
proxy_pass http://127.0.0.1:8080/ws/; # 根据实际 WebSocket 服务路径调整
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 其他 SSL 配置(例如 TLS 强化配置)
#ssl_protocols TLSv1.2 TLSv1.3;
#ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
# 默认 location 配置
location / {
proxy_pass http://127.0.0.1:8080; #填入你的openwebui的容器名+端口号
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
nginx启动会默认使用80端口,可将/etc/nginx/nginx.conf文件里的include /etc/nginx/sites-enabled/*注释掉:
b. 启动Nginx
systemctl start nginx
2.3.3 DeepSeek容器内配置
vim /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json
这里将端口设置为1040。因为接下来open-webui将使用OpenAI API调用DeepSeek模型服务,因此"openAiSupport"字段需将“vllm”修改为任意其他字段,如 "vll"。
2.3.4 Open-WebUI界面配置指引
访问Open-WebUI服务页面 http://<公网IP>:8081
创建账号,
在“设置--管理员设置--外部连接”中设置OpenAI API,
- API端点:http://localhost:1040/v1 (注:这里设置的“1040”是前面DeepSeek模型部署时config.json文件内设置的端口。)
- 模型标识:qwen(需与config.json中modelName一致) (注:模型 ID可以不用添加,留空表示包含来自该端口的所有模型,一般DeepSeek的量化模型都是“qwen”。)
Tips:使用OpenAI API时可以选择将Ollama API关闭。
2.3.5 Open-WebUI服务启动
a. 选择设置的模型ID对应的模型,例如:qwen。
b. 完成设置后,就可以愉快地使用DeepSeek模型服务开启对话了。
三、物理机快速部署DeepSeek
DeepSeek镜像集成了适配昇腾NPU的DeepSeek-R1模型,用户可通过DeepSeek镜像创建昇腾物理机快速部署DeepSeek。
3.1 创建昇腾物理机
3.1.1 进入创建物理机页面
a. 点击天翼云门户首页的“控制中心”,输入登录的用户名和密码,进入控制中心页面。
b. 单击“产品服务列表>物理机服务”,进入主机列表页。
c. 单击“创建物理机”,进入物理机创建页。
3.1.2 基础配置
a. 根据业务需求配置“计费模式”、“地域”、“可用区”、“实例名称”、“主机名称”等。
b. 选择昇腾物理机规格。此处选择"GPU型"、规格名称为“physical.acas910b.2xlarge11”(本文以physical.acas910b.2xlarge11 规格为例)。
c. 选择镜像:镜像类型为“公共镜像”,选择CTyunOS类镜像,镜像名为“CTyunOS-23.01.2@deepseek-r1-7b 64位“。
d. 磁盘配置:设置本地磁盘Raid类型,系统盘设置为“RAID1”,数据盘设置为“NORAID”,本规格不支持添加云盘,创建其他规格的物理机可根据需要添加云盘。
3.1.3 网络配置及高级配置
a. 网络配置,包括“虚拟私有云”、“网卡”,同时配备“弹性IP”用于下载和访问模型。
b. 高级配置,默认用户为root,设置root用户密码并确认密码。
3.1.4 确认配置并支付
检查上述配置,设置“购买数量”,“企业项目”,“确认《天翼云物理机服务协议》”。
3.2 使用DeepSeek模型
3.2.1 本地调用api服务使用DeepSeek模型
“CTyunOS-23.01.2@deepseek-r1-7b 64位“镜像部署了 deepseek-r1:7b模型,可通过api方式直接调用模型服务,获取所需内容。
执行命令(通过修改prompt输入用户问题):
curl 127.0.0.1:1040/generate -d '{
"prompt": "give me one life advices?",
"max_tokens": 2000,
"stream": false,
"do_sample":true,
"repetition_penalty": 1.00,
"temperature": 0.01,
"top_p": 0.001,
"top_k": 1,
"model": "qwen"
}'
得到的response如下:
3.2.2 通过web可视化界面使用DeepSeek模型
通过“CTyunOS-23.01.2@deepseek-r1-7b 64位”镜像创建的物理机,可参考“2.3节 Web可视化部署”部署web界面,并通过web可视化界面使用DeepSeek模型进行交互。
四、 服务安全配置
为确保模型服务的安全性,建议遵循以下安全配置原则:
4.1 设置访问控制
本指南OpenWebUI使用的端口为8081。
通过配置安全组或ufw/iptables设置IP白名单,对于必须开放的端口(如OpenWebUI的8081端口),通过防火墙规则限制访问来源IP:
# ufw 限制8081端口访问来源ip
sudo ufw allow from <IP地址> to any port 8081
sudo ufw deny 8081/tcp # 禁用其他ip访问8081端口
sudo ufw reload
# iptables 限制8081端口访问来源ip
sudo iptables -A INPUT -p tcp --dport 8081 -s <IP地址> -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 8081 -j DROP # 禁用其他ip访问8081端口
如需禁用所有公网ip访问OpenWebUI的8081端口,可配置安全组或使用ufw或iptables关闭非必要端口:
# ufw 关闭8081端口
sudo ufw deny 8081/tcp
sudo ufw reload
# iptables 关闭8081端口
sudo iptables -A INPUT -p tcp --dport 8081 -j DROP
4.2 身份验证与权限管理
在OpenWebUI中关闭允许用户注册功能(参考“2.3节 Web可视化部署”),并定期审计用户列表。
返回DeepSeek专区导航。