华为昇腾服务器上的DeepSeek-R1-Distill-Qwen-1.5B:Atlas 800I A2部署完全手册 🚀

【免费下载链接】DeepSeek-R1-Distill-Qwen-1.5B 【免费下载链接】DeepSeek-R1-Distill-Qwen-1.5B 项目地址: https://ai.gitcode.com/hf_mirrors/MindIE/DeepSeek-R1-Distill-Qwen-1.5B

想要在华为昇腾服务器上高效部署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

重要配置注意事项

  1. 用户组设置:如果HDK是通过普通用户安装(如默认的HwHiAiUser),请使用id HwHiAiUser命令查看用户组ID并相应设置
  2. 容器名称与镜像匹配:确保800I A2和300I DUO服务器使用对应版本的镜像
  3. 设备挂载:正确设置想要使用的NPU卡号--device参数
  4. 权重路径权限:如果使用普通用户镜像,需要调整权重路径权限:
    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卡,需要进行稀疏量化处理:

  1. 修改配置:将模型权重config.json中的torch_dtype字段改为float16
  2. 执行量化
    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
    
  3. 权重切分与压缩
    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上发挥最佳性能。无论是用于研究、开发还是生产环境,这套部署方案都能满足你的需求。

记得在实际部署过程中,根据具体的硬件配置和应用场景调整相关参数,以达到最优的性能表现。祝你部署顺利!🎉

【免费下载链接】DeepSeek-R1-Distill-Qwen-1.5B 【免费下载链接】DeepSeek-R1-Distill-Qwen-1.5B 项目地址: https://ai.gitcode.com/hf_mirrors/MindIE/DeepSeek-R1-Distill-Qwen-1.5B

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐