引言:为何选择昇腾 NPU
面对高昂的 NVIDIA GPU 成本,许多团队在部署大模型时面临预算压力。华为昇腾(Ascend)NPU 凭借自主可控的达芬奇架构、日益完善的软件开源生态以及云上可得的测试资源,成为了高性价比的替代方案。
本文记录使用云端昇腾 Notebook 实例,完成从环境配置、模型部署到性能测试与优化的全过程。这是一份真实的踩坑与通关记录,旨在为后续探索者提供参考。
环境搭建
本以为在云平台创建环境是简单的事,但实际配置中几个关键细节决定了后续成败。
1. 镜像与规格选择
在创建 Notebook 实例时,请务必注意以下配置:
- 计算类型:必须选择
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。这能省去大量手动配置时间。
2. 环境验证
实例启动后,首先确认 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 再安装:
pip install --upgrade pip
pip install torch torchvision torchaudio
pip install torch-npu
看到 PyTorch 版本:2.4.0 和 torch_npu 版本:2.4.0.post4 说明正常可用。
常见坑点:直接运行 torch.npu.is_available() 会报错 AttributeError。原因是 torch_npu 是一个独立插件,必须显式导入后才能注册 NPU 后端。正确的验证方式是:
python -c "import torch; import torch_npu; print(torch.npu.is_available())"
看到 True,恭喜你,NPU 环境准备就绪!
模型部署
环境搞定后,接下来加载 Llama 2 模型。
1. 依赖与下载
安装运行 Llama 2 所必须的库,建议使用国内镜像加速:
pip install transformers accelerate -i https://pypi.tuna.tsinghua.edu.cn/simple
模型下载权限问题:直接访问 Meta 官方仓库需要申请权限且国内速度堪忧。解决方案是使用社区镜像版本,如 NousResearch/Llama-2-7b-hf,无需权限且下载稳定。
2. 核心代码与设备映射
创建 Python 脚本,以下是核心代码及注意事项:


