寒武纪MLU环境搭建并部署DeepSeek【MLU370-S4】
✅ 环境确认
项目 | 信息 |
---|---|
操作系统 | UOS 1070e (基于Linux的国产操作系统) |
GPU | 寒武纪 MLU370-S4 (2块,每块75W,24GB内存) |
模型 | DeepSeek-R1-Distill-Qwen-14B |
Docker镜像 | cambricon-base/pytorch:v25.01-torch2.5.0-torchmlu1.24.1-ubuntu22.04-py310(找官方给你) |
服务端口 | 3456 |
🛠️ 部署步骤(已针对UOS 1070e和MLU370-S4优化)
步骤 1: 准备模型文件(在宿主机上执行)
# 创建模型存储目录(UOS 1070e默认路径)
mkdir -p /srv1/DeepSeek-R1-Distill-Qwen-14B# 将模型复制到挂载目录
cp -r /home/DeepSeek-R1-Distill-Qwen-14B/* /srv1/DeepSeek-R1-Distill-Qwen-14B/
💡 为什么用/srv1/?
UOS 1070e系统中,/srv1
是常用的数据存储目录,且能被Docker容器正确挂载
步骤 2: 加载Docker镜像(在宿主机上执行)
# 加载您准备好的镜像
docker load -i cambricon-base_pytorch_v25.01.tar
步骤 3: 启动Docker容器(关键修正)
# 执行您的in_docker.sh脚本(已针对UOS 1070e优化)
bash in_docker.sh
✅ 容器启动参数说明:
--device /dev/cambricon_dev0
:挂载MLU设备--device /dev/cambricon_ctl
:挂载MLU控制设备--device /dev/cambricon_ipcm0
:挂载MLU IPC设备-v /srv1/:/srv1/
:挂载模型存储目录(UOS 1070e兼容路径)
步骤 4: 进入容器并启动服务(关键修正)
# 进入容器后执行
source /torch/venv3/pytorch_infer/bin/activate# 启动命令(关键修正:tensor-parallel-size=2)
vllm serve /srv1/DeepSeek-R1-Distill-Qwen-14B \--served-model-name chatbot \--port 3456 \--dtype float16 \--trust-remote-code \--max-model-len 8192 \--tensor-parallel-size 2 \ # (2块MLU370-S4)--gpu-memory-utilization 0.7 \--block-size 8192
步骤 5: 验证服务状态
# 检查服务是否在运行
netstat -tuln | grep 3456# 检查MLU设备状态(在容器内执行)
cnmon
# 应显示:
# 0 / MLU370-S4 v1.1.6 | 0000:11:00.0 | 0% | 0 MiB/24576 MiB
# 1 / MLU370-S4 v1.1.6 | 0000:21:00.0 | 0% | 0 MiB/24576 MiB
✅ curl测试(OpenAI API兼容)
curl http://localhost:3456/v1/chat/completions \-H "Content-Type: application/json" \-d '{"model": "chatbot","messages": [{"role": "user", "content": "你好"}],"temperature": 0.7}'
预期成功响应
📌 Linux系统特殊注意事项
-
UOS与Docker兼容性:
- UOS 1070e已内置Docker支持,无需额外安装
- 确保系统已更新:
sudo apt update && sudo apt upgrade -y
-
MLU驱动安装:在寒武纪开发社区有安装手册:https://developer.cambricon.com/index/document/index/classid/3.html
-
路径兼容性:
- UOS 1070e使用
/srv1/
作为默认数据挂载点 - 不要使用
/home/
作为模型存储路径(可能权限问题)
- UOS 1070e使用
-
验证驱动:
# 在UOS 1070e宿主机上执行 mlu-smi # 应显示MLU370-S4设备信息
⚠️ 常见问题解决(Linux环境)
问题 | 解决方案 |
---|---|
mlu-smi command not found | 安装驱动:sudo apt install cambricon-drivers |
No such file or directory | 检查模型路径:ls /srv1/DeepSeek-R1-Distill-Qwen-14B |
服务启动后curl返回500 | 确认--tensor-parallel-size 2 (不是4) |
显存不足 | 降低--gpu-memory-utilization 0.6 |
无法连接容器 | 检查Docker是否运行:systemctl status docker |
✅ 最终验证
# 在UOS 1070e宿主机上执行
curl http://localhost:3456/v1/chat/completions \-H "Content-Type: application/json" \-d '{"model": "chatbot","messages": [{"role": "user", "content": "你好"}],"temperature": 0.7}'
如果返回有效JSON响应,恭喜!您已成功在UOS 1070e系统上使用MLU370-S4部署DeepSeek。
✅ 成功标志:
cnmon
显示2块MLU370-S4(UOS 1070e兼容)- curl测试返回有效响应
- 服务端口3456被正确监听