背景
华为昇腾 NPU 专为神经网络计算设计,算力强劲且功耗控制良好。将其用于大模型推理具有灵活性高、适配性强的优势。
选择 Llama 模型进行测试主要基于以下考虑:
- 开源生态:完全开源,社区优化丰富。
- 规模多样:支持 7B、13B、70B 等多种版本。
- 性能表现:基准测试亮眼,应用面广。
- 框架支持:MindSpore 及 PyTorch 均提供良好支持。
一、测评环境搭建
1.1 硬件平台选择
由于物理设备稀缺,建议使用云端 NPU 资源。推荐配置如下:
- 计算单元:NPU 910B
- CPU:32 核心
- 内存:64GB
- 操作系统:EulerOS 2.9
- Python 版本:3.8
1.2 环境配置步骤
步骤 1:环境验证
启动实例后,在终端执行以下命令验证环境:
# 检查 PyTorch 版本
python -c "import torch; print(f'PyTorch 版本:{torch.__version__}')"
# 检查 torch_npu 版本
python -c "import torch_npu; print(f'torch_npu 版本:{torch_npu.__version__}')"
# 验证 NPU 可用性
python -c "import torch; import torch_npu; print(torch.npu.is_available())"
预期输出显示 PyTorch 版本为 2.1.0,torch_npu 版本为 2.1.0.post3,且 torch.npu.is_available() 返回 True。
步骤 2:安装必要依赖
# 安装 Hugging Face 相关库
pip install transformers accelerate -i https://pypi.tuna.tsinghua.edu.cn/simple
# 如果遇到依赖冲突,卸载冲突库
pip uninstall mindformers
使用国内镜像源可显著提高下载速度。
二、Llama 模型部署实战
2.1 模型选择与加载
本次测评选择 Llama-2-7b 模型。由于网络限制,建议配置 Hugging Face 镜像源:
export HF_ENDPOINT=https://hf-mirror.com
若遇到线程资源不足问题,可设置环境变量:
export OMP_NUM_THREADS=4
代码示例:
import torch
import torch_npu
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.to()
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[])
()
()
()


