PTQ(训练后量化)
一句话定位:拿已训练好的模型,用少量数据”标定”一下就完成量化——成本极低、不碰训练流程,是生产上快速上线的首选路径。
1. 机制:校准集统计激活分布
- 权重是静态的,直接统计其分布即可确定 scale;
- 激活是动态的,取决于输入。PTQ 的做法是拿少量校准集(通常几百到上千条代表性样本)跑前向推理,统计各层激活的数值分布(min/max、直方图),据此确定每层的 scale 与 zero_point。
- 校准方法常见有 max、百分位(如 99.99%,主动截断 outlier)、KL 散度最小化(TensorRT 的经典做法)等。
- 校准集必须与真实业务分布一致,否则 scale 选错,线上精度显著劣化。
2. 优势
- 成本极低:只需推理不需反向传播,几分钟到几十分钟即可完成;
- 不改训练流程:无需原始训练数据与训练代码,拿到权重就能做——对使用第三方开源模型的场景尤其关键;
- 工程链路短:TensorRT / TensorRT-LLM、PyTorch 均有成熟工具链支持,可直接接入部署流程(3.8)。
3. 精度表现与边界
- INT8 通常损失可控:多数 LLM/CNN 在 INT8 PTQ 下精度损失很小(常在 1% 以内),是性价比最高的档位;
- INT4 需更精细的算法:位宽降到 4 位后,仅靠简单校准的 PTQ 精度会明显下降,需要引入误差补偿类方法(如 GPTQ,见 4.4)或 outlier 处理(SmoothQuant/AWQ),并配合逐组量化(见 4.1);
- 若 PTQ 精度仍不达标且精度要求苛刻 → 升级到 QAT(见 4.3)。
选型直觉:先 PTQ INT8 验证收益,不够再上 GPTQ/INT4,精度硬要求才动 QAT——按成本从低到高逐级尝试。
参考:NVIDIA TensorRT 量化文档