Llama-2-7b 昇腾 NPU 测评总结
背景与目标
为了验证大模型在国产化算力上的落地能力,我们以 Llama-2-7B 为对象,在昇腾 NPU 环境中完成了从依赖安装到模型部署的全流程。本次测评重点考察单请求吞吐量、批量并发能力及显存占用情况,旨在提供可复现的部署方案与硬件选型参考。
昇腾 NPU 基于达芬奇架构,配合 CANN 软件栈,在张量计算和算子优化上对大模型有较好支持。Llama-2-7B 作为 Meta 开源的 70 亿参数模型,兼顾了推理能力与部署灵活性,是测试国产算力的理想样本。
环境初始化与配置
1. 资源准备
在云环境中选择 NPU 实例,建议配置如下:
- 计算类型:NPU
- 硬件规格:Atlas 800T NPU(32v CPU · 64GB 内存)
- 存储:50GB 以上
启动后进入 Terminal 终端,检查核心环境版本,确保操作系统、Python、PyTorch 及 torch_npu 兼容。
# 检查系统版本
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. 依赖安装
使用国内镜像源加速安装深度学习库,避免网络超时。
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
模型部署与推理测试
基础推理脚本
编写 llama.py 加载模型并进行简单生成测试。注意处理 pad_token 以避免报错,并开启 KV 缓存优化。
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
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
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()}
torch.npu.synchronize()
start = time.time()
outputs = model.generate(
**inputs,
max_new_tokens=,
use_cache=,
cache_implementation=,
do_sample=,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id
)
torch.npu.synchronize()
end = time.time()
text = tokenizer.decode(outputs[], skip_special_tokens=)
()
()
()


