# 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](https://arxiv.org/abs/2602.08005v2) · [本地原文 PDF](../source/paper.pdf) · [作者代码](https://github.com/CURRENTF/ResidualKV) · [英文汇报 PDF](slides.en.pdf) · [可编辑 TeX](slides.en.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 Compression | pre-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/V | pp. 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：历史相似性与残差分布](figures/fig03-combined.png)

*来源：原文 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 总体框架](figures/fig04-framework.png)

*来源：原文 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 的组合](figures/fig07-sparse.png)

*来源：原文 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-7B | 1,024 | 384 | 3,072 | 0, 1, 4, 7, 14 |
| Qwen3-VL-8B-Ins | 2,048 | 384 | 3,072 | 0, 1, 2, 3, 10, 21, 29 |
| Llama-3.1-8B-Ins | 2,048 | 512 | 3,072 | 0, 1, 2, 8, 18 |
| Qwen2.5-7B-Ins | 1,024 | 384 | 3,072 | 0, 1, 2, 4, 7, 14 |
| Qwen2.5-32B-Ins | 2,048 | 512 | 4,096 | 0, 1, 2, 3, 4, 5, 17, 29, 40 |
| Qwen3-4B-Ins / Think | 2,048 | 512 | 3,072 | 0, 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 个完整注意力层，而[官方模型配置](https://huggingface.co/Qwen/Qwen3-VL-8B-Instruct/raw/main/config.json)的语言解码器有 36 层，所以按该配置最低 CR 已是 $7/36\approx19.4\%$，高于 Table II 标注的 10%。这意味着 Table II 的 10% 与公开层配置不能同时按上述公式理解；可能采用了不同实验配置或统计口径，但 v2 未交代对应关系。后文保留作者报告值，并将其标为报告预算，而不把它当作已经对齐的全模型计算比例。

## 四：结果——效果、组合与代价

### 4.1 多模态：接近完整缓存，但预算口径待澄清

| 骨干 | 完整缓存平均分（正文） | ResidualKV | 最强已列完整七项对照 | 报告 KR / CR |
| --- | ---: | ---: | --- | --- |
| LLaVA-OV-7B | 73.8 | 73.6 | PACT：72.9 | 8% / 10% |
| Qwen3-VL-8B-Ins | 74.5 | 74.4 | DivPrune：67.3 | 10% / 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 / CR | ResidualKV 平均分 | OmniKV 平均分（KR 100%、CR 30%） | 其他相关对照 |
| --- | --- | ---: | ---: | --- |
| Llama-3.1-8B-Ins | 13% / 30% | 50.3 | 50.2 | KIVI-2bit 50.3；无神经压缩器的 ResidualKV† 50.4，KR 27% |
| Qwen2.5-7B-Ins | 16% / 30% | 47.3 | 47.2 | KVzip 47.4；ResidualKV† 47.4，KR 26% |
| Qwen2.5-32B-Ins | 13% / 30% | 48.4 | 48.5 | KIVI-2bit 48.4，KR 19%、CR 100% |
| Qwen3-4B-Ins | 13% / 30% | 47.9 | 47.9 | SnapKV 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-Ins | 19% / 20% | 40.7 | KVzip：36.7 | +4.0 分 |
| Qwen3-4B-Ins | 16% / 20% | 32.9 | SnapKV：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 cache | SnapKV | OmniKV | ResidualKV |
| --- | ---: | ---: | ---: | ---: |
| Qwen3-4B-Think | 80.0 | 60.0 | 76.7 | 80.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：不同上下文长度下的解码吞吐](figures/fig08-throughput.png)

*来源：原文 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 分数 |
| ---: | ---: | ---: | ---: |
| 0 | 26,189 | 9.99% | 47.4 |
| 0.001 | 3,354 | 1.28% | 47.4 |
| 0.020 | 319 | 0.12% | 47.3 |
| 0.050 | 149 | 0.06% | 47.0 |
| 0.100 | 83 | 0.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 / CR | LongBench 平均分 |
| --- | --- | ---: |
| ResidualKV 独立使用 | 16% / 100% | 50.5 |
| ResidualKV + OmniKV | 13% / 30% | 50.3 |
| ResidualKV + SnapKV | 17.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 / CR | LongBench 平均分 | 相对完整 ResidualKV |
| --- | --- | ---: | ---: |
| ResidualKV | 45% / 30% | 50.3 | — |
| 去掉 $f_c,f_d$ | 45% / 30% | 46.7 | −3.6 分 |
| 去掉参考 token | 47% / 30% | 45.9 | −4.4 分 |

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

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

![原图 11：质量与吞吐的参数取舍](figures/fig11-hyperparameters.png)

*来源：原文 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：多模态参考检索案例](figures/fig13-visual-case.png)

*来源：原文 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 的各自访问预算；在精确字符串检索等已出现失败的任务上，分析误差来自参考匹配、编码还是稀疏选择。这些实验能帮助判断，何时应该增加参考、增加编码维度，或提高局部读取预算。
