跳到主要内容

量化质量悬崖:当 int4 通过中位数评估却在长尾场景失效时

· 阅读需 13 分钟
Tian Pan
Software Engineer

一个团队将 fp16 模型更换为 int4 量化模型,以将推理成本减半。评估套件在精心挑选的测试集上的得分与原始模型相比差距不到一个百分点。于是,在“基准测试表现无差异”的理由下,模型正式发布。六个星期后,支持团队收到了受监管客户关于灾难性故障的反馈——生成的代码完全是胡言乱语,低资源语言的回复漂移到了另一种文字,多步算术运算自信地给出了偏差一个数量级的数字。基准测试没有撒谎。它只是测量了中位数,而量化并不是对中位数的均匀征税,它是对长尾分布的非均匀征税。

这就是量化质量悬崖:你的评估套件、发布纪律和成本节约叙事同时崩溃,因为你用来批准更换的指标,对于你所摧毁的能力完全没有信号反馈。最近的基准测试让这种影响变得具体。在长上下文任务中,8-bit 量化保留了准确性,仅下降了约 0.8%,而 4-bit 方法在相同工作负载下损失高达 59%——这种退化对于任何没有对长尾输入进行过采样(oversample)的测试集来说都是不可见的。中位数移动了一个点,而长尾移动了十五、三十甚至五十个点。

为什么量化对能力的压缩是不均匀的

“精度越低意味着各处性能都会略微下降”的直觉是错误的。量化是权重矩阵的有损压缩,而损失特性是由信息在该矩阵中的分布方式决定的。LLM 权重矩阵是不均匀的。它们包含一小部分“显著”(salient)通道——这些离群权重(outlier weights)对输出有着不成比例的影响——而大部分数值都聚集在零附近。使用最大最小缩放(min-max scaling)的朴素对称量化要么在离群值上浪费了取值范围,导致大部分权重缺乏分辨率;要么为了适应更窄的范围而压碎了离群值。

无论哪种方式,权重空间中的主导方向——那些承载摘要生成、通用领域问答和多数分布有用性的方向——都被足够冗余地编码以在舍入中幸存。团队丢掉的那些比特承载的是其他东西:稀有词汇的补全、低资源语言的结构、依赖数值边界表示的多步算术,以及从业者通常称之为“涌现”(emergent)的长尾能力。对量化模型行为的研究发现了一个相变:在高精度下退化是平滑的,但在 2-bit 量化时会出现尖锐的困惑度(perplexity)飙升,所有测试的模型系列在 3-bit 阈值附近都会显示出灾难性的崩溃。Int4 正好处于大多数模型的悬崖上方——但在对抗性切片上,它可能已经开始跌落。

GPTQ 和 AWQ 的存在正是因为朴素方法破坏了错误的权重。AWQ 通过分析校准集(calibration set)上的激活统计数据来识别显著通道,然后在量化前将其放大(并在推理时缩小激活值),从而使舍入误差落在那些不重要的通道上。GPTQ 逐层重新分配误差,以防止任何单个权重成为瓶颈。这两种技术在大多数情况下都是有效的。失败模式发生了转变:不再是全面的灾难性损失,而是在那些激活模式未出现在校准集中的输入上出现选择性的退化。校准数据与生产流量之间的跨主题分布偏移比跨数据集偏移更具破坏性,因为基于校准得出的缩放因子是针对错误的离群值进行优化的。

为什么评估套件依然显示正常(绿灯)

中位数基准测试与长尾行为之间的不匹配是结构性的,而不是标注疏忽。大多数精心挑选的测试集旨在具有代表性——这意味着它们大致按任务的自然分布进行采样。对于衡量量化损失来说,这恰恰是错误的采样策略。如果 95% 的基准测试用例落在对 int4 具有鲁棒性的能力上,而 5% 落在不具备鲁棒性的能力上,那么 95% 的保留率与 50% 的保留率混合在一起,表现出来的只是平均分下降了一个点。平均准确率是一个低通滤波器,它恰恰抹平了你最需要看到的退化。

2025 年针对训练后量化(PTQ)的综合评估研究显示,这种模式在各个模型系列中普遍存在:中位数 MMLU 分数保持在几个点以内,但编码和 STEM 任务——这些任务严重依赖稀有标记补全和结构化数值推理——显示出最大的分值下降。输入超过 64K 标记的长上下文任务在 int4 时发生灾难性退化,而在 int8 时保持平稳。非英语语言的退化程度超过英语,而在非英语语言中,低资源语言的退化程度超过高资源语言。如果评估只是“MMLU 和一个预留的聊天测试集”,那么这些都不会显现出来——因为这两者都以英语、短上下文和通用领域输入为主。

你必须落地的评估规范描述起来很简单,但投入成本却很高:

  • 一个独立于中位数进行评分的长尾评估切片,显式地对稀有标记、低频领域和数值边界提示词进行过采样。
  • 在更换之前在该切片上测量的预量化分数,这样对比的就不是“中位数移动了一个点”,而是“长尾移动了十五个点”。
  • 在发布前发布每个量化层级的行为差异(delta),而不是在发布后才发现。
  • 对 8K、64K 和 128K 的长上下文测试用例进行独立评估,因为对上下文长度进行聚合会掩盖仅在长端出现的退化。
  • 包含至少一种与你的客户相关的低资源语言的多语言覆盖,因为那里的退化程度大约是英语退化的两倍。

构建这个切片的前期工作是实实在在的。另一种选择是让你的客户通过生产环境的工单来为你构建。

校准陷阱与分布偏移

一个更隐蔽的失败加剧了“中位数盲区”问题:即使是那些确实测量了长尾性能的团队,也可能发布一个校准集与部署环境不匹配的模型。像 AWQ 和 GPTQ 这样的训练后量化(PTQ)方法依赖于校准语料库来识别显著通道并调整缩放因子。如果该语料库取自通用的网络文本,而你的生产流量是医疗图表摘要,那么缩放因子保护的就是错误的权重。模型的量化选择针对的是你的用户并不会产生的离群值进行了优化,而用户真正产生的离群值却被破坏了。

这是一种特别棘手的失败模式,因为它完全不会出现在量化库发布的预设基准测试中。该库的评估结果与库的校准集相匹配,而这两者都符合公共语料库的分布。你的特定领域流量则是另一种分布偏移。关于量化泛化性的研究表明,校准分布与测试分布之间的一致性并不总能产生最佳性能——这种关系取决于具体任务,跨主题的偏移可能会以产生糟糕性能或不可预测输出的方式破坏量化参数。

实际建议:

加载中…
References:Let's stay in touch and Follow me for more thoughts and updates