兄弟们,最近社区里一堆人问模型量化到底怎么玩,我直接开整。搞过部署的都懂,模型太大根本跑不动,但量化也不是无脑砍精度。从FP32干到INT4,关键是平衡好压缩率和推理质量。
先说我的实战经验:
1️⃣ 混合精度量化:别一刀切。敏感层(比如Attention的QKV)保持FP16,其他层无脑INT8。实测LLaMA-7B能缩60%,困惑度只涨0.3。
2️⃣ 校准数据集别偷懒:用你的业务数据做KL散度校准,别拿通用语料凑数。我试过用代码数据校准CodeLlama,生成准确率直接反超未量化版本。
3️⃣ 推理框架选对:TensorRT-LLM的FP8量化比裸跑快3倍,但CPU部署还是ONNX Runtime + Q/DQ节点更稳。
踩坑提醒:有些层(比如LayerNorm)量化后容易炸,建议直接走FP16通道。另外部署前跑一遍量化感知训练(QAT),比纯PTQ省心太多。
最后问一嘴:你们在量化时遇到最坑的事是啥?我先来,遇到过量化后transformer的logits直接溢出,排查发现是calibration batch size设太小。 |