一、部署要求
mindie:2.0.T3
)。torch_npu
、transformers
等依赖。二、部署步骤
1. 环境准备
source /usr/local/Ascend/ascend-toolkit/set_env.sh
docker load -i mindie_2.0.T3-800I-A2-py311-openeuler24.03-lts-aarch64.tar.gz
2. 模型权重获取与转换
下载原始权重
git clone https://gitee.com/ascend/ModelZoo-PyTorch.git
python download_weights.py --hub HuggingFace --repo_id deepseek-ai/DeepSeek-R1
python fp8_cast_bf16.py--input-fp8-hf-path /path/to/DeepSeek-R1 --output-bf16-hf-path /path/to/deepseek-R1-bf16
3. 启动容器与分布式推理
挂载权重路径并启动容器(需配置多卡通信):
docker run -itd --privileged --net=host --shm-size 500g
--device=/dev/davinci0 ... /dev/davinci7
-v /path/to/weights:/weights
mindie:2.0.T3-800I-A2-arm64-py3.11
生成
rank_table_file.json
,定义多卡通信拓扑,并设置环境变量:export ATB_LLM_HCCL_ENABLE=1
export HCCL_CONNECT_TIMEOUT=7200
export WORLD_SIZE=32
4. 推理测试与调优
执行昇腾预置的测试脚本,验证模型精度与性能:
cd /usr/local/Ascend/llm_model/tests/modeltest/
bash run.sh pa_bf16 full_CEval 5 16 deepseekv2 /path/to/weights /path/to/ranktable.json 32 4 0 {主节点IP}
性能调优
-
算子优化:替换NPU不支持的算子(如
aten::isin
),需自定义实现兼容函数。 -
内存扩展:若内存不足,可通过增加交换空间缓解:
sudo fallocate -l 100G /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
三、常见问题与解决方案
1、内存/显存不足
-
现象:推理时提示OOM(Out of Memory)。
-
解决:
减少批量大小(batch_size
)或上下文窗口(num_ctx
)。
扩展交换空间或升级硬件配置。
-
现象:NPU不支持部分PyTorch算子(如
torch.isin
)。 -
解决:
-
现象:Docker镜像加载报错。
-
解决:
四、附加资源
原文始发于微信公众号(灰帽安全):openEuler系统上部署DeepSeek-R1 671B模型需结合华为昇腾硬件及配套工具
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论