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 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 两个观察怎样引出设计

来源:原文 Fig. 3,PDF p. 4;完整保留六个面板及轴标。分析主要使用 Qwen2.5-7B-Instruct-1M。
按从左到右、从上到下阅读:
- Fig. 3(a) 的横轴是每个 token 与历史 token 的最大余弦相似度,纵轴是 token 百分比,均值为 0.92。这是“每个 token 的最佳历史匹配”的统计,不是任意 token 对的平均相似度。
- Fig. 3(b) 横轴为最相似历史 token 的位置距离,使用对数刻度;59.7% 的最佳匹配距离超过 16。仅在局部邻域做差分会漏掉一大部分可复用表示。
- Fig. 3(c) 比较累计解释方差随成分数的变化。原始 KV 的曲线更快上升,残差谱更平坦,说明共享的高能量方向被消去。
- Fig. 3(d–f) 显示残差的范数更小、数值更靠近零、极端值更少。较小的组内动态范围有利于低比特量化。
这里值得区分两个概念:能量更低不等于更低秩。Fig. 3(c) 中残差的归一化谱反而更平坦。论文最直接的证据是参考相减减少了需要编码的绝对幅值;是否能用短向量保留任务重要信息,还要看学习压缩和下游实验,而不能仅从谱平坦推出。
二:方法——参考检索、残差编码与按需恢复

来源:原文 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$ 个参考:
然后取算术平均:
“全局”表示参考来自整个已见上下文的不同位置,检索候选仍然只是稀疏参考池,而非全部历史 token。默认 $k=4$。选 $L_2$ 距离是为了与平方重建误差对齐;多个参考平均则降低单一邻居的偶然激活和局部差异。余弦相似度用于前面的观察,实际检索规则是 $L_2$。(Sec. IV-A,PDF p. 4)
2.3 真正的编码公式:先分别映射,再相减
压缩器是非线性 SwiGLU:
其中 $\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}$。
实际保存的编码为:
因为 $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$:
常数组直接按原值处理,避免除零。关闭量化时 $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 线性恢复:把反复发生的工作做轻
解码器是无偏置线性映射:
再把 $\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%。动态步长随位置增大间距:
其中 $s_0$ 为初始步长,$n_{\rm sink}$ 为 sink token 数,$\alpha$ 控制增长。忽略取整并求解递推,可以得到论文的近似式:
$\alpha=0$ 对应固定步长,需要取极限理解,不能直接代入底数为 1 的对数。对固定正 $\alpha$,参考数量近似对数增长;每个非参考 token 的短编码仍然保留,整个 KV 表示并未变成 $O(\log T)$ 存储。完整注意力层也仍保存全历史。(Sec. IV-A,PDF pp. 5–6)
2.7 稀疏注意力决定读取谁,ResidualKV 决定怎样保存

来源:原文 Fig. 7,PDF p. 7。图从上方过滤层给出的索引,流向编码与参考读取、线性解码和相加。
OmniKV 在少数 filter layers 中做完整注意力,再根据其注意力分数选择历史索引集合 $\mathcal I_t$。其余 sparse layers 只恢复这些索引的编码和参考,并计算:
一次 decode step 可以按下列教学流程理解:
- filter layer 扫描自己的全历史,产生当前查询的索引集合。
- sparse layer 读取所选 token 的短编码,以及恢复它们所需的参考关系和参考向量。
- 反量化、线性解码、加参考均值,恢复 K/V 并计算稀疏注意力。
- 新 token 的状态按参考调度直接入库,或编码后入库。
独立运行时没有外部 mask,因此恢复全部编码,CR 为 100%。与 SnapKV/KVzip 组合时,只保留外部策略留下的集合及所需参考。此时组合系统仍继承静态淘汰的不可逆删除,不能把默认动态组合的“全部历史可恢复”推广到静态组合。(Sec. IV-C,PDF p. 7)
2.8 理论:检索半径如何进入恢复误差
定义原空间残差:
在实际检索所诱导的数据支持集 $\mathcal S$ 上,用两个系数描述训练后的 codec:
$\eta_{\mathcal S}$ 衡量未量化 codec 的相对恢复误差,$\gamma_{\mathcal S}$ 衡量编码的幅值放大。它们是支持集相关量,论文没有给出训练后统一很小的数值上界。
令检索半径和参考离散度为:
Theorem IV.1 首先给出精确的平方距离分解:
证明来自展开平方并利用参考相对均值的偏移之和为零。对于量化误差 $\mathbf e_{q,i}=Q(\mathbf z_{\Delta,i})-\mathbf z_{\Delta,i}$:
第一步使用每坐标舍入误差不超过半个量化间隔;第二步使用 $\operatorname{range}(z)^2\le2\|z\|_2^2$ 和组大小上限 $g$。通过线性解码器传播量化误差后:
它把更近的参考、较小的编码放大和更高位宽,联系到较低的 KV 数值失真。固定参考池与所选子集大小时,top-$k_i$ 最近邻最小化 $\rho_i$,所以最小化粗误差界中的检索半径项。它不直接最小化参考均值误差,也没有把 KV 欧氏误差进一步变成任务准确率保证。(Sec. IV-B,PDF pp. 6–7)
Corollary IV.2 用理想模型解释多参考平均:若当前 token 和参考都具有同一共享成分 $\mathbf s_c$,各自扰动零均值、协方差为 $\Sigma_c$,并且彼此条件独立,则:
参考噪声随 $k_i$ 增长衰减,但当前 token 自身的扰动仍在;所以从 $k=1$ 到 4 的收益大于从 4 到很大的 $k$。最近邻选择会引入依赖,现实参考也可能不完全兼容,因此该推论是解释饱和趋势的理想化模型。(PDF p. 7)
2.9 训练同时照顾数值恢复和预测
主干参数 $\theta$ 冻结,只更新 codec 参数 $\phi$。原文目标写为:
虽然名称为 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 极值时,相对存储为:
因此 4-bit 的实际分组存储并非仅 25%,2-bit 也并非仅 12.5%。为避免原文 $L$ 同时表示序列长度与层数的混淆,下面以 $H$ 表示层数,并令 $\beta=H_{\rm full}/H$:
第一项是完整注意力层的 4-bit cache;第二项是稀疏层的 FP8 参考与短编码。$r$ 是稀疏层访问比例,$\rho_{\rm ref}$ 是参考 token 密度,两者不是同一个预算。
数值解释:Llama-3.1-8B 的 32 层中取 5 个完整注意力层,固定参考密度 10%、$d_c/(2d_k)=1/4$ 时:
这与原文的 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-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 实际吞吐:量化增加了完整层的恢复成本

来源:原文 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”也处在不同量化与预算设置,不能混为同一行。

来源:原文 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 视觉案例:共享的是结构线索,不只是邻接位置

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