在昇腾 NPU 上部署 Llama 大模型:全流程实战与踩坑指南
本文分享了在昇腾 NPU 上部署测试 Llama-2-7B 大模型的全过程,提供踩坑经验。
一、为什么选择昇腾 NPU?
部署大模型时,硬件成本往往是第一道门槛。国外 GPU 价格高昂,Atlas 服务器动辄十几万,个人开发者难以承担。昇腾 NPU 凭借自主可控的达芬奇架构、完善的开源生态及免费测试资源,成为高性价比的选择。
- 自主可控:华为自研达芬奇架构,供应链风险低。
- 生态完善:GitCode 仓库中有大量开源项目,支持 PyTorch、TensorFlow 及 MindSpeed-LLM 框架。
- 低成本试错:通过 GitCode 可申请免费的昇腾 Notebook 实例,或按小时租用 ModelArts 资源,无需购买昂贵硬件即可验证方案。
[图片]
二、环境准备:GitCode 实例配置
创建实例看似简单,实则暗藏陷阱。建议按以下配置操作,避免返工:
1. 计算类型与规格
- 计算类型:必须选 NPU。误选 CPU 会导致性能极差。
- 规格:推荐
NPU basic(1*NPU 800T A2、32v CPU、64GB 内存),足以运行 Llama-2-7B。 - 镜像:选择
euler2.9-py38-torch2.1.0-cann8.0-openmind0.6-notebook,预装关键工具。 - 存储:50G 免费空间足够(模型约 13GB)。
[图片]
2. 环境验证
进入 Jupyter Notebook 终端后,先检查基础环境:
# 检查系统版本
cat /etc/os-release
# 检查 Python 版本
python3 --version
# 检查 PyTorch 版本
python -c "import torch; print(f'PyTorch 版本:{torch.__version__}')"
# 检查 torch_npu 版本
python -c "import torch_npu; print(f'torch_npu 版本:{torch_npu.__version__}')"
常见错误:直接运行 torch.npu.is_available() 会报错 AttributeError: module 'torch' has no attribute 'npu'。
原因:torch_npu 是独立插件,必须先导入。
正确写法:
import torch
import torch_npu
print(torch.npu.is_available()) # 输出 True
三、安装依赖与模型下载
1. 安装 transformers
虽然镜像自带 PyTorch,但需手动安装 transformers 库:


