#魔乐新年征文赛·极速部署# 昇腾NPU上适配Qwen和DeepSeek双模型实战:从环境配置到成功对话全记录
本文详细记录了在魔乐社区昇腾NPU环境中部署Qwen2.5-VL-3B-Instruct和DeepSeek-R1-Distill-Qwen-7B两个国产大模型的全过程。作者首先解决了torch与torch_npu版本严格匹配的关键问题,随后通过LLaMA-Factory工具成功运行了两个模型,并对比了它们的性能表现。文章提供了完整的环境配置方案、常见问题解决方法以及一键部署脚本,展示了国产大模型与
📝 写在前面
作为一名AI开发者,我一直对国产大模型+国产算力的组合充满期待。这次参加魔乐社区的新年征文赛,目标很明确:在昇腾NPU上成功部署国产大模型,并且争取“自行适配其他系列模型”的加分项。
经过几天的摸索和踩坑,我终于成功在魔乐社区的昇腾环境中跑通了 Qwen2.5-VL-3B-Instruct 和 DeepSeek-R1-Distill-Qwen-7B 两个模型。这篇文章将完整记录整个过程,希望能帮助更多开发者少走弯路。
一、环境准备:从零开始搭建
1.1 魔乐社区创空间创建
首先在魔乐社区(modelers.cn)注册账号,然后创建“创空间”:
· 接入SDK:选择 Application
· 算力资源:选择NPU配额(2卡)
· 基础环境:选择 openeuler-python3.11-xxx 系列镜像
创建成功后,打开Notebook环境,默认登录令牌是 openMind。
1.2 验证基础环境
python -c "import torch; print(f'PyTorch版本: {torch.__version__}')"
1.3 遇到的第一个坑:版本冲突
刚开始时,我遇到了各种版本冲突问题。经过多次尝试,最终确定了兼容的版本组合:
# 卸载所有冲突包
pip uninstall torch torch-npu torchaudio torchvision -y
# 安装正确版本
pip install torch==2.8.0
pip install torch-npu==2.8.0
pip install torchvision==0.23.0
pip install torchaudio==2.8.0
# 验证NPU可用性
python -c "import torch; import torch_npu; print(f'NPU可用: {torch.npu.is_available()}')"
# 输出应为 True
关键点:torch 和 torch_npu 版本必须严格匹配,否则会出现 undefined symbol 错误。
1.4 安装LLaMA-Factory
# 克隆LLaMA-Factory
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
# 安装
pip install -e .
# 验证安装
llamafactory-cli env
如果提示 command not found,需要添加PATH:
export PATH="$HOME/.local/bin:$PATH"
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
二、模型一:Qwen2.5-VL-3B-Instruct 部署实战
2.1 下载模型
用transformers库直接下载:
python -c "
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = '/home/openmind/LLaMA-Factory/Qwen2.5-VL-3B-Instruct'
print('正在下载Qwen模型...')
tokenizer = AutoTokenizer.from_pretrained('Qwen/Qwen2.5-VL-3B-Instruct', trust_remote_code=True)
tokenizer.save_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained('Qwen/Qwen2.5-VL-3B-Instruct', trust_remote_code=True)
model.save_pretrained(model_path)
print('✅ Qwen模型下载完成!')
"
2.2 创建配置文件
创建 qwen.yaml:
model_name_or_path: /home/openmind/LLaMA-Factory/Qwen2.5-VL-3B-Instruct
template: qwen
infer_backend: huggingface
max_length: 4096
top_p: 0.9
temperature: 0.7
repetition_penalty: 1.05
2.3 运行模型
llamafactory-cli chat qwen.yaml
成功截图:
三、模型二:DeepSeek-R1-Distill-Qwen-7B 部署实战
3.1 下载模型(使用魔乐社区的modelscope)
由于网络限制,Hugging Face连接不稳定,我改用魔乐社区自带的modelscope工具下载:
# 安装modelscope
pip install modelscope
# 下载DeepSeek模型
python -c "
from modelscope import snapshot_download
snapshot_download(
'deepseek-ai/DeepSeek-R1-Distill-Qwen-7B',
cache_dir='/home/openmind/LLaMA-Factory/DeepSeek-R1-Distill-Qwen-7B'
)
print('✅ DeepSeek模型下载完成!')
"
下载过程会显示进度:
Downloading [model-00001-of-000002.safetensors]: 100%
Downloading [model-00002-of-000002.safetensors]: 100%
3.2 创建配置文件
创建 deepseek.yaml:
model_name_or_path: /home/openmind/LLaMA-Factory/DeepSeek-R1-Distill-Qwen-7B/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
template: deepseek
infer_backend: huggingface
max_length: 4096
top_p: 0.9
temperature: 0.7
repetition_penalty: 1.05
3.3 运行模型
llamafactory-cli chat deepseek.yaml
成功截图:
四、踩坑与解决方案
4.1 版本冲突问题
问题现象:
ImportError: /usr/local/python3.11.13/lib/python3.11/site-packages/torch_npu/lib/libnpu_profiler.so: undefined symbol
解决方案:
必须确保 torch 和 torch_npu 版本完全一致。我的最终版本组合:
· torch==2.8.0
· torch_npu==2.8.0
· torchvision==0.23.0
· torchaudio==2.8.0
4.2 权限问题
问题现象:
PermissionError: [Errno 13] Permission denied: '/usr/local/python3.11.13/bin/transformers'
解决方案:
系统目录没有写入权限,用 --user 参数安装到用户目录:
pip install --user transformers==4.45.0
4.3 模型下载失败
问题现象:
Failed to connect to huggingface.co port 443
解决方案:
使用魔乐社区的 modelscope 工具下载,速度快且稳定。
4.4 PATH问题
问题现象:
llamafactory-cli: command not found
解决方案:
export PATH="$HOME/.local/bin:$PATH"
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
五、性能对比
模型 参数量 显存占用 加载时间 推理速度
Qwen2.5-VL-3B 3.7B ~7.2 GB 约30秒 较快
DeepSeek-R1 7.6B ~14 GB 约45秒 适中
分析:
· DeepSeek参数量是Qwen的两倍,显存占用也相应增加
· 在昇腾910B2 NPU上,两个模型都能流畅运行
· 建议根据实际需求选择合适的模型
六、一键部署脚本
为了方便复现,我整理了完整的部署脚本:
#!/bin/bash
# deploy_all.sh - 一键部署Qwen和DeepSeek
# 1. 安装依赖
pip install torch==2.8.0 torch-npu==2.8.0 torchvision==0.23.0 torchaudio==2.8.0
pip install transformers==4.45.0 peft==0.12.0
pip install vllm==0.9.2 vllm-ascend==0.9.2rc1
# 2. 安装LLaMA-Factory
cd ~
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e .
# 3. 添加PATH
export PATH="$HOME/.local/bin:$PATH"
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
# 4. 下载Qwen模型
python -c "
from transformers import AutoModelForCausalLM, AutoTokenizer
AutoTokenizer.from_pretrained('Qwen/Qwen2.5-VL-3B-Instruct', trust_remote_code=True).save_pretrained('/home/openmind/LLaMA-Factory/Qwen2.5-VL-3B-Instruct')
AutoModelForCausalLM.from_pretrained('Qwen/Qwen2.5-VL-3B-Instruct', trust_remote_code=True).save_pretrained('/home/openmind/LLaMA-Factory/Qwen2.5-VL-3B-Instruct')
"
# 5. 下载DeepSeek模型(可选)
pip install modelscope
python -c "
from modelscope import snapshot_download
snapshot_download('deepseek-ai/DeepSeek-R1-Distill-Qwen-7B', cache_dir='/home/openmind/LLaMA-Factory/DeepSeek-R1-Distill-Qwen-7B')
"
echo "✅ 部署完成!"
七、总结与展望
通过这次实践,我深刻体会到国产大模型+国产算力的组合已经具备了很好的可用性。在昇腾NPU上,无论是Qwen还是DeepSeek都能流畅运行,推理速度令人满意。
几点感悟:
- 环境配置是关键:版本匹配是最大的坑,但只要找到正确的版本组合,后续就很顺利
- 国产工具越来越成熟:魔乐社区的modelscope下载速度很快,解决了网络问题
- 多模型适配并不难:只要环境配好,换模型只需要改几个参数
后续计划:
· 尝试用vLLM后端提升推理速度
· 探索模型微调的可能性
· 在昇腾NPU上部署更多国产模型
📌 附录:最终环境信息
# 执行以下命令查看完整环境
llamafactory-cli env
我的环境信息:
· Python版本:3.11.13
· PyTorch版本:2.8.0 (NPU)
· NPU类型:Ascend910B2
· CANN版本:8.3.RC2
· Transformers版本:4.45.0
· LLaMA-Factory版本:0.9.5.dev0
博文作者:ryo3344
日期:2026年3月8日
魔乐社区主页:https://modelers.cn/user/luo2005
配套脚本仓库:https://modelers.cn/luo2005/deploy-qwen-deepseek-ascent
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐
所有评论(0)