大模型量化的最后死角:ARCHead 把输出头压到 BF16 的四分之一,困惑度仅涨 0.7%

ARCHead: Activation-Metric Residual Correction for Large Language Model Output Heads

Şuayp Talha Kocabay, Talha Rüzgar Akkuş, Kamer Ali Yuksel

ACL Rolling Review (ARR)

cs.CL, cs.LG

2026-08-03

大模型量化时通常留在 BF16 的 LM-head 是部署里剩下的最大一块存储。ARCHead 把它拆成量化低秩核心加 INT4 残差加激活度量校正,在 Qwen3-8B 上以 25.6% 存储做到 1.007 相对困惑度,同等存储的朴素 INT4 是 1.15。

这篇在解决什么

Weight-only quantization(只压权重、激活值仍保持高精度的量化方式)能把 transformer 块压到 4 bit,但几乎所有实用后端(AWQ、bitsandbytes 等)都把最后的 LM-head 留在 BF16/FP16。原因是大词表模型的输出投影太敏感,朴素 INT4 量化会强烈扰动词表上的 logit 分布。对 Qwen3-8B-Base 这种词表大的模型,这块 BF16 头要 1.18 GB,是量化部署里剩下的最大一块显存。

难点在于:朴素的低比特量化优化的是权重空间的重构误差,而真正该优化的是它在实际激活分布下造成的输出误差,两者不是一回事。

方法

ARCHead 把这块稠密输出头拆成三部分,全部以压缩形式存储,不留任何 BF16 密心头。

最终输出是核心的量化乘积加上校正项。论文证明,在核心和变换固定时,未量化的校正因子恰好最小化这个激活度量目标。这个设计有条件最优性,不是凑出来的。

结果

核心对比(单看 LM-head,Qwen3-8B-Base,WikiText-103):

方法头存储占比相对困惑度
稠密 BF16100%1.000
行级 INT850%1.017
分组 INT426.6%1.151
SVD8+INT4约 27%1.211
ARCHead25.6%1.007

ARCHead 和分组 INT4 存储几乎一样(25.6% 对 26.6%),困惑度差距却很大:朴素 INT4 把困惑度顶高 15%,ARCHead 几乎无损。换算成 top-1 token 一致率,分组 INT4 只有 76.95%、KL 散度 0.167,ARCHead 是 93.05%、KL 0.011。

跟块量化器拼(AWQ 4-bit、bitsandbytes NF4 把块量化、头留 BF16),用 ARCHead 替掉那个 BF16 头只多花 0.006 到 0.007 交叉熵,吞吐变化小于 2%。对 Qwen3-8B,生成吞吐 BF16 头 4468 token/s、ARCHead 4467 token/s,基本持平。5 个模型上压缩比稳定在 3.71 到 3.91 倍。对比 GPTQ 风格的头量化,ARCHead 把退化再降 33.6 到 49.3%,且构建快 2.36 到 2.58 倍。

为什么重要

实用价值很直接:用 AWQ 或 bitsandbytes 部署大词表模型的人,可以把那块碍事的 BF16 头也省掉,几乎不付质量代价、不付速度代价。它是对现有块量化器的补充,只动输出投影,不碰 MLP 和 attention。

局限与存疑

作者自己承认几点:ARCHead 只压输出头,不动 transformer 主体权重;三个下游任务(HellaSwag、TruthfulQA MC2、WinoGrande)只是 sanity check,不证明所有能力都保住;它针对的是序列化和加载时的参数张量存储,不是峰值 GPU 显存。收益还是模型相关的:在 Gemma-4-E4B 上,朴素 INT4 本身就强(1.013),ARCHead 是 1.010,两者舍入后基本打平,ARCHead 的优势收窄成一个 wash。

术语

原文与代码

相关论文

全部论文解读