Llama-2-7B 在昇腾 NPU 上的性能测评与部署实践
随着大模型国产化需求的提升,如何在国产算力上高效部署开源模型成为关键。本文以 Llama-2-7B 为例,基于昇腾 NPU 环境完成从依赖安装到模型部署的全流程落地,并通过多维度测试验证其性能表现,提供可复现的部署方案、性能基准数据及硬件选型建议。
环境准备与配置
在开始之前,确保开发环境已适配昇腾 NPU。推荐使用云端 Notebook 或本地服务器,需确认操作系统、Python 版本及 PyTorch 与 torch_npu 的兼容性。
1. 检查核心环境
进入终端后,先验证基础组件版本:
# 检查系统版本
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__}')"
2. 安装依赖库
通过国内镜像源加速安装 transformers 和 accelerate,避免下载超时:
pip install transformers accelerate -i https://pypi.tuna.tsinghua.edu.cn/simple
若遇到网络问题,可尝试阿里云或华为云镜像源兜底:
pip install transformers accelerate -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
3. 设置 Hugging Face 镜像
为加快模型权重下载,临时切换 HF_ENDPOINT:
export HF_ENDPOINT=https://hf-mirror.com
模型加载与推理测试
编写推理脚本 llama.py,重点在于正确加载模型至 NPU 设备并处理 Tokenizer 的 padding 问题(Llama 默认无 pad_token)。
import torch
import torch_npu
from transformers import AutoModelForCausalLM, AutoTokenizer
import time
print("开始测试...")
MODEL_NAME = "NousResearch/Llama-2-7b-hf"
print(f"下载模型:{MODEL_NAME}")
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
# 补充 pad_token,避免推理报错
tokenizer.pad_token = tokenizer.eos_token
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME,
torch_dtype=torch.float16,
low_cpu_mem_usage=
)
()
model = model.npu()
model.()
()
prompt =
inputs = tokenizer(prompt, return_tensors=, padding=)
inputs = {k: v.npu() k, v inputs.items()}
start = time.time()
outputs = model.generate(**inputs, max_new_tokens=)
end = time.time()
text = tokenizer.decode(outputs[])
()
()
()


