华为昇腾服务器上的DeepSeek-R1-Distill-Qwen-1.5B:Atlas 800I A2部署完全手册 [特殊字符]
华为昇腾服务器上的DeepSeek-R1-Distill-Qwen-1.5B:Atlas 800I A2部署完全手册 🚀
想要在华为昇腾服务器上高效部署DeepSeek-R1-Distill-Qwen-1.5B模型吗?这份完整的Atlas 800I A2部署指南将带你一步步完成从环境准备到服务化推理的全过程。作为一款基于昇腾NPU优化的轻量级大语言模型,DeepSeek-R1-Distill-Qwen-1.5B在华为硬件平台上展现出卓越的性能表现。
📋 部署前的准备工作
硬件要求与环境检查
部署DeepSeek-R1-Distill-Qwen-1.5B模型至少需要1台Atlas 800I A2服务器或1台Atlas 300I DUO服务器。在开始之前,请确保你的服务器满足以下条件:
- 硬件配置:Atlas 800I A2服务器或Atlas 300I DUO服务器
- 存储空间:确保有足够的磁盘空间存放模型权重文件
- 内存要求:根据模型大小和并行配置调整内存分配
模型权重下载
首先需要获取DeepSeek-R1-Distill-Qwen-1.5B的模型权重文件:
权重下载地址:https://modelers.cn/models/State_Cloud/DeepSeek-R1-Distill-Qwen-1.5B/tree/main
🔧 环境配置与镜像加载
下载适配镜像
前往魔乐镜像中心/昇腾社区下载适配本模型的镜像包:
1.0.0-800I-A2-py311-openeuler24.03-lts(适用于Atlas 800I A2)1.0.0-300I-Duo-py311-openeuler24.03-lts(适用于Atlas 300I DUO)
加载Docker镜像
完成下载后,使用以下命令加载镜像:
docker load -i mindie:1.0.0-800I-A2-py311-openeuler24.03-lts
使用docker images命令确认镜像已成功加载。
镜像组件版本配套
镜像中各组件版本配套如下:
| 组件 | 版本 |
|---|---|
| MindIE | 1.0.0 |
| CANN | 8.0.0 |
| PTA | 6.0.0 |
| MindStudio | 7.0.0 |
| HDK | 24.1.0 |
🐳 创建并配置Docker容器
特权容器配置(推荐)
如果你使用的是root用户镜像,可以使用特权容器启动命令:
docker run -it -d --net=host --shm-size=1g \
--privileged \
--name <container-name> \
--device=/dev/davinci_manager \
--device=/dev/hisi_hdc \
--device=/dev/devmm_svm \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
-v /usr/local/sbin:/usr/local/sbin:ro \
-v /path-to-weights:/path-to-weights:ro \
mindie:1.0.0-800I-A2-py311-openeuler24.03-lts bash
普通用户容器配置
如果希望使用自行构建的普通用户镜像,可以使用以下命令:
docker run -it -d --net=host --shm-size=1g \
--user mindieuser:<HDK-user-group> \
--name <container-name> \
--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 /path-to-weights:/path-to-weights:ro \
mindie:1.0.0-800I-A2-py311-openeuler24.03-lts bash
重要配置注意事项
- 用户组设置:如果HDK是通过普通用户安装(如默认的
HwHiAiUser),请使用id HwHiAiUser命令查看用户组ID并相应设置 - 容器名称与镜像匹配:确保800I A2和300I DUO服务器使用对应版本的镜像
- 设备挂载:正确设置想要使用的NPU卡号
--device参数 - 权重路径权限:如果使用普通用户镜像,需要调整权重路径权限:
chown -R 1000:1000 /path-to-weights chmod -R 755 /path-to-weights
⚙️ 模型权重量化优化
W8A8量化(仅支持Atlas 800I A2)
W8A8量化权重可通过msmodelslim(昇腾压缩加速工具)实现:
# 设置CANN包的环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh
cd ${llm_path}
# 配置NPU核心使用
export ASCEND_RT_VISIBLE_DEVICES=0,1
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:False
# 执行量化
bash examples/models/qwen/convert_quant_weight.sh -src {浮点权重路径} -dst {W8A8量化权重路径} -type qwen_w8a8
稀疏量化(仅支持Atlas 300I DUO)
对于Atlas 300I DUO卡,需要进行稀疏量化处理:
- 修改配置:将模型权重
config.json中的torch_dtype字段改为float16 - 执行量化:
export ASCEND_RT_VISIBLE_DEVICES=0 python3 quant_qwen.py --model_path {浮点权重路径} --save_directory {W8A8S量化权重路径} --calib_file ../common/boolq.jsonl --w_bit 4 --a_bit 8 --fraction 0.011 --co_sparse True --device_type npu --use_sigma True --is_lowbit True - 权重切分与压缩:
export IGNORE_INFER_ERROR=1 torchrun --nproc_per_node {TP数} -m examples.convert.model_slim.sparse_compressor --model_path {W8A8S量化权重路径} --save_directory {W8A8SC量化权重路径}
🚀 模型推理部署
纯模型推理测试
进入容器后,首先进入llm_model路径:
cd $ATB_SPEED_HOME_PATH
执行对话测试:
torchrun --nproc_per_node 2 \
--master_port 20037 \
-m examples.run_pa \
--model_path {权重路径} \
--max_output_length 20
性能测试
进入ModelTest路径进行性能测试:
cd $ATB_SPEED_HOME_PATH/tests/modeltest/
运行性能测试脚本:
bash run.sh pa_bf16 performance [[256,256]] 1 qwen ${weight_path} 2
这个命令测试batch=1,输入长度256,输出长度256的2卡并行性能。
🌐 服务化推理配置
配置服务化参数
打开配置文件:
vim /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json
修改配置文件中的关键参数:
{
"ServerConfig": {
"port": 1040,
"managementPort": 1041,
"metricsPort": 1042,
"httpsEnabled": false
},
"BackendConfig": {
"npuDeviceIds": [[0,1]],
"ModelDeployConfig": {
"truncation": false,
"ModelConfig": [{
"modelName": "qwen",
"modelWeightPath": "/data/datasets/DeepSeek-R1-Distill-Qwen-1.5B",
"worldSize": 2
}]
}
}
}
启动服务化推理
启动服务化推理服务:
cd /usr/local/Ascend/mindie/latest/mindie-service/bin
./mindieservice_daemon
测试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"
}'
🔧 常见问题与解决方案
1. ImportError: cannot import name 'shard_checkpoint'
如果遇到transformers版本兼容问题,可以降低transformers版本:
pip install transformers==4.46.3 --force-reinstall
pip install numpy==1.26.4 --force-reinstall
2. 权重路径权限问题
确保权重路径的权限正确设置,特别是使用普通用户镜像时:
chown -R 1000:1000 /path-to-weights
chmod -R 755 /path-to-weights
3. 设备挂载失败
检查NPU设备是否正确挂载,确保设备文件存在且权限正确。
📊 性能优化建议
并行配置优化
当前支持TP=1/2/4/8推理,根据你的硬件配置选择合适的并行度:
- 单卡推理:TP=1,适合小规模测试
- 双卡推理:TP=2,平衡性能与资源
- 多卡推理:TP=4/8,适合高并发场景
内存优化配置
根据模型大小和并行配置调整--shm-size参数,确保有足够的共享内存。
🎯 总结
通过这份完整的部署指南,你已经掌握了在华为昇腾Atlas 800I A2服务器上部署DeepSeek-R1-Distill-Qwen-1.5B模型的全流程。从环境准备、镜像加载、容器配置到模型推理和服务化部署,每个步骤都经过详细说明。
华为昇腾平台为AI模型推理提供了强大的硬件支持,结合MindIE框架的优化,DeepSeek-R1-Distill-Qwen-1.5B模型能够在昇腾NPU上发挥最佳性能。无论是用于研究、开发还是生产环境,这套部署方案都能满足你的需求。
记得在实际部署过程中,根据具体的硬件配置和应用场景调整相关参数,以达到最优的性能表现。祝你部署顺利!🎉
更多推荐




所有评论(0)