参考文章:https://modelers.cn/models?name=deepseek&page=1&size=16
https://www.hiascend.com/software/modelzoo/models/detail/11aa2a48479d4d229a9830b8e41fc011
当前服务器配置为:2 * 鲲鹏920 + 2 * Atlas 300I pro
系统:open Euler 22.03-LTS (AArch64)
1.前期环境准备
(1)安装驱动
驱动下载:昇腾社区固件和驱动下载列表
Atlas 300I pro和Atlas 300I duo都是一样的芯片,310P哈
groupadd HwHiAiUser
useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash
./驱动或固件 --full ##第一次先安装驱动
安装完后重启,然后输入:
npu-smi info
就安装成功了
(2)安装docker和docker-compose
yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
注意:如果你想安装其他版本的docker和docker-compose,可以参考我另一篇文章:
openEuler 22.03 LTS (aarch64)系统上离线安装 Docker 27.5(或指定版本)和 Docker Compose
2.部署
镜像准备:1.0.0-300I-Duo-py311-openeuler24.03-lts
完成加载镜像后,请使用docker images命令确认查找具体镜像名称与标签。
docker load -i mindie:1.0.0-300I-Duo-py311-openeuler24.03-lts
注:因为昇腾Atlas 300I PRO和Atlas 300 Duo都是310B芯片,我就直接用这个镜像了,现在昇腾官网已经下载不了该镜像了,下载地址如下:
mindie:1.0.0-300I-Duo-py311-openeuler24.03-lts以及其他mindie镜像下载列表【昇腾社区】
(1)新建容器
docker run -it -d --net=host --shm-size=1g \
--name deepseek-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 /root/:/root/ \
mindie:1.0.0-300I-Duo-py311-openeuler24.03-lts bash
注:name 参数后是名称,device=/dev/davinci0,这是指你的第一张卡,剩下就是驱动和命令文件等等。
(2)进入容器
docker exec -it deepseek-7b bash
(3)下载模型DeepSeek-R1-Distill-Qwen-7B
请先通过如下命令安装ModelScope
pip install modelscope
下载完整模型repo
modelscope download --model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
或者你自己下载再放进系统里
魔塔社区下载蛮快的
(4)修改模型路径下的config.json文件
修改模型权重config.json中torch_dtype字段为float16
(5)服务化推理
打开配置文件
vim /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json
修改配置文件
修改的参数为:
npuDeviceIds:我是两张卡所以[0,1]
truncation:false
modelName:你的模型名称,随便取
modelWeightPath:模型的路径
worldSize:2
httpsEnabled" : false
启动服务
cd /usr/local/Ascend/mindie/latest/mindie-service/bin
./mindieservice_daemon
(6)新建窗口测试
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"
}'
注:默认是1025端口,可以在/usr/local/Ascend/mindie/latest/mindie-service/conf/config.json这个文件找到,IP配置也是。
答非所问,调整回答相关参数我不熟
DeepSeek-R1-Distill-Qwen-7B,QWen是比较擅长中文,所以
curl 127.0.0.1:1025/generate -d '{
"prompt": "深度学习是什么?",
"maxtokens": 150,
"stream": false,
"dosample": true,
"repetitionpenalty": 1.5,
"temperature": 0.7,
"topp": 0.95,
"topk": 100,
"model": "qwen"
}'
2025年2月13日11:18:48,目前我这个参数问就稍微正常点- -
注意
1.回复会乱回复,字数限制
解决方法:maxIterTimes:5210