两台设备,同一个模型

选型时最容易发生的一幕:供应商演示用的设备能跑四路摄像头,你按同样的参数买回来一台,装到店里两路就开始掉帧。去看参数表,两台的标称算力差不多,内存也差不多。

这里面的变量很多——散热、内存带宽、后端优化、功耗墙。但有一层很少被提到:芯片做一次乘法,代价和做一次加法不一样。

识别模型的主体是卷积和全连接层,核心运算是乘加。硬件上,一个乘法器比一个加法器贵得多——门数、面积、功耗都高。所以在同样的芯片面积里,加法器的数量可以放很多个,乘法器就只能放几个。

对一台插着电、带风扇的服务器,这不是问题。对门店里那种 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」问不出所以然——那是理论峰值,跟实际能跑几路、跑多稳没关系。换成下面这组:

  • 这套模型在你们用的这颗芯片上,有没有专门的量化版本和算子实现?还是原样套用通用框架?
  • 量化是训练后做的,还是在训练阶段就按芯片的数值规则对齐过?
  • 换一款芯片,模型的量化版本要不要重做?大概多久?
  • 满载四路跑一个小时,功耗和温度是多少?会不会降频?

这四个问题背后是同一件事:供应商有没有认真对待过「模型和芯片要对得上」。认真做过的,答案会很具体,比如某几个算子做了替换、某层单独保了精度;没做过的,通常只能回到「我们算力很大」。

验收别看演示,看满载

无风扇设备的脾气,只有在满载和长时间运行时才露出来。演示五分钟不说明问题。

  1. 按计划路数的上限跑,不是按现在的路数跑。 现在两路、明年四路,就按四路买、按四路测。
  2. 跑满一个营业高峰。 而不是跑一段空闲时段。
  3. 记录温度和频率。 有降频就有掉帧,用户感受到的是排队时那几秒。
  4. 同时开着收银软件和广告屏。 门店设备很少只干一件事。

一句话

模型文件一样,跑出来的效果可以差很远,因为芯片算乘法的成本不一样。门店不需要懂移位加法,但要知道「标称算力」和「这台设备能不能稳定跑我的路数」是两件事,验收时用满载实测代替参数对比。