PTQ在模型训练完成后直接进行量化,只需少量校准数据(通常128-512个样本)统计各层权重和激活值的分布范围,计算量化参数后完成映射。完整流程包括:加载预训练模型→用校准数据前向传播收集统计信息→计算scale和zero-point→转换权重为低精度格式→评估精度并调整策略。GPTQ、AWQ、GGUF等均属于PTQ范畴,整个过程通常在几十分钟到几小时内完成。
QAT在训练过程中模拟量化效果,在前向传播中插入伪量化节点(fake quantization),让模型学习适应量化噪声。反向传播时使用直通估计器(STE)绕过量化操作的不可导问题。经过若干epoch的微调后,权重自然具备对量化误差的鲁棒性。Google在Gemma 3上实践表明,仅5000步QAT即可将INT4量化后的精度损失减少54%。
维度 | PTQ | QAT |
|---|---|---|
训练成本 | 无需训练 | 需微调(原训练的约1/10时间) |
数据需求 | 少量校准数据(约512样本) | 需训练数据(1万-10万样本) |
INT8精度 | 几乎无损(~99%) | 几乎无损(~99.5%) |
INT4精度 | 轻微下降(90%-95%保持率) | 更好(95%-98%保持率) |
开发周期 | 几小时到1天 | 几天到1周 |
适用场景 | 快速部署、模型微调后量化 | 极致精度要求、极低比特量化 |
选择PTQ的场景包括:使用预训练模型且无法获取训练数据、需要快速上线(1-2天内)、INT8/INT4精度已满足业务需求、计算资源有限无法支撑QAT。选择QAT的场景包括:拥有训练数据和充足算力、需要INT2/INT3等极低比特量化、精度要求极高(如金融、医疗领域)、需要灵活的混合精度策略。实践中也可采用混合方案:对大部分层使用PTQ,对关键层(如embedding、output层)使用QAT,在精度和成本间取得平衡。