在昇腾 NPU 上运行 Llama 2 模型:性能测试与实战指南
面对昂贵的 NVIDIA GPU,许多团队在部署大模型时面临成本压力。华为昇腾(Ascend)NPU 凭借自主可控的达芬奇架构和日益完善的软件生态,成为高性价比的替代方案。本文将记录从环境配置、模型部署到性能测试与优化的全过程,为后续探索者提供参考。
环境搭建
在云平台创建 NPU 实例时,几个关键配置决定了后续成败。
计算类型:务必选择 NPU。手滑选了 CPU 或 GPU,后续步骤将无效。
规格选择:NPU basic 规格(1*Ascend 910B, 32vCPU, 64GB 内存)是运行 Llama-2-7B 的甜点配置。
镜像选择:必须选择预装了 CANN、PyTorch 适配器等核心工具的镜像,例如 euler2.9-py38-torch2.1.0-cann8.0-openmind0.6-notebook。这能省去大量手动配置时间。
实例启动后,首先确认 NPU 可用。在终端中依次执行以下命令:
# 检查系统与 Python 版本
cat /etc/os-release
python3 --version
# 检查 PyTorch 及 torch_npu
python -c "import torch; print(f'PyTorch 版本:{torch.__version__}')"
python -c "import torch_npu; print(f'torch_npu 版本:{torch_npu.__version__}')"
若未安装,先执行 pip install --upgrade pip 然后安装相关包。看到版本号说明正常可用。
常见坑点:直接运行 torch.npu.is_available() 会报错 AttributeError。原因是 torch_npu 是独立插件,必须显式导入后才能注册后端。正确验证方式是:
python -c "import torch; import torch_npu; print(torch.npu.is_available())"
看到 True,NPU 环境准备就绪。
模型部署
环境搞定,接下来部署 Llama 2。
依赖安装
安装运行 Llama 2 所必须的库,建议使用国内镜像加速:
pip install transformers accelerate -i https://pypi.tuna.tsinghua.edu.cn/simple
模型下载权限与网络:直接访问 Meta 官方仓库需要申请权限,且国内下载慢。解决方案是使用社区镜像版本,如 NousResearch/Llama-2-7b-hf,无需权限,下载稳定。
核心部署代码
创建 Python 脚本,以下是核心代码及注意事项:
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
import torch
import torch_npu # 切记!
from transformers import AutoModelForCausalLM, AutoTokenizer
time
MODEL_NAME =
DEVICE =
()
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME,
torch_dtype=torch.float16,
low_cpu_mem_usage=
)
()
model = model.to(DEVICE)
model.()
prompt =
inputs = tokenizer(prompt, return_tensors=).to(DEVICE)
torch.no_grad():
start_time = time.time()
outputs = model.generate(**inputs, max_new_tokens=)
end_time = time.time()
generated_text = tokenizer.decode(outputs[], skip_special_tokens=)
()
()


