量化感知训练(QAT)
AI TERM术语词条Quantization-Aware Training
术语释义
量化感知训练在训练阶段就模拟低精度计算,让模型提前适应量化误差,压缩后的精度损失通常明显小于直接量化。
量化感知训练(QAT)是在训练阶段就引入量化的取整误差,让模型提前适应低精度表示。直接对训练好的模型做量化,权重被压到低位宽后精度可能明显下降;QAT 在前向与反向过程中模拟量化,让参数朝「即使被量化也依然准」的方向更新。它要解决的核心问题是:量化误差是确定的,但模型可以学会在误差下仍然给出正确答案。
与训练后量化的取舍和相关要点
- 训练后量化:不用重新训练,很快就能完成,适合快速验证与对精度不敏感的场景。
- 量化感知训练:需要重训或微调,精度损失通常更小,适合质量敏感的线上服务。
- 伪量化节点:训练时插入取整模拟,推理时替换为真正的低精度算子。
- 混合精度:只量化权重与激活中的一部分,对敏感层保持高精度。
- 校准数据:训练后量化依赖少量校准样本来定缩放系数,QAT 则把这件事交给训练过程。
- 低位宽更难:位宽越低,直接量化的损失通常越明显,QAT 的相对收益也越大。
为什么梯度还能传
取整操作本身不可导,QAT 的做法是在反向传播时用一个近似函数的梯度代替,让参数仍能收到更新信号,这种处理通常称为直通估计。缩放系数的确定方式也有区别:按张量整体取一个系数实现简单,按通道分别取系数精度更好但算子更复杂。训练时要让模拟量化与真实推理的数值行为尽量一致,否则会出现训练时看着好、部署后掉点的情况。训练轮数通常不多,常见做法是在已有权重上做短程微调,而不是从零重训,这能明显降低算力门槛。
代价与收益
- 收益:显存占用与推理成本下降、吞吐提升,低精度格式还能减轻访存压力。
- 代价:多一轮训练与调参,需要准备训练数据与算力,周期比训练后量化长得多。
- 硬件前提:目标硬件要支持对应的低精度算子,否则收益会打折甚至无法落地。
- 验证方式:必须把量化后的模型放进真实评测集复测,而不是只看训练时的损失曲线。
- 迭代成本:量化方案一旦调整就要重新训练验证,模型版本与量化版本必须成对管理。
实践中常见的顺序是先做训练后量化看损失有多大,只有在精度确实不够时才投入 QAT;如果损失主要来自少数敏感层,先试混合精度往往比整网重训更划算。评估时要看业务相关的细分指标,整体平均分不掉,不代表关键类别没有被量化伤到。