鲲鹏服务器+昇腾卡(Atlas 300I pro)搭建DeepSeek-R1-Distill-Qwen-7B(自己存档详细版)

参考文章:https://modelers.cn/models?name=deepseek&page=1&size=16
https://www.hiascend.com/software/modelzoo/models/detail/11aa2a48479d4d229a9830b8e41fc011

1.服务器硬件配置

当前服务器配置为:2 * 鲲鹏920 + 2 * Atlas 300I pro
系统:open Euler 22.03-LTS (AArch64)
驱动版本:Ascend-hdk-310p-npu-driver_24.1.rc3_linux-aarch64.run
固件版本:Ascend-hdk-310p-npu-firmware_7.5.0.1.129.run
注:记得先安装昇腾卡的驱动和固件

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
在这里插入图片描述