3.1 INT4 到底损失了什么:困惑度、精度度量与肉眼可辨阈值 读者读完这一节,应该能说一句话:INT4 的精度损失不是均匀削薄模型,而是有结构地先伤「长尾知识」和「长上下文稳定性」;用困惑度做快速体检,用下游任务做真伤定位,再结合可感知阈值判断「对你到底坏没坏」。 当你把 DeepSeek V4 从 FP16 压到 INT4,显存确实降到了约四分之一,但「损失了什么」这件事,几乎没有一个人能用一句话讲清楚。这一节给你一套可操作的判断框架:困惑度负责快速体检,下游任务负责真伤定位,而「肉眼可辨」取决于任务类型与几个放大器。 困惑度(Perplexity)到底是什么,怎么读 困惑度衡量一个语言模型对测试文本的「意外程度」。
读者读完这一节,应该能说一句话:INT4 的精度损失不是均匀削薄模型,而是有结构地先伤「长尾知识」和「长上下文稳定性」;用困惑度做快速体检,用下游任务做真伤定位,再结合可感知阈值判断「对你到底坏没坏」。
当你把 DeepSeek V4 从 FP16 压到 INT4,显存确实降到了约四分之一,但「损失了什么」这件事,几乎没有一个人能用一句话讲清楚。这一节给你一套可操作的判断框架:困惑度负责快速体检,下游任务负责真伤定位,而「肉眼可辨」取决于任务类型与几个放大器。
困惑度衡量一个语言模型对测试文本的「意外程度」。把它想成「模型在预测下一个词时的平均分支因子」——困惑度越低,模型对文本越不意外,也就是越「懂」。
读 PPL 有两个常见误区。第一,PPL 是相对量不是绝对量:不同分词器、不同测试集下的 PPL 不可直接比较。你说「我的 INT4 版 PPL 从 3.2 涨到 3.8」,只有在同一测试集、同一分词器下才有意义。第二,PPL 衡量的是「语言流畅度」,不直接等于「回答得对不对」。一个 PPL 只涨了一点的模型,照样可能在某道推理题上彻底翻车。所以 PPL 适合做回归检测(量化前后对比),不适合单独当「质量达标」的判据。
经验上,INT4 量化在主流开源模型上通常会让 PPL 有小幅上升。但关键问题是:这点涨幅,人能不能感知到?
注意这里的「可感知」高度依赖任务。写诗、闲聊这类容错高的任务,PPL 涨 5% 你可能毫无感觉;但代码生成、数学推理、长文档抽取这类「错一个符号就全错」的任务,即便 PPL 只涨 2%,错误率也可能不成比例地放大。换言之,PPL 是体温计,不是判决书——它告诉你「可能发烧了」,但烧到什么程度、要不要紧,得靠下游任务说了算。
要理解「损失集中在哪」,得先理解大模型的一个怪癖:激活离群点(activation outliers)。在 transformer 的某些中间层,少数特征维度的值会大到离谱,比其余维度高几十倍甚至上百倍。当你把整张权重张量塞进一个共享的 INT4 缩放因子时,这些离群点会逼着全局缩放因子变得很「粗」,结果就是绝大多数正常幅度的维度被压成一团模糊的近邻值——细粒度的信号被碾碎了。
这正是为什么**细粒度量化(per-group / per-channel)和混合精度(把离群点留在更高比特)**能显著救回质量:它们不再用「一个尺度管全部」,而是让正常维度拥有自己的精细尺度。这也解释了本节开头那句话——长尾知识往往就活在那些稀疏、高幅度的激活里,所以它们最先受损。理解了这一点,你就不会再笼统地说「INT4 质量差」,而能说「INT4 在离群点密集的层差,用分组量化可以缓解」。
真正判断「损失在哪」,要看模型在你关心的任务上的表现。常见三类信号:
从大量社区实践看,INT4 量化后最先受损的通常不是「主流通用能力」,而是两端:一端是长尾、低频知识(冷门实体、专业术语、罕见语言),另一端是长上下文后期的一致性与数值准确性。中间那块「常见问答」反而最稳。这给了一条实用建议:用你自己的真实 prompt 做回归测试,比跑十个公开基准更有价值。公开基准告诉你「平均没坏」,你的业务 prompt 才告诉你「你的场景坏没坏」。
即便平均损失很小,以下因素会放大可感知程度,需要重点测:
如果你发现量化后 PPL 涨得离谱,别急着换模型,按这条阶梯逐档尝试,性价比通常远高于「直接放弃 INT4」:
量化完别急着上线,按这份清单逐条过:
INT4 的损失不是「均匀削薄」,而是有结构地先伤长尾知识与长上下文稳定性,根源在于激活离群点迫使全局缩放变粗。困惑度负责快速体检,下游任务负责真伤定位,而「肉眼可辨」取决于任务类型与四个放大器。下一节我们把视角从「质量」拉开,放进「显存—速度—质量」的三角里做整体权衡。