← 返回 2026-06-03

KVarN:方差归一化的 KV-Cache 量化以缓解推理任务中的误差累积 KVarN: Variance-Normalized KV-Cache Quantization Mitigates Error Accumulation in Reasoning Tasks

Lorenz K. Muller, Philippe Bich, Chiara Boretti, Hyun-Min Chang, Jiawei Zhuang, Lukas Cavigelli 📅 2026-06-02 👍 67 2026-07-13 08:36
Hadamard 旋转 KV-Cache 量化 LLM 推理加速 低比特量化 方差归一化 测试时扩展 误差累积

方差归一化加 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。

Schematic layout of KVarN. Every token is Hadamard-rotated in the channel dimension. After one block of tokens (e.g., 128) of generation, each block is variance-normalized in token and channel dimension, denoted by VarN(·). Finally, it is quantized with round-to-nearest (RTN).
Figure 2: Schematic layout of KVarN. Every token is Hadamard-rotated in the channel dimension. After one block of tokens (e.g., 128) of generation, each block is variance-normalized in token and channel dimension, denoted by VarN(·). Finally, it is quantized with round-to-nearest (RTN).
Prior KV-Cache quantization papers address the parallel prefill scenario (red dashed arrows). We propose a 'pseudo-decode' setting (green solid arrows) to better model decoding errors.
Figure 4: Prior KV-Cache quantization papers address the parallel prefill scenario (red dashed arrows). We propose a 'pseudo-decode' setting (green solid arrows) to better model decoding errors.

实验结果

端到端推理(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。

Performance on HumanEval. Values are Accuracy / # Tokens (mean ± std over three runs where applicable).
Table 2: Performance on HumanEval. Values are Accuracy / # Tokens (mean ± std over three runs where applicable).
Average reconstruction error after quantization across all attention layer outputs in Qwen3-4B. (a) Our method has smaller error than KIVI at all context lengths ... (b),(c) KVarN has an increasing advantage over KIVI as contexts get longer.
Figure 5: Average reconstruction error after quantization across all attention layer outputs in Qwen3-4B. (a) Our method has smaller error than KIVI at all context lengths ... (b),(c) KVarN has an increasing advantage over KIVI as contexts get longer.
Speed measurement on GPU in the fast vLLM framework. The variance-normalization causes a very minor overhead.
Figure 6: Speed measurement on GPU in the fast vLLM framework. The variance-normalization causes a very minor overhead.
查看结构化数据
任务指标本文基线提升
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)需各自实现或调参。整体属可复现工程。