KVarN:方差归一化的 KV-Cache 量化以缓解推理任务中的误差累积 KVarN: Variance-Normalized KV-Cache Quantization Mitigates Error Accumulation in Reasoning Tasks
方差归一化加 Hadamard 旋转抑制 KV-cache 误差累积,2-bit 下刷新推理基准。
前置知识
KV-Cache(键值缓存)
自回归解码时 Transformer 把每层已算出的 Key、Value 矩阵缓存下来,避免对历史 token 重复算注意力。论文按 128×128 的 tile 组织(如 Llama3.1-8B),缓存随生成长度线性膨胀。
本文所有讨论都围绕「压缩这块缓存」展开,不理解它的组织方式就看不懂 token/channel 双维度量化的含义。
KV-Cache 量化(KIVI / RTN)
用少于 16 位(常 2-4 位)表示 K/V。KIVI 对 V 按 token、对 K 按 channel 量化,存低精度矩阵 $K_q$、零点 $\vec{z}$、scale $\vec{s}$,反量化 $K_{dq}=(K_q+\vec{z})\odot\vec{s}$;RTN 即舍入到最近。
KVarN 直接以 KIVI+RTN 为基线并改进,不懂这套表示就无法理解它额外存的第二个 scale 起什么作用。
Hadamard 旋转 / 相干性处理
对张量施加 Hadamard 正交变换,把通道维度的离群值打散成近似高斯分布,复杂度 $O(N\log N)$,可吸收进相邻权重矩阵。源自 QuaRot 等权重量化工作。
KVarN 的第一步正是这种旋转,但要理解它为何「不够」、必须再叠加方差归一化,才能抓住本文创新。
测试时扩展 / 推理解码
通过延长解码长度(生成更长的思维链)来提升 LLM 推理能力,对应 AIME24、MATH500 等任务。代价是 KV-cache 随生成长度线性增长,成为显存瓶颈。
本文的核心痛点——误差在长解码中累积——正是测试时扩展带来的;理解这一点才明白为什么旧的预填充式评测会失效。
双尺度方差归一化(Sinkhorn)
对张量行、列两维度交替迭代归一化方差(Sinkhorn-Knopp 风格),使两维方差均匀。源自 SINQ 权重量化,本文首次把它用于 KV-cache 的 token 与 channel 双维度。
这是 KVarN 的核心机制,也是它与所有已有 KV-cache 方法的根本区别,理解它能直接读懂方法章。
研究动机
测试时扩展让推理 LLM 通过更长的解码思维链获得更强能力,但也意味着 KV-cache 随生成长度线性膨胀,迅速成为显存瓶颈。KV-cache 量化(把 K、V 压到 2-4 位)是缓解该瓶颈的主流手段,然而现有方法——KIVI、QuaRot、KVQuant、PolarQuant、TurboQuant——几乎全部在预填充式(prefill)场景下评估,典型任务是 Needle-in-a-Haystack、MultiQA、LongBench:一段固定长上下文被并行量化。但作者指出,自回归解码时误差行为完全不同:每生成 $b$ 个 token 就把新产生的 K、V 量化写回缓存,后续 block 读到的是已量化缓存,量化误差经注意力层逐层、逐时间步累积,甚至可指数级放大。图 1a 量化显示 K 矩阵最大的前 5% 误差绝大多数(占比趋近 1.0)来自错误的 token 尺度而非方向;作者还指出在 Llama3.1-8B 上 KIVI 方案下前 5% 误差中超过 98% 落在 K 矩阵(K 比 V 更难量化)。因此标量量化无法保持 token 范数,是误差累积与端到端退化的根因。
本文的目标是作者目标是设计一个免校准(calibration-free)的 KV-cache 量化器,能在自回归长解码场景下抑制误差累积,从而在 2-bit 这种极端低精度下仍保持接近 FP16 的端到端推理质量。具体而言:(1) 找到并量化「token 尺度误差」这一关键失效模式,证明它驱动了 outlier 误差,而 outlier 又不成比例地主导端到端退化——图 3 表明修复 5% 最差误差对 KL 散度的改善,超过修复其余 95%;(2) 提出量化方法 KVarN,平均仅用 2.3 位/元素(含额外 scale 开销),在 MATH500、AIME24、HumanEval、IF-Eval 等生成式推理与指令遵循基准上达到新 SOTA;(3) 提供忠实反映解码行为的快速评测——pseudo-decode,替代过去偏简单的预填充式指标。最终在 vLLM 上以仅 0.18% 的量化延迟开销落地,兼顾质量、显存与速度。
与已有工作不同的是,本文的独特切入点是把「权重量化里的相干性处理(Hadamard 旋转)」和「双尺度方差归一化」两类看似与 KV-cache 无关的技术组合,并首次指出二者协同。已有 KV-cache 量化要么只用 Hadamard 旋转(HK),但图 1b 证明它对 token 维度的尺度误差无能为力;要么只用单维度 scale(KIVI 按 channel、其它按 token)。而 Sinkhorn 式双尺度方差归一化此前只在权重量化(SINQ)出现,且其动机是「近似校准数据」,反而会增加权重重构误差。作者发现它在 KV-cache 上生效的原因完全不同——直接降低由 token 尺度错误引起的尾部误差。此外,过去评测要么用 NiaH(作者认为过于简单、反映不出累积),要么纯并行预填充;本文用 pseudo-decode 把序列切成大小 $b$ 的块,逐块量化、后续块读量化缓存,首次把「解码误差累积」这个真实痛点纳入评测。
核心方法
直觉先行:既然 outlier 误差主要是 token 范数被量化错(图 1a),那就直接把 token 范数「钉住」,不让舍入过程随意缩放最坏情况。KVarN 对每块(如 128 个 token)的 K、V 做两步预处理再量化:第一步在 channel 维度做 Hadamard 旋转(遵循 QuaRot 布局,可吸收进相邻权重矩阵),把通道离群值打散成近似高斯,降低方向性误差;第二步对旋转后的矩阵在 channel 与 token 两个维度做方差归一化 VarN(·)(Sinkhorn-Knopp 式迭代,实际用 8 次),使两维方差均匀,从而给每个 token 钉一个高精度 scale。两步之后用最朴素的 round-to-nearest (RTN) 标量量化即可。存储上除了 RTN 常规的零点 $\vec{z}$ 与 scale $\vec{s}_{RTN}$,再多存一个 VarN 引入的第二 scale $\vec{s}_1$,平均每位成本仍只有 2.3 bit/元素,却把 token 尺度误差压到极低。整套流程 calibration-free、完全在线完成。
核心创新是「把误差分解为范数项与方向项,并精准攻击范数项」。作者用点积几何展开给出分解 $\|K-K_{dq}\|^2=(\|K\|-\|K_{dq}\|)^2+2\|K\|\|K_{dq}\|(1-\cos\theta)$,第一项是纯范数(magnitude)误差 $E_M$,第二项是方向误差 $E_D$。图 1a 用 $E_M/E_T$ 证明,最大的前 5% 误差几乎全部(占比趋近 1)来自 $E_M$——也就是 token 被缩放错了,而非方向被扰乱。和已有方法的本质区别:HK 只降通道方向离群值却管不住 token scale;KIVI 只给 channel 一个 scale;KVarN 用 Hadamard(压方向)加双尺度方差归一化(压范数)二者协同——图 1b 显示单独 VarN(K) 已大幅降低 token 尺度偏差,完整 KVarN 进一步把它压到接近零,验证协同效应。作者还强调:MSE 最优不等于端到端最优,因为少数 outlier 误差不成比例地主导质量(图 3)。
方法步骤详情
流程以 128-token 块为例:① 每个新 token 先在 channel 维度施加 Hadamard 变换 $HX$(吸收进相邻权重,解压无需额外操作);② 每攒满 128 个 token 组成一块,对该块在 channel 与 token 两维度做方差归一化 VarN(·)——迭代按列、按行归一化方差(不能只用 token 轴,否则会抬高 channel 峰度),用 SINQ 的对数域标准差缩放,实际跑 8 次迭代;③ 对归一化矩阵做 round-to-nearest 标量量化,得 $K_q$、零点 $\vec{z}$、scale $\vec{s}_{RTN}$;④ 额外存 VarN 的第二 scale $\vec{s}_1$;⑤ 反量化 $K_{dq}=(K_q+\vec{z})\odot\vec{s}_{RTN}\odot\vec{s}_1$,相比 RTN 仅多 1 FLOP/token/channel。评测上 pseudo-decode 把序列切块,每过 $b$ 个 token 量化一次 KV-cache,后续 token 在量化缓存上算隐状态,复现解码误差累积。
技术新颖性
技术新颖性可拆为四点:(1) 诊断层面——首次把 KV-cache 量化误差显式分解为范数项与方向项,并用 $E_M/E_T$ 量化证明 outlier 误差由 token 尺度驱动,纠正「MSE 最优即端到端最优」的误区;(2) 评测层面——提出 pseudo-decode,区分 static(并行预填充)与 accumulated(逐块累积)两条曲线,图 5 显示 KVarN 在 accumulated 曲线上对 KIVI 的优势随上下文变长而扩大,这是过去预填充式指标看不到的;(3) 方法层面——首次把权重量化里的双尺度方差归一化(SINQ/Sinkhorn)迁移到 KV-cache,并阐明其在此处的机理是直接降重构误差、而非近似校准;(4) 协同层面——证明 Hadamard 旋转与 VarN 协同:单用 HK 不够,单用 VarN(K) 已有效,二者叠加的 KVarN 把尺度误差压到接近零。整套方法 calibration-free、纯在线,第二 scale 只让位成本从 2.0 升到 2.3 bit。
实验结果
端到端推理(Tab.1)上,Qwen3-4B 的 AIME24 准确率 KVarN 60.0% vs KIVI 55.5%(FP16 61.1%,近乎无损),Phi-4-14B 上 61.7% vs 57.8%;MATH500 上 Phi-4-14B 84.8% vs KIVI 74.4%(FP16 84.9%)。KVarN 仅用 2.3 bit/元素,是表中最少——比 2.4 bit 混合精度的 KVQuant-1%、Kitty 更省却更准。HumanEval(Tab.2)Phi-4-14B 88.2% vs KIVI 74.6%,修复了 KIVI 在大模型上的崩塌。IF-Eval(Tab.3)近乎无损。行检索(Tab.4)各上下文全面领先,Qwen3-4B 600 行 89% vs KIVI 74%。图 5 的重构误差显示 KVarN 的 accumulated 曲线随上下文增长对 KIVI 优势持续扩大,验证误差累积被抑制。开销(图 6)上归一化在 Qwen3-4B 仅 1.9ms vs 生成 1050ms,量化相对 KIVI 仅多 0.18%。在更低位宽下全面刷新 SOTA。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| AIME24(竞赛级数学推理) | Accuracy (%) | KVarN Qwen3-4B 60.0%、Phi-4-14B 61.7%(2.3 bit) | KIVI Qwen3-4B 55.5%、Phi-4-14B 57.8%;FP16 分别 61.1%/62.2% | Qwen3-4B +4.5pp、Phi-4-14B +3.9pp,且近乎追平 FP16(差距仅约 1pp) |
| MATH500(数学推理) | Accuracy (%) | KVarN Qwen3-4B 79.2%、Phi-4-14B 84.8% | KIVI 77.8% / 74.4%;FP16 82.6% / 84.9% | Phi-4-14B 上 +10.4pp(74.4→84.8),几乎无损逼近 FP16 |
| HumanEval(代码生成) | Accuracy (%) | KVarN Qwen3-4B 88.4%、Phi-4-14B 88.2% | KIVI 86.4% / 74.6%;FP16 88.8% / 88.9% | Phi-4-14B 上 +13.6pp,修复了 KIVI 在大模型上的崩塌 |
| 行检索(line-retrieval,长上下文) | Accuracy (%) @ 600 行 | KVarN Qwen3-4B 89%、Llama-3.1-8B 89%、Phi-4-14B 95% | KIVI 74% / 83% / 82% | Qwen3-4B +15pp,长上下文优势最显著,呼应累积抑制主题 |
| 量化在线开销 | 归一化延迟 / 总开销 | VarN 1.9ms vs 生成 1050ms,相对 KIVI 多 0.18% | KIVI 无归一化开销 | 开销可忽略,去量化仅多约 1%,远低于 codebook 类方法 |
局限与改进
作者承认的局限:(1) 评测集中在推理/指令类生成任务,NiaH 等合成任务「过于简单」不足以区分方法;(2) 混合精度方法 KVQuant-1%、Kitty 用 2.4 bit 时在 MATH500 等个别点上仍有竞争力,KVarN 的均匀精度优势并非在所有 cell 都碾压。我观察到的额外局限:仅评测三个模型(4B/8B/14B),缺少更大规模前沿推理模型(如 DeepSeek-R1、QwQ 级别);行检索最长只到 600 行约 12k token,未触及 32k-128k 真长上下文——而累积效应恰在最长上下文最严重,KVarN 的相对优势可能被低估或高估;方差归一化每块需 8 次迭代,虽占 0.18% 但随块增多仍是固定在线成本;额外 scale 使位成本从 2.0 升到 2.3,并非纯 2-bit;未给出与 token eviction/merging(H2O、SnapKV)组合的端到端结果(作者称正交但仅附录略提)。
独立分析的弱点
独立弱点与改进方向:(1) 长上下文评测缺位——行检索止于 600 行,应在 64k-128k 真实长文档(如 RULER、∞-Bench)上验证累积抑制是否依旧,否则 SOTA 说服力受限;改进方向是补充超长上下文基准并报告 accumulated 曲线。(2) 与混合精度方法的位宽公平性——KVarN 报 2.3 bit,而 KVQuant/Kitty 报 2.4 bit,差距很小却未做等位宽对齐消融;建议固定总 bit 预算再比较。(3) 块大小敏感性未交代——128 是默认但未扫参,VarN 对块内样本数可能敏感;改进是做块大小消融并给自适应分块。(4) 论文强调 K 比 V 难,但 V 的双尺度收益未单独拆解;建议分 K/V 给贡献分解。(5) 未与 eviction/merging 正面组合——二者正交、显存收益可叠加,是明显的工程延伸点。每个弱点都对应一个可量化的后续实验。
未来方向
作者明确点出的方向:token 合并/驱逐类压缩(H2O、SnapKV、PyramidKV、KVZip、CaM、D2O)与量化正交,可与 KVarN 组合进一步省显存,附录已做初步对比但端到端融合是开放问题。基于成果可延伸的方向:(1) 把 pseudo-decode 这一评测协议推广为 KV-cache 量化的标准 benchmark,并加入真长上下文(32k+)与更大推理模型,确认累积抑制的尺度律;(2) 探索 sub-2-bit(1.5/1 bit)下 VarN 与向量量化(TurboQuant 式 codebook)的组合,看双尺度能否救济极低位标量量化;(3) 硬件协同——把 Hadamard 吸收加 VarN 迭代做成定制 kernel/算子,进一步压低 0.18% 开销并优化去量化双 scale 路径;(4) 把误差分解 $E_M/E_D$ 这套诊断工具复用于其它张量(激活、权重)量化,验证「范数驱动 outlier」是否普适;(5) 在 MoE、多模态长视频解码等 KV-cache 更庞大的场景验证迁移性。
复现评估
复现度高。作者开源了 vLLM 实现(github.com/huawei-csl/KVarN),论文中 TurboQuant 与 KVarN 的主要结果均用该 vLLM 实现(表注 1 标注)。所用模型 Qwen3-4B、Llama-3.1-8B、Phi-4-14B 均公开可下载,基准 MATH500、AIME24、HumanEval、IF-Eval、line-retrieval、NiaH 均为标准公开集。算法细节较充分:VarN 采用 SINQ 的对数域标准差缩放、附录 Alg.1 给伪代码,Hadamard 遵循 QuaRot 布局(附录图 7)。评测属推理时量化、无需重训,单卡(500 TFLOP fp16、1.8TB/s 带宽)即可跑图 6 延迟测量,门槛中等偏低。潜在难点:variance normalization 的在线 kernel 与 vLLM 的 KV-cache 写回路径深度耦合,非 vLLM 框架迁移需重写;8 次迭代与块大小 128 等超参需对齐;个别基线(PolarQuant、Kitty、KVQuant)需各自实现或调参。整体属可复现工程。
论文图表
图 a 把量化误差按公式 $\|K-K_{dq}\|^2=(\|K\|-\|K_{dq}\|)^2+2\|K\|\|K_{dq}\|(1-\cos\theta)$ 分解为范数项 $E_M$ 与方向项 $E_D$,画出 $E_M/E_T$ 随 top-k% 误差分位的变化,显示最大误差(top 0.1%-1%)几乎全部由范数错误贡献,占比接近 1。图 b 在 Qwen3-4B 上比较 KIVI、HK(Hadamard 旋转)、VarN(K)、KVarN 四种 2-bit 方法的逐 token 范数偏差分布,KVarN 把最坏情况 token 的尺度误差压到接近零。
这张图是全文立论基石:它直接证明「outlier 误差 = token 范数误差」,从而把后续所有方法设计(钉住范数)和评测(关注 outlier 而非平均 MSE)都讲通了。
横轴为不同的修复策略(修复 top 1%/5%/10% 最差误差 vs 修复其余 99%/95%/90%),纵轴为 KL(fp16 || 变体)。结果显示修复最差 5% 对 KL 的改善远大于修复其余 95%,尽管后者 MSE 更大。KIVI 基线 KL=0.092 nats。
它量化证明了「少数 outlier 主导端到端质量」这一反直觉结论,为「宁可多存一个 scale 也要钉住范数」的资源分配提供正当性。
在 Qwen3-4B 与 Phi-4-14B 上对比 FP16、KIVI、QuaRot、KVQuant-1%、PolarQuant、TurboQuant、Kitty 与 KVarN。KVarN 以最低的 2.3 bit/元素取得 AIME24 60.0%/61.7%、MATH500 79.2%/84.8%,全面领先 2-bit 基线且接近 FP16(61.1%/62.2% 与 82.6%/84.9%)。
这是本文最核心的端到端结果表,直接证明 KVarN 在竞赛级数学推理上以最少位宽达到新 SOTA。
在 Qwen3-4B、Llama-3.1-8B、Phi-4-14B 三个模型上比较指令遵循的 Strict/Loose 准确率。KVarN 在 Qwen3-4B 上 Strict 80.4%/Loose 83.4%,几乎与 FP16(81.0%/84.3%)持平,全面优于或持平各 2-bit 基线。
证明 KVarN 在非推理的指令遵循任务上近乎无损,扩展了方法的适用范围。
三个模型在行检索任务上从 100 到 600 行的准确率。KVarN 在几乎所有长度与模型上领先,如 Qwen3-4B 600 行 89% vs KIVI 74%、Phi-4-14B 全长度 95%-99% 接近 FP16。
这是验证「误差累积抑制」最直接的实验——上下文越长 KVarN 优势越大,呼应图 5 的累积曲线结论。