摘要
2026 年上半年,大模型社区的关注焦点发生了一次微妙但关键的结构性迁移:瓶颈不再是模型权重,而是 KV Cache。当推理模型在测试时展开数千甚至数万 token 的思维链时,KV Cache 的内存占用已经超过模型权重本身,成为决定能跑多长上下文、能服务多少并发用户的硬约束。三个月内,Google Research、Apple 和华为分别发布了 TurboQuant、CommVQ 和 KVarN 三套 KV Cache 压缩算法,从完全不同的数学路径逼近同一个目标——在 2–3 bit 精度下实现 6–8 倍压缩,且精度损失趋近于零。与此同时,NVIDIA 发布了一篇引发广泛讨论的技术博客,指出这些算法从论文到生产环境之间,还横着两道被大多数研究者忽略的工程鸿沟。本文从问题本质、算法原理、基准对比和工程落地四个维度,梳理这场仍在进行中的 KV Cache 压缩竞赛。
问题的本质:为什么 KV Cache 成了瓶颈
Transformer 的自回归生成机制决定了:每生成一个新 token,模型需要关注所有历史 token 的 Key 和 Value 向量。为了避免每次重新计算,这些向量被缓存在 GPU 显存中——这就是 KV Cache。
KV Cache 的大小随序列长度线性增长,且与模型层数、注意力头数和隐藏维度成正比。以 Qwen3-32B(4-bit 权重量化)为例:模型权重约 18 GB,而在 32K token 的推理场景下,KV Cache 会额外消耗约 24 GB 显存——在 24 GB 消费级 GPU 上,生成到约 24,000 token 时就会触发 OOM(NVIDIA 博客数据)。对于一个 70B 模型在 128K token 上下文下的推理,FP16 精度的 KV Cache 单独就需要约 40 GB 显存。
传统的注意力机制优化——如 FlashAttention、PagedAttention——解决的是计算速度和内存管理效率问题,但并未改变 KV Cache 本身的存储总量。随着测试时计算扩展(test-time scaling)和推理模型的普及,单次推理的 token 生成量正从几百膨胀到数万,KV Cache 压缩不再是「锦上添花」,而是「必须解决的问题」。
三条路线:2026 年的 KV Cache 压缩算法竞赛
TurboQuant(Google):极坐标旋转 + 1-bit 残差纠错
Google Research 于 2026 年 3 月发布 TurboQuant(ICLR 2026),核心思路是两阶段压缩:
第一阶段:PolarQuant。 传统向量量化方法在压缩高维向量时,需要为每个数据块存储「量化常数」(quantization constants),这通常会给每个数值额外增加 1–2 bit 的存储开销。PolarQuant 的解法出人意料地优雅:将向量从笛卡尔坐标系转换到极坐标系。在极坐标下,角度分量高度集中且可预测,模型不再需要动态归一化——它天然映射到一个固定、可预测的「圆形」网格上,从而彻底消除了量化常数的存储开销。
第二阶段:QJL(Quantized Johnson-Lindenstrauss)。 将第一阶段压缩后的残差误差用 1-bit 精度进行 Johnson-Lindenstrauss 变换。这个变换在数学上保证:高维空间中点之间的相对距离在映射到低维后几乎不变。QJL 将每个残差向量压缩为单个符号位(+1 或 -1),配合一个特殊的无偏估计器,在计算注意力分数时消除系统性偏差。
实验结果: 在 Gemma 和 Mistral 模型上,TurboQuant 将 KV Cache 压缩至 3 bit/元素,实现 至少 6 倍内存缩减,同时在 LongBench、Needle-in-a-Haystack、ZeroSCROLLS 等长上下文基准上保持零精度损失。在 H100 GPU 上,4-bit TurboQuant 的注意力 logit 计算速度比 FP32 基线快 8 倍。方法完全数据无关(data-oblivious),无需校准数据或模型微调——这是其工程部署的最大优势。
CommVQ(Apple):可交换码本 + RoPE 融合
Apple 于 2026 年 5 月发布 CommVQ(ICML 2026),从一个不同的角度切入:如何让压缩后的 KV Cache 在解码时「零开销」地融入自注意力计算?
CommVQ 的核心创新在于设计了一个与 RoPE(Rotary Position Embedding)可交换的码本。LLM 中的 RoPE 通过旋转变换将位置信息编码到 Query 和 Key 向量中。问题在于:如果先压缩 Key 向量再应用 RoPE,压缩误差会被旋转放大;如果先应用 RoPE 再压缩,则每次查询都需要重新解压——这会带来显著的运行时开销。
CommVQ 的解法:利用期望最大化(EM)算法训练一个与 RoPE 旋转操作可交换的码本。这意味着解压后的矩阵乘法可以直接嵌入自注意力计算图,无需额外的解压步骤。具体而言,CommVQ 使用加法量化(additive quantization),通过轻量级编码器将 KV Cache 映射到码本空间,解压仅需一次矩阵乘法。
实验结果: 在 2-bit 量化下,CommVQ 将 FP16 KV Cache 大小缩减 87.5%,在长上下文基准和 GSM8K 上保持高于现有方法的精度。更引人注目的是,CommVQ 在 1-bit 量化下仅出现极小的精度下降,这使得 LLaMA-3.1 8B 模型能够在 单张 RTX 4090(24 GB)上运行 128K 上下文——这是此前被认为不可能实现的。
KVarN(华为):方差归一化 + 误差累积抑制
华为于 2026 年 6 月发布 KVarN(arXiv:2606.03458),针对前两种方法共同暴露的一个盲区进行了系统性攻击:自回归解码中的量化误差累积。
KVarN 论文的核心洞察是:当前 KV Cache 量化方法(包括 TurboQuant)的评估基准主要基于「prefill 场景」——即一次性量化一个固定的长上下文。但在推理模型的实际自回归解码中,每生成一个 token 块(如 128 个 token),新产生的 K/V 向量就被量化后写入缓存,后续层的注意力计算将在「已经被量化的缓存」上进行。这导致量化误差在层与层之间、时间步与时间步之间逐级累积。
KVarN 提出了「伪解码」(pseudo-decode)评估协议来量化这种累积效应,并揭示了两个关键发现:
- 异常误差主要由 token 幅度错误驱动,而非方向误差。通过将量化误差分解为幅度误差和方向误差,KVarN 证明前 5% 的最大异常误差中,绝大多数来自不正确的 token 尺度缩放。
- 仅靠 Hadamard 旋转(TurboQuant 中用于去相关的技术)不足以解决 token 尺度的异常值问题。
KVarN 的算法方案:Hadamard 旋转 + 双尺度方差归一化。在通道维度应用 Hadamard 变换以消除通道间异常值,同时在 token 维度和通道维度进行迭代方差归一化(Sinkhorn-Knopp 风格),确保每个 token 的幅度在量化前被均匀化。这一额外归一化仅增加约 0.18% 的延迟开销。
实验结果: 在 Qwen3-4B 上,KVarN 以 2.3 bit/元素的平均精度,在 AIME24 上达到 60.0%(FP16 基线为 61.1%),而 TurboQuant 在相同模型上仅达到 48.9%。在 Phi-4-14B 上,KVarN 在 AIME24 上达到 61.7%(FP16 为 62.2%),TurboQuant 为 52.2%。在 MATH500 上,KVarN 几乎完全匹配 FP16 精度(84.8% vs 84.9%)。KVarN 以 Apache 2.0 协议开源,并已集成到 vLLM 推理框架中——用户只需一个命令行参数即可启用。
算法对比:一张表看懂三种方案
| 维度 | TurboQuant (Google) | CommVQ (Apple) | KVarN (华为) |
|---|---|---|---|
| 发布时间 | 2026.03 | 2026.05 | 2026.06 |
| 学术会议 | ICLR 2026 | ICML 2026 | arXiv preprint |
| 核心技术 | PolarQuant 极坐标量化 + QJL 残差纠错 | RoPE 可交换码本 + 加法量化 | Hadamard 旋转 + 双尺度方差归一化 |
| 压缩率 | 6x(3 bit) | 8x(2 bit),最高 16x(1 bit) | 3–5x(2.3 bit 平均) |
| 注意力加速 | 8x(H100,4-bit) | 未明确报告 | 1.3x vs FP16 |
| 是否校准无关 | 是 | 需码本训练 | 是 |
| 推理任务精度保持 | 在 prefill 场景下优秀,推理场景有退化 | 在长上下文检索中表现突出 | 在推理任务(AIME/MATH)上最优 |
| 开源 | 论文公开 | 未开源 | Apache 2.0 + vLLM 集成 |
| 核心优势 | 数学理论优美,工程部署简单 | 极致压缩率,消费级硬件友好 | 推理任务精度保持能力最强 |
工程视角:NVIDIA 指出的两道「实验室到生产的鸿沟」
在算法竞赛白热化的同时,NVIDIA 于 2026 年 6 月发布了一篇技术博客《KV Cache Compression and Its Infra Problems》,从生产环境的角度指出了两个被大多数论文忽略的工程问题:
问题一:FlashAttention 不暴露注意力分数。 生产环境中的推理引擎使用 FlashAttention 内核,它通过 SRAM 分块计算注意力,从不将完整的 N×N 注意力分数矩阵写入 HBM 主存。这意味着所有依赖「历史注意力分数」来选择保留哪些 token 的压缩方法(如 H2O、SnapKV),在 FlashAttention 下根本无法工作——除非退回到慢一个数量级的 eager attention 实现。
问题二:PagedAttention 下的碎片化导致「已释放内存」实际无法回收。 vLLM 等生产框架使用分页注意力管理 KV Cache:GPU 显存被划分为固定大小的物理块(每块约 16 个 token),一个块只有在完全为空时才能被回收。当压缩算法逐 token 进行选择性驱逐时,幸存 token 会分散在几乎所有块中,导致「虽然驱逐了 90% 的 token,但没有一个块被完全清空」——物理显存占用量不变。
NVIDIA 的结论是:量化方法(TurboQuant、KVarN 等)在工程上比驱逐方法(H2O、SnapKV 等)更容易部署,因为量化不改变 token 数量,不存在碎片化问题。但量化方法也需要解决 FlashAttention 兼容性问题——这也是为什么 KVarN 选择直接集成到 vLLM 而非独立实现。
未来展望
KV Cache 压缩的竞争格局正在快速收敛。从技术趋势看,以下几个方向值得关注:
混合精度策略。 三种方法都表明,K 矩阵比 V 矩阵对量化更敏感——KVarN 的数据显示,在 Llama3.1-8B 中,超过 98% 的前 5% 量化误差位于 K 矩阵。未来的最优方案可能对 K 和 V 采用不同的量化精度。
与注意力架构协同设计。 MiniMax M3 的 MSA(MiniMax Sparse Attention)和 DeepSeek 的 MLA(Multi-head Latent Attention)等新型注意力机制,本质上也试图降低 KV Cache 的内存占用。量化压缩与架构创新的结合,可能带来超线性的效率提升。
测试时扩展的助推器。 KVarN 的论文明确指出,其设计的核心场景是测试时计算扩展——推理模型生成越来越长的思维链。随着 o3/o4 系列和 DeepSeek R1 等模型的普及,KV Cache 压缩将直接影响推理模型的成本和质量 trade-off。
从算法到基础设施。 2026 年的这场竞赛表明,KV Cache 优化已不再是一个「压缩技巧」问题,而是正在成为 LLM 推理基础设施的核心组件。TurboQuant 被 Google 用于 Gemini 模型的内部分发,KVarN 以 Apache 2.0 协议开源并集成到 vLLM,CommVQ 则展示了在消费级显卡上运行百万级上下文的可能性——三条路线分别对应着云端、开源社区和端侧三个不同的部署场景。
来源
- Google Research, "TurboQuant: Redefining AI efficiency with extreme compression," March 2026. 链接
- Apple Machine Learning Research, "CommVQ: Commutative Vector Quantization for KV Cache Compression," May 2026. 链接
- Lorenz K. Muller et al., "KVarN: Variance-Normalized KV-Cache Quantization Mitigates Error Accumulation in Reasoning Tasks," arXiv:2606.03458, June 2026. 链接
- NVIDIA Research, "KV Cache Compression and Its Infra Problems," June 2026. 链接
- Pasquale Pillitteri, "Google TurboQuant: 6x Less Memory for LLMs with Zero Accuracy Loss," 2026. 链接
- Huawei CSL, "KVarN: Native vLLM backend for KV-cache quantization," GitHub, June 2026. 链接

