昇腾服务器到手,第一个模型怎么跑通
社区讨论 · 政策

昇腾服务器到手,第一个模型怎么跑通

仓库跑起来仓库跑起来9月23日2026/09/23 201 浏览

上个月我们仓库的视觉复核想从云端换到本地,采购那边给我塞了一台昇腾的推理服务器。箱子拆开,我对着命令行坐了半小时,不知道从哪起手。GPU 那套我熟,换到昇腾,前面几年攒的手感基本归零。

这篇写给跟我一样刚上手的人:手上有昇腾的机器,想把第一个模型跑出结果。不写原理,只写我怎么一步步摸过来的。

第一天,先搞清楚你手里是什么卡。打开终端敲 npu-smi info,这个命令相当于英伟达那边的 nvidia-smi,用来看芯片状态,正常会列出卡的型号、显存占用和温度;敲完没反应就是驱动还没装好,先回去装驱动。然后看型号,昇腾的卡分两类,一类只能做推理,一类能训练。素材里写得很直接:推理服务器不支持训练,要训练得用训练类型的机器。我第一台拿到的就是推理卡,当时还想拿它微调模型,白折腾一天。最后确认软件栈装好,华为这套叫 CANN,可以把它理解成显卡驱动加一堆计算库,模型想调用芯片全靠它;装完之后终端里的环境变量脚本要 source 一遍,不然程序找不到芯片。我这边测下来,环境变量没 source 是最常见的第一个坑,程序报错说找不到设备,九成是这个原因。

这一步花不了一小时,但能省你两天。做完你应该能让 npu-smi info 正常列出卡,并且说清它是推理卡还是训练卡。

第三天,把模型转成芯片能吃的格式。昇腾不直接吃 PyTorch 的权重文件,它要的是 OM 格式,可以理解成把生鲜做成料理包,芯片开袋即用,转换用官方那个叫 ATC 的工具。先把原始模型导出成通用中间格式,一般是 ONNX,这一步在你自己原来的环境里做,跟昇腾没关系;然后把 ONNX 丢给 ATC,指定输入尺寸和输出节点跑一遍,顺利的话几分钟出 OM;最后拿一个最简单的输入喂进去,看输出对不对。

踩坑就在这。我第一次转的时候报了一长串算子不支持。昇腾对算子的覆盖是逐步补的,不是你随便拿个模型就能转。素材里也提到,昇腾对 ChatGLM、OpenLLaMA 这类开源模型做过适配,但还不太稳定,运行有些问题,还在摸索。解决办法两个:换一个社区里已经有人转过的模型,或者把不支持的算子拆出来自己重写。前者快,后者是体力活。我选了前者。目标是转出一个 OM 文件,用样例输入能跑出合理输出,跑不出来就换模型,别硬磕。

一周后,接进自己的流程。模型能跑了,跟能用是两回事,我这一周主要在干两件事:把推理服务包一层接口,让上层业务代码不用管底下是什么芯片,这层抽象一定要做,不然以后换硬件要重写;另一件是压测,仓库里是 7x24 小时跑的,峰值和均值差得远。

这里有个硬限制得提前知道。素材里明确写了,LLaMA 这类大模型目前多卡模型并行推理不支持,也就是说你不能靠堆卡把一个大模型切开跑。我原本的方案就是按这个设计的,后来只能改成单卡装得下的模型。这一条我在选型阶段就该查,结果拖到部署才发现。选型的时候把并行支持查清楚,比后面调优重要得多;实际仓库里跑过就知道,能跑通和能扛住是两件事。

模型跑通之后,往下有三个方向,按我的推荐顺序:先做量化,把模型压小,看精度掉多少;再把推理服务接进真实的业务流,用真数据跑一周;最后才考虑多卡和多机。我这边在多卡并行上的做法是换小模型,暂时够用,但还没找到更好的路子。

2 条回复

?
Ctrl + Enter 快速回复
算子融合了吗

多卡并行不支持这条我深有体会,之前也想堆卡切大模型,白折腾一天,选型真得先查并行支持。

折蛋白的
折蛋白的9月23日

推理卡拿来微调模型确实白折腾,我实验室那台也踩过这坑。