一句话定义

量化感知训练(Quantization-Aware Training,QAT) 指在训练过程里就模拟量化的效果:前向计算按低位精度走,反向传播仍按高精度更新参数,让模型自己学会在低位数值下工作。

它和「先训好、再压成低位」的顺序正好相反——不是把模型压小,而是让模型一开始就照着低位长大。

它解决什么问题

模型量化有两条路:训练后量化(PTQ)与量化感知训练(QAT)。

训练后量化(PTQ) 量化感知训练(QAT)
做法 拿现成模型加少量校准数据跑一遍 在训练图里插入伪量化节点,重训
成本 低,通常几小时 高,要有完整的训练流程
效果 位宽不低时够用 位宽越低,两条路的差距越明显

PTQ 是让量化去迁就模型,QAT 是让模型去迁就量化。位宽压到 4 位附近时,第二条路常常是唯一还能保住效果的路。

为什么还要看硬件

arXiv 上关于固定功能 CNN 加速器的工作(ShiftQAT,编号 2610.21695)给了一个提醒:这类芯片只执行符合特定数值契约的网络——支持哪些位宽、缩放系数怎么表示、舍入与饱和怎么做,都是硬件事先定死的。模型不满足这份契约,就跑不了,或者只能退回慢路径。

所以在这些设备上做 QAT,目的不只是「更准」,而是让网络长成硬件能接受的样子。这也解释了同一个模型在不同芯片上表现不同的根本原因:量化不是一个纯数学问题,一半是硬件问题。

关键做法

  • 在训练图里插入伪量化节点:前向按取整、截断的规则压一遍,反向把梯度当作直通处理。
  • 按目标硬件真正支持的数值格式来模拟,而不是按通用的低位整数假设。模拟错了,训出来的模型在真机上照样跑不好。
  • 学习率与轮次要跟着调:伪量化会带来噪声,训练节奏通常要放慢。
  • 验收看业务指标:检测框的漏检与误报、Top-K 命中率,而不是一个笼统的准确率数字。

用不上的时候

  • 位宽需求不高。压到 8 位就够用的模型,PTQ 一般能解决,没必要为更贵的流程付账。
  • 拿不到训练管线。只用别人训好的模型、手上只有推理权限时,这条路走不通。
  • 模型本身很小。小模型对量化的敏感度低,QAT 换来的收益有限。

参考

arXiv ShiftQAT: Quantization-Aware Training for the Numerical Contract of a Fixed-Function Edge CNN Accelerator(编号 2610.21695,2026-10-15),讨论量化感知训练如何让网络适配固定功能加速器的数值契约。

延伸阅读

相关词条


火眼识别提供端侧视觉引擎与设备管理平台,相关方案见 火眼识别官网。