← 全部论文2602.08005v2 / r1
版本与下载

ResidualKV:基于参考向量与残差的 KV Cache 压缩

论文:ResidualKV: Residual-Based KV Cache Compression for Efficient Long-Context Inference
作者:Jitai Hao、Qiang Huang、Yaowei Wang、Min Zhang、Jun Yu
版本:arXiv:2602.08005v2,2026-09-30 修订;获取与研读日期:2026-10-08。
链接:arXiv v2 · 本地原文 PDF · 作者代码 · 英文汇报 PDF · 可编辑 TeX

论文总览

ResidualKV 把每个历史 token 的 KV 状态拆成两部分:从少量历史参考 token 中检索出的共享成分,以及保留当前 token 差异的短残差编码。参考向量直接保存,残差经过学习压缩与低比特量化;当稀疏注意力需要某个 token 时,再恢复对应的 KV。这样,存储形式与当前查询选择哪些 token 可以分别设计。

方法的三个支点是:跨远距离 token 复用表示、把压缩计算放在写入缓存时、只对本次注意力选中的状态解压。压缩器需要训练,主干模型冻结。默认部署结合 OmniKV 的动态选择;ResidualKV 也可独立使用,此时会恢复完整历史,主要收益来自存储压缩。

论文报告:LongBench 上使用完整 FP16 KV 缓存的 13%–16% 存储,表中注意力计算比例为 30%;Llama-3.1-8B 的平均分为 50.3。SCBench 的两个骨干分别比表中最强压缩基线高 4.0、10.1 分。单张 H100、batch size 1 的解码曲线报告最高 1.5 倍加速,关闭 KV 量化时最高 3.4 倍。(Sec. V-B,PDF pp. 9–10,Tables III–V、Fig. 8)

这些结果支持“共享参考加逐 token 差异”这一表示设计。解释效率收益时,需要分别看 KV 存储、参与注意力的历史比例和实测吞吐;多模态实验的预算与层配置还有一处实质性口径冲突,见实验指标与多模态结果部分。

结构地图

以下页码均为从 1 开始的 PDF 页码,与本文印刷页码一致。原文方法公式大多没有编号,因此以小节、页码和定理编号定位。

原文章节论证作用PDF 页码与关键证据
I. Introduction历史信息、缓存容量、计算效率的共同需求pp. 1–2,Figs. 1–2
II. Related Work区分淘汰、动态选择、表示压缩、聚类和量化pp. 2–3
III. Observations远距离相似性、残差幅值与谱分布pp. 3–4,Fig. 3
IV-A. Residual Compressionpre-RoPE 表示、参考检索、编码、量化、调度pp. 4–6,Figs. 4–5
IV-B. Residual Reconstruction线性解码器、几何误差界、参考平均的解释pp. 6–7,Fig. 6,Theorem IV.1、Corollary IV.2
IV-C. Joint Sparse Inference与 OmniKV、SnapKV 等策略组合p. 7,Fig. 7
IV-D. Hybrid Objective Training联合重建和下一 token 预测训练p. 8
V-A. Experimental Setup模型、训练、任务、KR/CR 定义pp. 8–9,Table I
V-B. Main Performance多模态、LongBench、多轮、推理、吞吐pp. 9–10,Tables II–V、Fig. 8
V-C. Design Analysis动态步长、量化、独立/组合、长度泛化、联合 K/Vpp. 10–11,Tables VI–VII、Figs. 9–10
V-D. Ablation Study核心模块、超参数、训练目标pp. 11–12,Table VIII、Figs. 11–12
V-E. Case Study视觉边界之间的跨位置参考检索pp. 12–13,Fig. 13
VI. Conclusions归纳参考—残差表示的贡献p. 13

一:动机——保留历史信息,同时减少保存和读取成本

1.1 三类方法各解决了什么

标准自回归推理将历史 key/value 缓存起来,避免每次重复计算历史投影。代价是 KV 存储随上下文长度线性增长。完整 prefill 的注意力计算通常为序列长度的二次量级;已有 KV cache 时,单个 decode step 的注意力读取量随历史长度线性增长。论文开头的“注意力二次增长”应放在完整序列处理或累计生成的语境下理解。

方法家族如何节省成本ResidualKV 针对的缺口
静态淘汰:SnapKV、PyramidKV、KVzip 等永久删除一部分 token,减少保存和注意力读取后续查询可能需要已删除的信息
动态选择:Quest、OmniKV 等每个查询只访问一部分历史完整历史仍需可访问,存储压力保留
量化/表示压缩:KIVI、Palu 等缩短每个 token 的表示单独使用时仍处理或恢复完整历史

ResidualKV 的切入点是把“保存哪些信息”和“本次读取哪些信息”分开。默认动态组合保留每个 token 的近似可恢复状态,当前不重要的 token 不必永久删除。它仍是有损表示:学习压缩、量化以及稀疏选择都可能引入误差。(Secs. I–II,PDF pp. 1–3)

1.2 两个观察怎样引出设计

原图 3:历史相似性与残差分布

来源:原文 Fig. 3,PDF p. 4;完整保留六个面板及轴标。分析主要使用 Qwen2.5-7B-Instruct-1M。

按从左到右、从上到下阅读:

  1. Fig. 3(a) 的横轴是每个 token 与历史 token 的最大余弦相似度,纵轴是 token 百分比,均值为 0.92。这是“每个 token 的最佳历史匹配”的统计,不是任意 token 对的平均相似度。
  2. Fig. 3(b) 横轴为最相似历史 token 的位置距离,使用对数刻度;59.7% 的最佳匹配距离超过 16。仅在局部邻域做差分会漏掉一大部分可复用表示。
  3. Fig. 3(c) 比较累计解释方差随成分数的变化。原始 KV 的曲线更快上升,残差谱更平坦,说明共享的高能量方向被消去。
  4. Fig. 3(d–f) 显示残差的范数更小、数值更靠近零、极端值更少。较小的组内动态范围有利于低比特量化。

这里值得区分两个概念:能量更低不等于更低秩。Fig. 3(c) 中残差的归一化谱反而更平坦。论文最直接的证据是参考相减减少了需要编码的绝对幅值;是否能用短向量保留任务重要信息,还要看学习压缩和下游实验,而不能仅从谱平坦推出。

二:方法——参考检索、残差编码与按需恢复

原图 4:ResidualKV 总体框架

来源:原文 Fig. 4,PDF p. 5。左侧为缓存写入,中间为参考调度与恢复,右侧为稀疏读取和训练。

2.1 表示与符号

符号含义
$B,T$batch size、上下文 token 数;此处以 $T$ 避免与层数混淆
$N,D$KV head 数、每个 head 的维度
$d_k=d_v=ND$将所有 KV heads 展平后的单侧维度
$\mathbf{kv}_i\in\mathbb R^{2d_k}$token $i$ 的 key/value 拼接向量
$\mathcal T_{\rm ref,i}$token $i$ 可检索的历史参考集合
$k_i=\min(k,\lvert\mathcal T_{\rm ref,i}\rvert)$预热时实际可使用的参考数量
$d_c,d_{\rm ff}$残差编码维度、压缩器中间宽度
$\mathbf z_{\Delta,i}$token $i$ 的短残差编码

方法在 pre-RoPE key 与 value 的拼接表示上检索。位置旋转会影响不同位置 key 之间的欧氏距离;在旋转前检索有助于比较共享内容。K、V 都由同一个隐藏状态投影得到,联合处理也可利用二者的相关结构。(Sec. IV-A,PDF p. 4)

作为该数据流的实现要求,恢复出的 pre-RoPE key 用于标准 RoPE 注意力前,还需按原 token 的位置施加旋转;参考位置不能替代被恢复 token 的位置。

2.2 从稀疏参考池中做全局检索

对非参考 token,在已有参考池中找到平方 $L_2$ 距离最小的 $k_i$ 个参考:

$$ \mathcal R_i=\operatorname*{arg\,top\text{-}k_i}_{\mathbf{kv}_j\in\mathcal T_{\rm ref,i}} \bigl(-\|\mathbf{kv}_i-\mathbf{kv}_j\|_2^2\bigr). $$

然后取算术平均:

$$ \overline{\mathbf{KV}}_{{\rm ref},i} =\frac1{k_i}\sum_{j\in\mathcal R_i}\mathbf{kv}_j. $$

“全局”表示参考来自整个已见上下文的不同位置,检索候选仍然只是稀疏参考池,而非全部历史 token。默认 $k=4$。选 $L_2$ 距离是为了与平方重建误差对齐;多个参考平均则降低单一邻居的偶然激活和局部差异。余弦相似度用于前面的观察,实际检索规则是 $L_2$。(Sec. IV-A,PDF p. 4)

2.3 真正的编码公式:先分别映射,再相减

压缩器是非线性 SwiGLU:

$$ f_c(x)=\bigl(\operatorname{Swish}(x\mathbf W_{c1})\odot x\mathbf W_{c2}\bigr)\mathbf W_{c3}, $$

其中 $\mathbf W_{c1},\mathbf W_{c2}\in\mathbb R^{2d_k\times d_{\rm ff}}$,$\mathbf W_{c3}\in\mathbb R^{d_{\rm ff}\times d_c}$。

实际保存的编码为:

$$ \boxed{\mathbf z_{\Delta,i}=f_c(\mathbf{kv}_i) -f_c(\overline{\mathbf{KV}}_{{\rm ref},i})}. $$

因为 $f_c$ 非线性,该式一般不等于 $f_c(\mathbf{kv}_i-\overline{\mathbf{KV}}_{{\rm ref},i})$。它也不是分别压缩每个参考后再取均值:源码与最终 PDF 均为先在 KV 空间平均参考,再编码这个均值。这两个运算顺序会改变实际网络,复现时尤其需要保留。(Sec. IV-A,PDF p. 5,Fig. 4)

例如 Llama-3.1-8B 的每 token 拼接 KV 维度为 2,048,默认压成 512 维。得到的是 latent residual,并非直接保存 2,048 维原空间差分。

2.4 按 token 分组量化,保持随机访问能力

对一个 token 内至多 $g=32$ 个 latent 坐标组成的组 $\mathcal G$,设位宽为 $b$:

$$ \Delta_{s,\mathcal G}=\frac{z_{\max,\mathcal G}-z_{\min,\mathcal G}}{2^b-1},\qquad \mathbf q_{i,\mathcal G}=\operatorname{round} \left(\frac{\mathbf z_{\Delta,i,\mathcal G}-z_{\min,\mathcal G}}{\Delta_{s,\mathcal G}}\right), $$
$$ \widetilde{\mathbf z}_{\Delta,i,\mathcal G} =\mathbf q_{i,\mathcal G}\Delta_{s,\mathcal G}+z_{\min,\mathcal G}. $$

常数组直接按原值处理,避免除零。关闭量化时 $Q$ 为恒等映射。文本实验默认残差 INT4,多模态匹配预算配置使用 INT2。

量化组不跨 token,因此只读取某个 token 时,可以只恢复它自己的编码,不必为跨 token 分组加载未选中的邻居。实验部署中,参考向量使用 FP8,完整注意力层的 KV 使用 4-bit。文中“uncompressed references”主要指参考不经过学习降维与残差编码,并不代表部署时一律保存 FP16。(Sec. IV-A,PDF p. 5;Sec. V-A,PDF p. 9)

2.5 线性恢复:把反复发生的工作做轻

解码器是无偏置线性映射:

$$ f_d(\mathbf z)=\mathbf z\mathbf W_d,\qquad \mathbf W_d\in\mathbb R^{d_c\times2d_k}, $$
$$ \boxed{\widehat{\mathbf{KV}}_i =f_d(\widetilde{\mathbf z}_{\Delta,i}) +\overline{\mathbf{KV}}_{{\rm ref},i}}. $$

再把 $\widehat{\mathbf{KV}}_i$ 拆成 K 和 V。参考提供基准值,解码器只学习恢复偏离基准的部分。编码和解码必须使用数值一致的参考;理论部分特意把参考定义为包含存储往返影响的有效数值状态。

该架构利用推理中的次数差异:每个 token 入缓存时压缩一次,而同一历史状态可能在多个 decode step 中反复恢复。复杂压缩器将更多计算放在写入侧,线性解码器降低反复投影和加载权重的成本。

原文在 H100 上比较参数量接近的两种 codec(7.37M 对 7.34M):prefill 路径耗时从 1.61 增至 3.67 ms,但每步恢复从 0.93 降至 0.47 ms;4,096-token prefill 加 512 个 decode steps 的该测试路径从 480 降至 243 ms,约少 49.4%。这是 codec/恢复路径的对比,不能替代整个 LLM 请求的端到端延迟。(Sec. IV-B,PDF p. 6,Fig. 6)

2.6 固定步长与动态步长

固定步长每隔 $s$ 个 token 存一个参考,默认 $s=10$,参考密度约 10%。动态步长随位置增大间距:

$$ p_{m+1}=p_m+s_0+\lfloor\alpha(p_m-n_{\rm sink})\rfloor. $$

其中 $s_0$ 为初始步长,$n_{\rm sink}$ 为 sink token 数,$\alpha$ 控制增长。忽略取整并求解递推,可以得到论文的近似式:

$$ N_{\rm ref}(T)\approx \log_{1+\alpha}\left(1+\frac{\alpha(T-n_{\rm sink})}{s_0}\right). $$

$\alpha=0$ 对应固定步长,需要取极限理解,不能直接代入底数为 1 的对数。对固定正 $\alpha$,参考数量近似对数增长;每个非参考 token 的短编码仍然保留,整个 KV 表示并未变成 $O(\log T)$ 存储。完整注意力层也仍保存全历史。(Sec. IV-A,PDF pp. 5–6)

2.7 稀疏注意力决定读取谁,ResidualKV 决定怎样保存

原图 7:与 OmniKV 的组合

来源:原文 Fig. 7,PDF p. 7。图从上方过滤层给出的索引,流向编码与参考读取、线性解码和相加。

OmniKV 在少数 filter layers 中做完整注意力,再根据其注意力分数选择历史索引集合 $\mathcal I_t$。其余 sparse layers 只恢复这些索引的编码和参考,并计算:

$$ \mathbf o_{l,t} =\operatorname{softmax}\left( \frac{\mathbf q_{l,t}\widehat{\mathbf K}_{l,\mathcal I_t}^{\top}}{\sqrt D} \right)\widehat{\mathbf V}_{l,\mathcal I_t}. $$

一次 decode step 可以按下列教学流程理解:

  1. filter layer 扫描自己的全历史,产生当前查询的索引集合。
  2. sparse layer 读取所选 token 的短编码,以及恢复它们所需的参考关系和参考向量。
  3. 反量化、线性解码、加参考均值,恢复 K/V 并计算稀疏注意力。
  4. 新 token 的状态按参考调度直接入库,或编码后入库。

独立运行时没有外部 mask,因此恢复全部编码,CR 为 100%。与 SnapKV/KVzip 组合时,只保留外部策略留下的集合及所需参考。此时组合系统仍继承静态淘汰的不可逆删除,不能把默认动态组合的“全部历史可恢复”推广到静态组合。(Sec. IV-C,PDF p. 7)

2.8 理论:检索半径如何进入恢复误差

定义原空间残差:

$$ \boldsymbol\Delta_i=\mathbf{kv}_i-\overline{\mathbf{KV}}_{{\rm ref},i}. $$

在实际检索所诱导的数据支持集 $\mathcal S$ 上,用两个系数描述训练后的 codec:

$$ \eta_{\mathcal S} =\sup_{i\in\mathcal S,\,\|\Delta_i\|>0} \frac{\|\boldsymbol\Delta_i-f_d(\mathbf z_{\Delta,i})\|_2}{\|\boldsymbol\Delta_i\|_2}, \qquad \gamma_{\mathcal S} =\sup_{i\in\mathcal S,\,\|\Delta_i\|>0} \frac{\|\mathbf z_{\Delta,i}\|_2}{\|\boldsymbol\Delta_i\|_2}. $$

$\eta_{\mathcal S}$ 衡量未量化 codec 的相对恢复误差,$\gamma_{\mathcal S}$ 衡量编码的幅值放大。它们是支持集相关量,论文没有给出训练后统一很小的数值上界。

令检索半径和参考离散度为:

$$ \rho_i^2=\frac1{k_i}\sum_{j\in\mathcal R_i}\|\mathbf{kv}_i-\mathbf{kv}_j\|_2^2, \qquad V_i=\frac1{k_i}\sum_{j\in\mathcal R_i} \|\mathbf{kv}_j-\overline{\mathbf{KV}}_{{\rm ref},i}\|_2^2. $$

Theorem IV.1 首先给出精确的平方距离分解:

$$ \rho_i^2=\|\boldsymbol\Delta_i\|_2^2+V_i. $$

证明来自展开平方并利用参考相对均值的偏移之和为零。对于量化误差 $\mathbf e_{q,i}=Q(\mathbf z_{\Delta,i})-\mathbf z_{\Delta,i}$:

$$ \|\mathbf e_{q,i}\|_2 \le\frac{\sqrt{\sum_{\mathcal G}|\mathcal G|\operatorname{range}(\mathbf z_{\Delta,i,\mathcal G})^2}}{2(2^b-1)} \le\frac{\sqrt{g/2}}{2^b-1}\|\mathbf z_{\Delta,i}\|_2. $$

第一步使用每坐标舍入误差不超过半个量化间隔;第二步使用 $\operatorname{range}(z)^2\le2\|z\|_2^2$ 和组大小上限 $g$。通过线性解码器传播量化误差后:

$$ \|\mathbf{kv}_i-\widehat{\mathbf{KV}}_i\|_2 \le(\eta_{\mathcal S}+C_b)\sqrt{\rho_i^2-V_i} \le(\eta_{\mathcal S}+C_b)\rho_i, $$
$$ C_b=\frac{\|\mathbf W_d\|_{\rm op}\gamma_{\mathcal S}\sqrt{g/2}}{2^b-1}. $$

它把更近的参考、较小的编码放大和更高位宽,联系到较低的 KV 数值失真。固定参考池与所选子集大小时,top-$k_i$ 最近邻最小化 $\rho_i$,所以最小化粗误差界中的检索半径项。它不直接最小化参考均值误差,也没有把 KV 欧氏误差进一步变成任务准确率保证。(Sec. IV-B,PDF pp. 6–7)

Corollary IV.2 用理想模型解释多参考平均:若当前 token 和参考都具有同一共享成分 $\mathbf s_c$,各自扰动零均值、协方差为 $\Sigma_c$,并且彼此条件独立,则:

$$ \operatorname{Cov}(\boldsymbol\Delta_i\mid c) =\left(1+\frac1{k_i}\right)\Sigma_c. $$

参考噪声随 $k_i$ 增长衰减,但当前 token 自身的扰动仍在;所以从 $k=1$ 到 4 的收益大于从 4 到很大的 $k$。最近邻选择会引入依赖,现实参考也可能不完全兼容,因此该推论是解释饱和趋势的理想化模型。(PDF p. 7)

2.9 训练同时照顾数值恢复和预测

主干参数 $\theta$ 冻结,只更新 codec 参数 $\phi$。原文目标写为:

$$ \mathcal L_{\rm rec}=\sum_{l,t}\|\mathbf{KV}_{l,t}-\widehat{\mathbf{KV}}_{l,t}\|_2^2, $$
$$ \mathcal L_{\rm ntp}(\phi;\theta) =-\frac1{T-1}\sum_{t=1}^{T-1} \log p_{\theta,\phi}(x_{t+1}\mid x_{\le t};\widehat{\mathbf{KV}}_\phi), \qquad \mathcal L=\mathcal L_{\rm rec}+\mathcal L_{\rm ntp}. $$

虽然名称为 MSE,论文展示的重建公式是平方误差求和,未在此式写出平均归一化因子。NTP 项的作用在于:不同 KV 方向对 attention logits 和最终预测的影响不同,仅追求逐坐标平方误差,未必最符合模型输出。冻结主干权重也不意味着切断 NTP 经主干运算传到压缩模块的梯度。(Sec. IV-D,PDF p. 8)

三:实验——配置、任务与效率口径

3.1 模型与训练成本

模型$2d_k$$d_c$$d_{\rm ff}$原文完整注意力层编号
LLaVA-OV-7B1,0243843,0720, 1, 4, 7, 14
Qwen3-VL-8B-Ins2,0483843,0720, 1, 2, 3, 10, 21, 29
Llama-3.1-8B-Ins2,0485123,0720, 1, 2, 8, 18
Qwen2.5-7B-Ins1,0243843,0720, 1, 2, 4, 7, 14
Qwen2.5-32B-Ins2,0485124,0960, 1, 2, 3, 4, 5, 17, 29, 40
Qwen3-4B-Ins / Think2,0485123,0720, 3, 9, 13, 16, 21, 28

来源:Table I,PDF p. 8。Qwen2.5-7B 在正文明确为 Instruct-1M 版本。

文本 7B/8B 模型使用 160M FineWeb-Edu tokens,以 8,192 长度打包,在单张 RTX PRO 6000 Blackwell 上训练,作者报告约 8 GPU-hours、约 8 美元;32B 模型约 14 GPU-hours,并使用 bitsandbytes 和梯度检查点。默认 AdamW 学习率 $2\times10^{-4}$,batch size 1,梯度累积步数 1,2% warmup 后线性衰减。Qwen3-VL-8B 使用 LLaVA-OV 流式数据训练 30k steps,学习率 $5\times10^{-5}$,视觉编码器、投影器与语言主干均冻结。上述 8 GPU-hours 不能直接套用于所有模型配置。(Sec. V-A,PDF p. 8)

3.2 任务分别检验什么

任务组检验问题协议与指标
LongBench单轮长输入理解是否保持16 个数据集,六类任务;沿用各任务分数并报告 16 数据集平均,分数越高越好;动态步长 $\alpha=0.001$
SCBench同一长上下文能否应对变化的查询选取 SCDQ 代表任务,固定步长 $\alpha=0$;报告检索、问答、摘要/针检索、many-shot 学习等分数
AIME压缩历史推理轨迹是否损伤数学解题Qwen3-4B-Thinking-2507,最多生成 32,768 tokens;表内 score 越高越好
七项图像/视频基准跨模态 KV 是否同样可压缩MMB、MME、MMMU、POPE、SQA、Video-MME、MVBench;不预先剪视觉 token
解码吞吐压缩恢复成本后是否仍加速单张 H100,batch size 1,tokens/s 越高越好

SCBench 是部分代表任务,不是完整套件。LongBench 的 Average 以 16 个数据集为口径,不能把表中六个类别直接等权平均。多模态 Table II 的 MME 同时列出百分制数值与原始分数,如 84.9/2032.3,汇总平均使用前一数值尺度;论文没有详细给出两者之间的转换规则。(Secs. V-A–B,PDF pp. 8–10)

3.3 KR 不是 token 保留比例,CR 也不是端到端时间

论文定义:

  • KR(Keep Ratio):GPU 中 KV 存储相对完整 FP16 KV cache 的比例。
  • CR(Compute Ratio):参与注意力的历史 token 比例,混合架构再按层平均。

每组 32 个数值保存 $b$-bit payload 和两个 FP16 极值时,相对存储为:

$$ q_b=\frac b{16}+\frac2{32},\qquad q_4=31.25\%,\quad q_2=18.75\%. $$

因此 4-bit 的实际分组存储并非仅 25%,2-bit 也并非仅 12.5%。为避免原文 $L$ 同时表示序列长度与层数的混淆,下面以 $H$ 表示层数,并令 $\beta=H_{\rm full}/H$:

$$ \mathrm{KR}=\beta q_4+(1-\beta) \left(\frac12\rho_{\rm ref}+q_b\frac{d_c}{2d_k}\right), \qquad \mathrm{CR}=\beta+(1-\beta)r. $$

第一项是完整注意力层的 4-bit cache;第二项是稀疏层的 FP8 参考与短编码。$r$ 是稀疏层访问比例,$\rho_{\rm ref}$ 是参考 token 密度,两者不是同一个预算。

数值解释:Llama-3.1-8B 的 32 层中取 5 个完整注意力层,固定参考密度 10%、$d_c/(2d_k)=1/4$ 时:

$$ \mathrm{KR}=\frac5{32}\times0.3125+ \frac{27}{32}(0.05+0.3125\times0.25) \approx15.69\%. $$

这与原文的 15.7% 对应。动态步长降低参考密度后,原文给出 13.4%;4 个完整层时则分别为 15.1% 与 13.0%。这个公式没有单列逐 token 参考索引、临时恢复张量及 codec 权重,因此 KR 不应当作完整推理进程的峰值显存比例。(Sec. V-A,PDF p. 9)

多模态预算的实质冲突:由公式必有 $\mathrm{CR}\ge\beta$。Table I 为 Qwen3-VL-8B 列出 7 个完整注意力层,而官方模型配置的语言解码器有 36 层,所以按该配置最低 CR 已是 $7/36\approx19.4\%$,高于 Table II 标注的 10%。这意味着 Table II 的 10% 与公开层配置不能同时按上述公式理解;可能采用了不同实验配置或统计口径,但 v2 未交代对应关系。后文保留作者报告值,并将其标为报告预算,而不把它当作已经对齐的全模型计算比例。

四:结果——效果、组合与代价

4.1 多模态:接近完整缓存,但预算口径待澄清

骨干完整缓存平均分(正文)ResidualKV最强已列完整七项对照报告 KR / CR
LLaVA-OV-7B73.873.6PACT:72.98% / 10%
Qwen3-VL-8B-Ins74.574.4DivPrune:67.310% / 10%

来源:Sec. V-B、Table II,PDF p. 9。完整缓存数值来自紧随表格的正文,未作为 Table II 的行展示。

两种骨干相对完整缓存分别下降 0.2、0.1 分。Qwen3-VL 上对 DivPrune 高 7.1 分,对 FastV 则高 10.3 分。正文的“up to 7.1”恰好对应较强对照 DivPrune 的差值,并非整张表所有基线中的最大差值。LLaVA 的视频 V-MME 项为 58.6,略低于 PACT 的 58.7,平均优势不等于每项最佳。

这些分数支持跨模态压缩的有效性。但鉴于上一节的 CR 下界冲突,严格“相同全模型 10% 计算预算”的比较仍需明确实际层配置、稀疏层访问比例,以及视觉 token 剪枝方法的计算统计范围。调整残差位宽主要改变存储和量化开销,本身不会改变 CR 公式里的历史 token 数量。

4.2 LongBench:压缩后接近较强基线

骨干ResidualKV KR / CRResidualKV 平均分OmniKV 平均分(KR 100%、CR 30%)其他相关对照
Llama-3.1-8B-Ins13% / 30%50.350.2KIVI-2bit 50.3;无神经压缩器的 ResidualKV† 50.4,KR 27%
Qwen2.5-7B-Ins16% / 30%47.347.2KVzip 47.4;ResidualKV† 47.4,KR 26%
Qwen2.5-32B-Ins13% / 30%48.448.5KIVI-2bit 48.4,KR 19%、CR 100%
Qwen3-4B-Ins13% / 30%47.947.9SnapKV 47.1,KR 30%、CR 30%

来源:Table III,PDF p. 10。各平均分沿用原表,方向均为越高越好。

主要收益是以更少存储接近原先保留全历史的动态选择方案。例如 Llama 的 KV 存储从 OmniKV 的 100% 降至报告的 13%,得分从 50.2 到 50.3。Qwen2.5-32B 相对 OmniKV 则低 0.1 分,不能表述成所有骨干均提升。

KIVI-2bit 的 KR 约 19%,但 CR 为 100%;它与 ResidualKV 的比较说明“低比特保存全部状态”和“压缩后仅恢复所选状态”对应不同的计算路径。Palu 在 Qwen2.5-7B 的表内配置为 KR 50%、CR 100%、平均分 38.8,这只是该模型与该预算下的对照结果。

4.3 SCBench:总体多轮收益明显,检索仍有具体失败项

骨干ResidualKV KR / CR报告平均分表中最强其他基线差值
Qwen2.5-7B-Ins19% / 20%40.7KVzip:36.7+4.0 分
Qwen3-4B-Ins16% / 20%32.9SnapKV:22.8+10.1 分

来源:Table IV,PDF p. 10。与 LongBench 不同,此处使用固定参考步长,存储比例也不同。

Qwen2.5 的 key-value retrieval 得分从 SnapKV 的 1.4、KVzip 的 36.2,提高到 ResidualKV 的 52.6;prefix-suffix retrieval 为 23.4,而两者为 1.6、3.0。这与“后续查询需要不同历史内容”的动机一致。

取舍也很具体:Qwen2.5 的 En.QA 为 29.9,低于 KVzip 的 44.0;摘要加针检索为 47.6,低于 KVzip 的 66.5。Qwen3-4B 的 prefix-suffix retrieval 仍为 0.0。因此这些结果支持平均性能与若干检索任务的改善,不能理解为已经解决任意字符串的精确长期记忆。Table IV 没有完整缓存对照行,不能从这张表计算相对完整缓存的性能保留率。

4.4 AIME:所测推理骨干保持 80.0

方法Full cacheSnapKVOmniKVResidualKV
Qwen3-4B-Think80.060.076.780.0

来源:Table V,PDF p. 10;最多生成 32,768 tokens。

ResidualKV 比 SnapKV 高 20.0 分、比 OmniKV 高 3.3 分,并与完整缓存相同。它支持保存近似历史状态对长推理链有价值。不过 Table V 没有列本实验 KR/CR,正文也没有给出足以固定多次采样统计口径的细节,不能直接将 LongBench 的 13%/30% 预算或特定 pass@k 定义移植到这里。

4.5 实际吞吐:量化增加了完整层的恢复成本

原图 8:不同上下文长度下的解码吞吐

来源:原文 Fig. 8,PDF p. 10。横轴为上下文长度 64K–900K,纵轴为 tokens/s;蓝色为量化 ResidualKV,红色为不使用 KV 量化的 ResidualKV,绿色为完整注意力。

单张 H100、batch size 1 下,论文报告标准量化配置最高 1.5 倍加速,关闭 KV 量化时最高 3.4 倍。关闭量化反而更快的解释是:混合架构中的完整注意力层,需要先从 KIVI 风格低比特表示恢复全部 KV;这部分开销会抵消稀疏层的节省。

因此,表中的 CR 30% 不能直接换算成端到端 3.33 倍吞吐。检索、反量化、解码、完整层和其他模型运算都占时间。Fig. 8 的正文和图注只明确给出 GPU 与 batch size,未明确标出被测骨干及完整配置;做部署预估时,需要补齐这些设置。图中非量化曲线也不能与前文最小 KR 同时当作同一配置的性能。

4.6 动态步长:参考池可以大幅稀疏化

$\alpha$262K 时参考数参考比例LongBench 分数
026,1899.99%47.4
0.0013,3541.28%47.4
0.0203190.12%47.3
0.0501490.06%47.0
0.100830.03%47.1

来源:Table VI,PDF p. 11,Qwen2.5-7B-Ins。参考数在 262K 上下文统计,质量列为另行报告的 LongBench 平均分;不能称为“262K LongBench 得分”。

$\alpha=0.001$ 将参考数减少约 7.8 倍,LongBench 保持 47.4。更激进配置的质量变化不单调,$\alpha=0.05$ 低 0.4 分,$\alpha=0.1$ 低 0.3 分。Table VI 的默认分数为 47.4,而主表 Qwen2.5-7B 的神经压缩版本为 47.3,应保留各自实验结果。

Fig. 5 提供另一个长上下文证据:在 96K 的 RULER Variable Tracking 上,$\alpha=0.02$ 用 278 个参考得到 97.0,固定步长用 9,838 个参考得到 94.0。它表明该任务可以容忍很稀疏的参考池;结合图中 64K 附近的下降,不应把单点结果解释为质量随长度或参考减少而单调改善。(PDF p. 6)

4.7 独立与组合:表示模块的作用可分离

Llama-3.1-8B 的配置KR / CRLongBench 平均分
ResidualKV 独立使用16% / 100%50.5
ResidualKV + OmniKV13% / 30%50.3
ResidualKV + SnapKV17.5% / 40%50.1

来源:Table VII,PDF p. 11。正文给出完整缓存平均分也是 50.5。

独立版本保留了与完整缓存相同的报告分数,但不减少注意力历史访问比例;与 OmniKV 组合才同时取得更低 CR。SnapKV 组合中参考集合还需要保留,因此存储与计算不能仅根据原始 SnapKV 的淘汰比例相乘。

作者还报告:训练长度仅 8,192,SCBench 测试可超过 100K;其解释是 pre-RoPE 检索和压缩减少了对绝对位置的依赖。该解释与设计相容,实际效果来自跨长度实验,而非仅由移除 RoPE 这一点推导。(Sec. V-C,PDF p. 11)

4.8 核心模块消融与参数敏感性

模块配置表 VIII 的 KR / CRLongBench 平均分相对完整 ResidualKV
ResidualKV45% / 30%50.3—
去掉 $f_c,f_d$45% / 30%46.7−3.6 分
去掉参考 token47% / 30%45.9−4.4 分

来源:Table VIII,PDF p. 11。该消融关闭额外 KV 量化,$d_c$ 从 512 增为 768。

它支持参考构造与学习编码在这一消融配置下都有效。但该页正文称 KR “约 35%”,表中却明确写 45%、45%、47%;这里采用表中实际数值,并保留这处冲突,避免把消融错误描述成严格 35% 等存储实验。主表的 ResidualKV† 和这里的“去掉 codec”也处在不同量化与预算设置,不能混为同一行。

原图 11:质量与吞吐的参数取舍

来源:原文 Fig. 11,PDF p. 12。蓝线为 NTP loss,越低越好;红线为相对解码吞吐,越高越好;红点为默认值,叉号表示 OOM。吞吐测试为 128K、batch size 16,与 Fig. 8 的 batch size 1 不同。

  • 更大 $d_c$ 提高重建容量并降低 NTP loss,但缓存增长,最终可能 OOM。
  • 更大 $k$ 的收益很快饱和;$k=4$ 或 8 是论文强调的折中区域。
  • 更大 $d_{\rm ff}$ 使压缩器更强,但新增 token 仍需要压缩,所以 decode 吞吐也会受影响。
  • 更小步长 $s$ 增加参考密度,改善质量,同时增加保存与检索成本。

Fig. 10 在参数量、压缩率和训练步数对齐的情况下比较联合 K/V 与分离编码,联合方法的 NTP loss 通常更低,支持共享隐藏状态结构的利用。Fig. 12 比较 NTP-only、MSE-only 和联合目标:MSE-only 也能改善 NTP,NTP-only 的重建误差仍明显较高,联合目标同时取得较低重建误差与较好的 NTP。这两项对照分别支撑“联合 K/V”和“双目标训练”,但它们衡量的是训练损失曲线,不是额外一组下游任务分数。(PDF pp. 11–12)

4.9 视觉案例:共享的是结构线索,不只是邻接位置

原图 13:多模态参考检索案例

来源:原文 Fig. 13,PDF p. 12;案例解释延续到 p. 13。

左侧和中间图中,目标 token 用红色 T 标记,蓝色连线指向检索到的参考。例如三明治边界会匹配图中其他边界,猫耳附近会检索另一处耳朵或盒子边缘。右侧显示原 KV 的宽分布经过参考相减后形成更靠近零的残差。

这些例子说明视觉 KV 里可复用的结构不限于邻近 patch,也可能来自较远处的形状和边缘。它们为跨位置检索提供直观解释,定量的总体收益仍由前面的多模态基准承担。

五:结论——哪些设计值得带走

ResidualKV 的贡献在于把 KV cache 组织成直接保存的共享参考,加上每个 token 的短差异编码,并让这种表示支持稀疏随机访问。它同时利用了表示冗余、压缩/恢复次数的不对称,以及动态注意力的访问稀疏性。三个方面互相配合,才产生完整的效率收益。

从方法上看,最值得保留的细节有:pre-RoPE 的联合 K/V 检索;非线性编码之后相减;无偏置线性恢复;按 token 的量化分组;以 NTP 约束任务敏感方向。对动态参考调度,应理解为降低参考部分的增长,而不是把总缓存复杂度变成对数级。

从证据上看,LongBench 的接近基线表现、多轮若干检索项的提升,以及独立/组合实验,较直接地支持表示设计。部署结论则取决于完整注意力层比例、参考检索和索引成本、量化恢复实现及负载。多模态 CR 与层配置冲突、消融 KR 的正文/表格差异,是 v2 中需要澄清的具体问题;它们影响预算比较的解释,不应通过改写表内数字消除。

进一步研究最有价值的方向是:在把参考索引、临时张量和 codec 权重计入后比较实测显存;明确 filter layer 与 sparse layer 的各自访问预算;在精确字符串检索等已出现失败的任务上,分析误差来自参考匹配、编码还是稀疏选择。这些实验能帮助判断,何时应该增加参考、增加编码维度,或提高局部读取预算。