两台设备,同一个模型
选型时最容易发生的一幕:供应商演示用的设备能跑四路摄像头,你按同样的参数买回来一台,装到店里两路就开始掉帧。去看参数表,两台的标称算力差不多,内存也差不多。
这里面的变量很多——散热、内存带宽、后端优化、功耗墙。但有一层很少被提到:芯片做一次乘法,代价和做一次加法不一样。
识别模型的主体是卷积和全连接层,核心运算是乘加。硬件上,一个乘法器比一个加法器贵得多——门数、面积、功耗都高。所以在同样的芯片面积里,加法器的数量可以放很多个,乘法器就只能放几个。
对一台插着电、带风扇的服务器,这不是问题。对门店里那种 PoE 供电、无风扇、贴着收银台装的小盒子,乘法器的预算就是实打实的约束:它决定了这块板子满载时会不会烫到降频,也决定了能不能边跑识别边带一块屏幕。
有一条路:把格点挪到「乘法便宜」的地方
既然模型本来就要量化,那就换个思路:不是把数字压得更小,而是把可选的数值选在乘法便宜的位置上。
2 的幂量化干的就是这件事。它不用等距的整数格点,而把权重限制成 ±2、±4、±8、±0.5 这类 2 的整数次幂。乘以 2 的几次方,在硬件上就是移位,一个移位器加一个加法器就够了,不需要乘法器。这类设计通常叫「无乘法」推理。
代价也清楚:底数为 2 的格点太粗,相邻档位差一倍,权重里那些小数值会被直接舍成零,位宽一低精度就掉得厉害。
arXiv 上有一篇 Fractional Power-of-Two Quantization for Efficient and Effective Multiplier-Free LLM Inference(编号 2610.21257)就是解决这个矛盾:把底数从 2 换成 √2,相当于每档只差 41%,格点密了一倍,仍然只走整数移位加法。论文报告在 Llama-3-8B 上做到 4 位权重,常识推理效果比朴素 2 的幂方案好 8.72%(相对值),与普通整数量化只差 0.4 个百分点。
这跟一家门店有什么关系
这条技术路线门店不会直接选,也不用拿它去要求供应商。它有用的地方在于解释一类现象,并且给出几个该问的问题。
要关注的三种情况:
- 设备靠 PoE 或电池供电。 功耗预算紧,乘法器的数量直接决定能跑几路。
- 设备无风扇、装在封闭的收银台里。 满载时功耗高一点就降频,表现出来是高峰期变慢。
- 一次要铺几百上千台。 单台差几十块钱,总量就是几十万,这时候算术结构的选择会被供应商拿出来做成本文章。
不用太在意的情况:
- 设备用的是成熟的中低端 NPU,INT8 乘加是标配,供应商也有现成的量化模型。这条路上 PoT 拿不到额外收益。
- 单店、单路、低分辨率。算力余量本来就够,没必要为这点差别折腾。
选型时把问题换个问法
「多少 TOPS」问不出所以然——那是理论峰值,跟实际能跑几路、跑多稳没关系。换成下面这组:
- 这套模型在你们用的这颗芯片上,有没有专门的量化版本和算子实现?还是原样套用通用框架?
- 量化是训练后做的,还是在训练阶段就按芯片的数值规则对齐过?
- 换一款芯片,模型的量化版本要不要重做?大概多久?
- 满载四路跑一个小时,功耗和温度是多少?会不会降频?
这四个问题背后是同一件事:供应商有没有认真对待过「模型和芯片要对得上」。认真做过的,答案会很具体,比如某几个算子做了替换、某层单独保了精度;没做过的,通常只能回到「我们算力很大」。
验收别看演示,看满载
无风扇设备的脾气,只有在满载和长时间运行时才露出来。演示五分钟不说明问题。
- 按计划路数的上限跑,不是按现在的路数跑。 现在两路、明年四路,就按四路买、按四路测。
- 跑满一个营业高峰。 而不是跑一段空闲时段。
- 记录温度和频率。 有降频就有掉帧,用户感受到的是排队时那几秒。
- 同时开着收银软件和广告屏。 门店设备很少只干一件事。
一句话
模型文件一样,跑出来的效果可以差很远,因为芯片算乘法的成本不一样。门店不需要懂移位加法,但要知道「标称算力」和「这台设备能不能稳定跑我的路数」是两件事,验收时用满载实测代替参数对比。