Back to blog

ResKV: Reconstructing Omitted Attention Contributions for Fixed-Budget KV Cache Compression

ResKV 将固定 KV 预算划分为精确主缓存和紧凑残差缓存,通过共享 softmax 重建被丢弃 token 的注意力贡献,显著提升长上下文推理效率

ResKV: Reconstructing Omitted Attention Contributions for Fixed-Budget KV Cache Compression

一、论文概述

项目内容
标题ResKV: Reconstructing Omitted Attention Contributions for Fixed-Budget KV Cache Compression
作者Yuhang Zhan, Lisi Chen, Shuo Shang
机构University of Electronic Science and Technology of China
论文arXiv:2607.29591
发布2026-07-31
领域KV Cache 压缩、长上下文推理、LLM 加速

二、核心思想

问题定义

长上下文 LLM 依赖 KV Cache 避免预填充阶段重复计算键值对,但缓存随序列长度线性增长,成为推理瓶颈。现有压缩方法分为两类:

  • Eviction 方法:评分后永久丢弃未选中 token,其注意力贡献完全丢失
  • Merging 方法:将丢弃状态折叠到保留条目中,但会扰动应保持精确的键值对

解决方案概述

ResKV 观察到:在 softmax attention 的分子-分母形式中,被丢弃 token 的贡献可表述为残差统计量。基于此,ResKV 将固定 KV 预算 bb 划分为精确主缓存和紧凑残差缓存两部分,使残差条目与主缓存 token 参与同一 softmax 归一化,恢复被忽略 token 的注意力贡献。

ResKV 整体架构


三、技术架构

核心公式

标准 Attention(Eq. 1):

o=softmax(qK⊤/d) V(1)o = \mathrm{softmax}(qK^\top/\sqrt{d})\,V \tag{1}

Main-Residual 分解(Eq. 8):

oS(q)=∑p∈Meapvp+∑p∈Eeapvp∑p′∈Meap′+∑p′∈Eeap′(2)o_S(q) = \frac{\sum_{p \in M} e^{a_p}v_p + \sum_{p \in E} e^{a_p}v_p}{\sum_{p' \in M} e^{a_{p'}} + \sum_{p' \in E} e^{a_{p'}}} \tag{2}

其中 ap=⟨q,kp⟩/da_p = \langle q, k_p \rangle / \sqrt{d},MM 为主缓存集合,EE 为丢弃集合。

残差条目表示(Eq. 10):

kˉj=1cj∑p∈Cjkp,vˉj=1cj∑p∈Cjvp,cj=∣Cj∣(3)\bar{k}_j = \frac{1}{c_j}\sum_{p \in C_j} k_p, \quad \bar{v}_j = \frac{1}{c_j}\sum_{p \in C_j} v_p, \quad c_j = |C_j| \tag{3}

每个残差条目存储代表性键、值和人口计数 cjc_j。

残差注意力重构(Eq. 11):

∑p∈Cjeap≈cjeaˉj,∑p∈Cjeapvp≈cjeaˉjvˉj(4)\sum_{p \in C_j} e^{a_p} \approx c_j e^{\bar{a}_j}, \quad \sum_{p \in C_j} e^{a_p}v_p \approx c_j e^{\bar{a}_j}\bar{v}_j \tag{4}

其中 aˉj(q)=⟨q,kˉj⟩/d\bar{a}_j(q) = \langle q, \bar{k}_j \rangle / \sqrt{d}。

ResKV 整体架构

分步流程:

  1. Cache Split and Selection:对每个 (layer, KV head),按分数排序,Top-mm 进入主缓存 MM,剩余 E=S∖ME = S \setminus M 作为残差候选
  2. Residual Cache Construction:使用 Lloyd 迭代将 EE 聚类为 rr 个残差组 {C1,…,Cr}\{C_1, \ldots, C_r\}
  3. Shared-Softmax Residual Decode:主缓存和残差条目参与同一 softmax 归一化
  4. Adaptive Residual Control:构建时验证代理 + 解码时动态门控

动态门控(Decode-Time Dynamic Gate)

g(q)=σ(max⁡p∈Map(q)−aˉ(q)τ)(5)g(q) = \sigma\left(\frac{\max_{p \in M} a_p(q) - \bar{a}(q)}{\tau}\right) \tag{5} o^(q)=g(q) oM(q)+(1−g(q)) o^R(q)(6)\hat{o}(q) = g(q)\,o_M(q) + (1-g(q))\,\hat{o}_R(q) \tag{6}

其中 aˉ(q)\bar{a}(q) 为残差入口的代理注意力分数。g(q)≈1g(q) \approx 1 保护主缓存峰值,g(q)≈0g(q) \approx 0 为粗粒度注意力模式注入残差质量。

构建时验证代理

Lrval=1∣Tval∣∑t∈Tval∥o^(r)(qt)−oS(qt)∥22(7)\mathcal{L}_r^{\mathrm{val}} = \frac{1}{|\mathcal{T}_{\mathrm{val}}|}\sum_{t \in \mathcal{T}_{\mathrm{val}}} \|\hat{o}^{(r)}(q_t) - o_S(q_t)\|_2^2 \tag{7}

选择使验证损失最小的 r∗r^*,仅在 r∗r^* 优于纯主缓存 δ\delta 倍时启用残差。

ResKV 整体架构


四、核心创新

创新点说明实验依据
残差 KV 缓存将被丢弃 token 建模为 softmax 分子/分母中的残差统计量Eq. 2, 4
共享 Softmax残差条目与主缓存参与同一 softmax 归一化,非事后修正Figure 1
动态门控粗/细粒度注意力自适应融合,保护主缓存峰值Eq. 5, 6
验证代理构建时选择最优残差预算,保证增益Eq. 7, 19

五、代码实现分析

关键实现(Algorithm 1, Page 12):

Input: K, V; budget b; residual grid G; recent window w; Lloyd steps T; margin δ
for each (layer, head):
    scores ← compute token scores with recent window w
    M ← top-m entries by scores  (m = b - r for candidate r)
    E ← S \ M
    R ← Lloyd-iterate(E, r)  // cluster into r residual entries
    if validation: compute L_r^val, select best r*
return M, R

关键设计选择:

  • Key-space consistency:使用 key 空间一致性作为 query-agnostic 代理
  • Lloyd 迭代:对 OOD key 值域有数值稳定性
  • Recent window:使用 recent window 计算分数,确保最近 token 被保留

六、实验结果

实验设置

模型LLaMA-3.1-8B-InstructQwen-2.5-7B-Instruct
序列长度4K, 32K4K, 32K
保留预算10%, 20%, 30%, 40%10%, 20%, 30%, 40%
构建方式Query-aware, Query-agnosticQuery-aware, Query-agnostic

RULER 结果(Table 1)

方法LLaMA-3.1-8B 4K 10%+ResKVLLaMA-3.1-8B 32K 10%+ResKV
AdaKV58.9470.51 (+11.57)72.2077.84 (+5.64)
SnapKV56.3760.74 (+4.37)69.1470.31 (+1.17)

关键发现:

  • ResKV 在 tight budget(10%)下提升最大
  • Query-agnostic 设置下 ResKV 增益更显著(+8.14 points at 10% LLaMA-3.1-8B)
  • 32K 上下文长度下 ResKV 保持稳定的性能提升

LongBench 结果(Table 2)

方法Qwen-2.5-7B 10%+ResKV20%+ResKV
AdaKV42.2642.5244.8845.09
SnapKV42.1642.8244.7045.57
AdaKV (q-agn)33.2835.6338.8641.45
SnapKV (q-agn)33.2235.2439.0240.51

关键发现:

  • 在 10% 和 20% 保留 KV 预算下,ResKV 分别提升 3.47 和 3.66 点
  • 增益集中在变量跟踪、FWE、多键/单键检索任务

Task-Level 对比(Table 3, Qwen-2.5-7B 10%)

方法NrtvQAHotpotQARB-PFWES-1QA-1
SnapKV19.4336.4856.8257.0719.2020.80
+CaM20.2734.9856.9855.4717.6018.40
+ResKV22.5940.5959.6668.8043.2024.00

关键发现:

  • ResKV 在检索类任务(FWE: +11.73, NrtvQA: +3.16)上增益显著
  • 相比 CaM,ResKV 增益更稳定

效率分析(Figure 3)

  • 峰值内存:ResKV 峰值内存与基线(SnapKV)基本重叠,额外开销可忽略
  • 解码吞吐:ResKV 在长上下文下保持与基线相当的吞吐
  • 残差可聚类性:PCA 投影显示被丢弃键值对在 key 空间具有良好的聚类结构

ResKV 效率分析


七、相关工作

方法核心思想与 ResKV 对比
AdaKV注意力头级自适应预算分配ResKV 可作为插件增强 AdaKV
SnapKV滑动窗口 + 注意力快照ResKV 可增强 SnapKV
CaM将丢弃状态折叠到保留条目ResKV 保持主缓存精确,残差独立存储
KVSculpt优化虚拟 KV 对ResKV 基于物理残差统计量
PyramidKV金字塔信息漏斗ResKV 基于 attention 残差分解

八、总结

核心贡献

  1. ResKV 表示:将 KV 缓存拆分为精确主缓存和残差缓存,重构被忽略 token 的注意力贡献
  2. 自适应残差控制:构建时验证代理 + 解码时动态门控,自动调整残差预算和权重
  3. 全面实验验证:在 RULER、LongBench 上验证,10% 保留预算下显著提升长上下文理解能力

技术影响

  • 为 KV 缓存压缩提供了新的视角:不丢弃也不扰动,而是保留残差统计量
  • 动态门控机制可灵活适配不同注意力模式

局限性

  • 残差条目数量受预算限制,极端压缩场景下仍会损失信息
  • 当前方法基于 key-space consistency,对 outlier 查询的恢复能力有限

九、参考资源