大模型NPU部署配置:从驱动安装到推理验证的完整步骤
先确认你的NPU环境能不能跑大模型
大模型NPU部署配置的核心,是把模型推理框架和NPU驱动、CANN工具包对齐。
如果驱动版本和框架要求不匹配,后面每一步都会报错。
动手前先确认三件事:服务器上NPU卡型号是否被当前CANN版本支持、操作系统版本是否在兼容列表内、目标模型是否有对应的NPU推理适配代码。
以常见的昇腾NPU环境为例,登录服务器后执行以下命令检查设备状态:
npu-smi info
正常输出会列出NPU卡编号、显存占用和温度。
如果提示命令不存在,说明驱动未安装或环境变量未生效,先不要继续装推理框架。
驱动和CANN工具包安装
安装NPU驱动
从服务器厂商或芯片厂商的软件包仓库获取对应版本的驱动包,确认包名中的系统架构和内核版本与当前机器一致。
安装前建议备份当前环境,并确认没有正在运行的训练任务。
chmod +x Ascend-hdk-*-npu-driver*.run
./Ascend-hdk-*-npu-driver*.run --full
安装完成后重启服务器,再次执行 npu-smi info,确认能看到设备列表。
如果设备列表为空,检查内核模块是否加载:
lsmod | grep davinci
没有输出时,查看 /var/log/npu/slog/ 下的日志定位原因。
安装CANN工具包
CANN是NPU上的计算架构工具包,推理框架依赖它调用硬件。
安装包版本要与驱动版本配套,不要混用不同发布批次的包。
chmod +x Ascend-cann-toolkit_*_linux-*.run
./Ascend-cann-toolkit_*_linux-*.run --install
安装脚本执行完后,按提示执行环境变量脚本:
source /usr/local/Ascend/ascend-toolkit/set_env.sh
把这一行写入 ~/.bashrc,避免每次登录都要手动执行。
验证命令:
atc --version
能输出版本号即表示CANN基础环境可用。
推理框架与模型适配
大模型推理通常使用PyTorch配合NPU适配插件,或者使用厂商提供的推理引擎。
以PyTorch场景为例,需要安装与CANN版本匹配的 torch_npu 包,不能直接装普通PyTorch。
pip install torch==<配套版本> torch_npu==<配套版本>
安装后验证NPU是否可被PyTorch识别:
import torch
import torch_npu
print(torch.npu.is_available())
print(torch.npu.device_count())
输出 True 和设备数量即表示框架层打通。
随后把模型加载到NPU设备上,注意模型权重格式和推理脚本中的设备参数要显式指定为 npu:0。
如果使用厂商推理引擎,需要先把模型转换为OM格式,转换命令中的输入形状和数据类型必须与推理时一致,否则运行阶段会报维度不匹配。
常见报错与避坑
npu-smi找不到设备:优先检查驱动是否安装完整、内核模块是否加载、容器内是否挂载了设备文件。在Docker中运行时需要加--device=/dev/davinci0等参数。torch.npu.is_available()返回False:检查torch_npu与PyTorch版本是否严格配套,环境变量是否source过。- 模型加载时显存不足:NPU显存和GPU一样有限,大模型需要量化或切分。先确认模型参数量和单卡显存是否匹配,不要盲目调大batch size。
- 推理结果异常或精度下降:检查模型转换时的数据类型是否从FP32被误转为低精度,以及算子是否被NPU完整支持。
验证部署是否成功
完成配置后,用一个短输入跑通一次完整推理,记录加载耗时和单次推理耗时。
检查输出文本是否连贯、是否出现重复乱码。
再用 npu-smi info 观察推理期间显存和算力占用是否有变化,确认任务确实跑在NPU上而不是回退到CPU。
如果推理脚本没有报错但速度明显偏慢,查看日志中是否有算子回退到CPU的提示。
大模型NPU部署配置的最后一步不是看到进程启动,而是确认设备利用率正常、输出结果可复现。
几个容易卡住的问题
驱动和CANN必须版本配套吗? 是的,两者版本不匹配是新手最常见的卡点。
安装前先查芯片厂商发布的版本配套表,不要凭经验混装。
容器里跑NPU需要额外配置吗? 需要。
除了挂载设备文件,还要把CANN环境变量和驱动库路径传入容器,否则容器内看不到NPU设备。
模型一定要转OM格式吗? 取决于推理框架。
PyTorch直跑可以保留原始权重,使用厂商推理引擎时通常需要转换。
转换前先确认模型结构是否被完整支持。
整套流程走完后,建议把驱动版本、CANN版本、框架版本和模型名称记录到部署文档里,后续换机器或升级时可以直接对照,减少重复排错时间。