在昇腾 NPU 上跑 Llama 大模型:从踩坑到通关的全程实战记
一、选择昇腾 NPU 的原因
- 自主可控:昇腾使用华为自研的达芬奇架构,供应链安全更有保障。
- 生态完善:昇腾 GitCode 仓库拥有多个开源项目,支持 PyTorch、TensorFlow 及 MindSpeed-LLM 框架。
- 资源获取:GitCode 提供免费的昇腾 Notebook 实例,适合低成本测试验证。
二、环境准备
1. 创建 Notebook 实例
进入 GitCode 控制台创建实例,关键配置如下:
- 计算类型:必选 NPU。
- 规格:推荐 1*NPU 800T A2、32v CPU、64GB 内存。
- 镜像:选择
euler2.9-py38-torch2.1.0-cann8.0-openmind0.6-notebook。 - 存储:50G 免费存储足够(模型约 13GB)。
2. 环境配置
预装工具包括 PyTorch 2.1.0、CANN 8.0、Python 3.8 及 torch_npu 2.1.0。
三、验证环境
1. 检查版本
cat /etc/os-release
python3 --version
python -c "import torch; print(f'PyTorch 版本:{torch.__version__}')"
python -c "import torch_npu; print(f'torch_npu 版本:{torch_npu.__version__}')"
2. 验证 NPU 可用性
注意必须先导入 torch_npu 插件:
import torch
import torch_npu
print(torch.npu.is_available()) # 输出 True
四、安装依赖
手动安装 transformers 库,建议使用清华镜像加速:
pip install transformers accelerate -i https://pypi.tuna.tsinghua.edu.cn/simple
五、部署 Llama 模型
1. 模型下载
官方 Llama-2 需申请权限且国内访问不稳定。推荐使用开源镜像版本 NousResearch/Llama-2-7b-hf。
设置环境变量加速下载:
export HF_ENDPOINT=https://hf-mirror.com
2. 核心代码
import torch
import torch_npu
from transformers AutoModelForCausalLM, AutoTokenizer
time
MODEL_NAME =
()
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME, torch_dtype=torch.float16, low_cpu_mem_usage=
)
()
model = model.npu()
model.()
()
prompt =
inputs = tokenizer(prompt, return_tensors=)
inputs = {k: v.to() k, v inputs.items()}
start = time.time()
outputs = model.generate(**inputs, max_new_tokens=)
end = time.time()
text = tokenizer.decode(outputs[])
()
()
()


