跳转到内容
主站 新闻 控制台

量化感知修复:性能超越全精度原版的压缩 4 位模型

· Hugging Face
教程模型卡

让大型语言模型变小几乎总要付出代价。如今,高效部署通常采用这样的方案:先压缩架构,通过移除层、注意力头或神经元来减少参数量;然后将剩余权重进一步量化到 4 bit,以降低内存和计算开销。这两个步骤都能带来显著节省,但结合使用时,会系统性地削弱人们真正关心的能力:推理、数学问题求解和代码生成。因此,在模型投入生产之前,严肃的部署流程通常会增加一个恢复步骤,通常称为“修复”(healing)。近期发布的开放权重模型,例如 gpt-oss、NVIDIA 的 Nemotron 系列,以及我们自己的 Hypernova 60B,都采用了某种“先压缩、再修复”的方案。

我们最新的论文 量化感知修复:恢复压缩 4 bit LLM 的实用方案(Quantization-Aware Healing: A Practical Recipe for Recovering Compressed, 4-Bit LLMs) 探讨了一个该领域长期悬而未决的问题:当模型不仅经过量化,还已经完成结构压缩之后,这个恢复步骤究竟有多大作用,以及正确的实施方式是什么?我们提出了量化感知修复(Quantization-Aware Healing,QAH)。将其应用于一个经过压缩、参数量从 120B 降至 60B,并量化为 MXFP4 的 GPT-OSS 120B 模型后,得到的模型在 9 项基准测试中的 7 项超过了其自身的全精度(bfloat16)版本。这个 4 bit 模型体积更小、运行成本更低,而且比用于量化的原始检查点更加准确。这颠覆了 4 bit 模型与其所来源的 16 bit 模型之间通常存在的关系。

为什么常规修复方法在这里效果不佳

大多数效率优化流程都遵循相同的三个步骤:压缩架构、量化压缩后的权重,然后修复由此造成的损伤。不同方法之间的差异,完全体现在最后一步。

目前占主导地位的修复方案是量化感知训练(quantization-aware training,QAT)。它会在前向传播中插入伪量化算子,并继续使用任务损失对模型进行微调,使权重学会适应低精度表示。实际上,这意味着要通过更加嘈杂、精度更低的前向传播,重新执行原本已经十分昂贵的多阶段后训练流程,包括监督微调、RLHF 和智能体调优。这样做成本高昂;正如我们的结果所表明的那样,如果训练在达到最佳点后继续太久,也可能变得不稳定。

另一种方案是量化感知蒸馏(quantization-aware distillation,QAD),它避免重新执行此前的训练历程。QAD 不使用任务损失,而是通过在输出 logits 上计算 KL 散度损失,将冻结的全精度教师模型直接蒸馏到量化学生模型中。当唯一变化是量化时,这种方法效果很好,因为此时存在一个真正的、完全相同模型的全精度版本,可以充当教师模型。

但当模型经历了结构压缩——减少层、注意力头或神经元,而不仅仅是减少 bit 数——这一假设就不成立了。对于更小的架构,并不存在一个独立训练得到的全精度版本。唯一可用的教师候选模型是恢复后的 bfloat16 检查点,而它本身就是原始模型的蒸馏近似版本。以它为教师进行蒸馏,会让量化学生模型受限于一个已经退化的目标,并将其准确率上限锁定在该恢复检查点自身的水平。

因此,如何修复一个同时经过结构压缩和量化的模型,直到现在仍然是一个真正开放的问题。

我们的方法

QAH 通过一个改变消除了这一上限:它不是从恢复后的模型进行蒸馏,而是直接从压缩前的原始模型进行蒸馏。教师模型和学生模型甚至不共享相同的架构。教师模型规模完整、采用全精度;学生模型的规模只有一半,并以 MXFP4 运行。由于教师模型的输出分布与架构无关,模型规模或形状不匹配并不会妨碍知识迁移。学生模型不会接触硬标签,只会接收教师模型的输出分布,并通过 logits 上的 KL 散度进行匹配。

这重新定义了量化阶段的作用。在 QAH 中,量化不再是修复完成后执行的一次有损后处理步骤,而是针对原始教师模型进行的第二轮完整蒸馏,是 bfloat16 检查点从未获得的监督信号。4 bit 学生模型并不是在弥补量化造成的信息损失,而是在获取此前的恢复阶段因时间或数据不足而未能迁移的信息。

这种损失函数本身还带来了稳定性方面的优势。由于 KL 蒸馏将学生模型与固定的教师分布绑定,当学生模型追上教师模型后,就不会再受到进一步偏移的压力。相比之下,交叉熵任务损失会持续推动学生模型趋向硬标签,不会自行停止。这一差异对准确率和训练稳定性都十分重要,下面的对比结果说明了这一点。

为了让 QAH 能够处理长上下文场景——修复语料中包含最长 32k token 的文档——我们复用了配套论文中提出的高效蒸馏方案里的内存高效分块 KL 散度损失。该损失会逐个序列切片计算 KL 散度,并且不会将完整的“词表 × 序列”网格实例化到内存中,因此能够让 32k token 的修复过程适应固定的 GPU 内存预算。我们已在此前的文章中介绍过该损失的具体机制。

QAH 概览:经过结构压缩和量化后,模型能力会大幅下降。QAH 将原始压缩前模型作为冻结的教师模型进行蒸馏,无需重新执行多阶段后训练即可恢复性能。

QAH 概览。经过结构压缩和量化后,模型能力会大幅下降。QAH 从原始模型进行蒸馏:原始模型作为冻结的教师模型,其 logits 会预先离线计算,而不是从恢复后的检查点进行蒸馏。来源:论文图 1。

结果

我们将 QAH 应用于一个 GPT-OSS 120B 模型:先将其压缩至 60B 参数,并以 bfloat16 完成恢复,然后在 QAH 过程中重新量化为 MXFP4。最自然的比较对象,是同一个 60B 模型的 bfloat16 检查点——这是现有该架构中最好的全精度版本。QAH 模型在 9 项基准测试中的 7 项取得了更好结果。

基准测试120B 教师模型(MXFP4)60B BF16(恢复后)60B MXFP4(QAH)QAH 对比 BF16
AA-LCR(长上下文推理)50.035.342.7+7.4
AIME 2025(数学)80.070.776.3+5.6
Aider(智能体编程)45.338.240.9+2.7
τ²-bench(工具使用)68.459.461.7+2.3
GPQA Diamond(科学)69.065.767.4+1.7
IFBench(指令遵循)63.358.459.9+1.5
LiveCodeBench(编程)66.065.566.5+1.0
MMLU-Pro(知识)78.074.073.8−0.2
SciCode(科学编程)37.535.634.2−1.4

QAH 落后的两个基准测试是 MMLU-Pro 和 SciCode,差距分别小于 1 分和 1.5 分。在其他所有测试中,这个 4 bit 模型都超过了自身的 16 bit 来源模型;其中最大收益恰好出现在结构压缩通常损害最严重的能力上:长上下文推理(AA-LCR 提升 7.4 分)和数学能力(AIME 2025 提升 5.6 分)。

与原始 120B 教师模型的对比同样颇具启发性。尽管 QAH 模型的参数量只有教师模型的一半,权重内存约为其四分之一,但它在 LiveCodeBench 上超过了完整规模的教师模型(66.5 对 66.0),并且在 GPQA Diamond 上仅落后 1.6 分(67.4 对 69.0)。与教师模型之间最大的剩余差距出现在 AA-LCR 上。这是一项极端的长上下文基准测试,而模型因压缩而损失的容量在此处娱乐代理