兄弟们,最近群里总有人问模型量化怎么搞,今天就聊聊这个。先说结论:量化不是万能的,但不用量化是万万不能的。
第一个坑:直接套用PyTorch的默认量化参数。⚡ 实测LLaMA-2-7B用默认int8量化,推理速度只提升20%,但精度掉得比脸还快。正确的做法是先做calibration,选500-1000个代表性样本,跑一遍forward统计激活值分布。推荐用GPTQ或AWQ,比RTN强太多了。
第二个坑:忽略量化感知训练(QAT)。🎯 很多人图省事直接做后训练量化(PTQ),结果部署到边缘设备上各种炸。尤其像Whisper这种语音模型,PTQ后WER直接翻倍。解决方案:在fine-tune阶段就插入fake_quant节点,让模型自己适应低精度计算。一般3-5个epoch就能稳住。
第三个坑:量化粒度过粗。🔬 整个模型用同一个scale factor?那是2019年的玩法。现在主流是per-channel甚至per-group量化。比如LLM.int8()那个论文里,对outlier channel单独用fp16,剩下的int8,效果立竿见影。
最后问一句:你们在实际项目里踩过最离谱的量化坑是啥?是精度崩了还是速度没提升?评论区唠唠。👊 |