一句话定义
量化感知训练(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),讨论量化感知训练如何让网络适配固定功能加速器的数值契约。
延伸阅读
- 同一个模型换台设备就变差,问题多半出在训练这一步 —— 这篇讲的是这件事对门店意味着什么。
相关词条
火眼识别提供端侧视觉引擎与设备管理平台,相关方案见 火眼识别官网。