Back to blog

InfoFlow KV: Information-Flow-Aware KV Recomputation for Long Context

A selective KV recomputation method using attention-norm criteria from query to context tokens to identify information-flow-critical tokens for long-context inference

InfoFlow KV: Information-Flow-Aware KV Recomputation for Long Context

一、论文概述

项目内容
标题InfoFlow KV: Information-Flow-Aware KV Recomputation for Long Context
作者Xin Teng, Canyu Zhang, Shaoyi Zheng, Danyang Zhuo, Tianyi Zhou, Shengjie Wang
机构未明确标注
论文arXiv:2603.05353
代码未提供
发布2026-03-05 (v1, 6,286 KB)
许可CC BY 4.0
领域Machine Learning (cs.LG)

二、核心思想

检索增强生成(RAG)已成为大语言模型和视觉语言模型问答的主流范式。在 RAG 中,模型反复检索并条件化大量外部文档,通常涉及数万甚至数十万 token,而仅生成简短答案。

一种自然的效率策略是:离线预计算各个文档/KV 缓存,在查询时通过复用这些缓存状态来组装检索到的上下文。然而,自回归解码需要一个全局有序的单序列,具有跨检索证据的全局因果依赖关系,而每个文档的 KV 缓存是独立计算的——这导致了缓存组装与全局因果注意力之间的不匹配。

现有方法通过选择性 KV 重计算来缓解这一问题,但它们的 token 选择标准存在局限:CacheBlend 基于缓存 KV 状态与完整上下文注意力的偏差,EPIC 则固定重计算每个 chunk 的初始 token,两者均未考虑信息流的结构化特性。

InfoFlow KV 将选择性 KV 重计算视为一个信息流问题——目标是恢复检索到的证据能够有效影响答案生成的路径。作者发现,一个来自 query 到 context token 的**注意力范数(attention-norm)**准则在识别同时具备语义相关性和结构位置传播能力的 token 方面非常有效。

问题定义

给定 NN 个 token 的输入,划分为 KK 个不相交 chunk {C1,…,CK}\{C_1, \ldots, C_K\}。每个 chunk 独立预填充,使用 chunk-local RoPE 位置编码。在推理时,检索到的 chunk 与 prompt 拼接后需要全局因果掩码下的重计算来恢复跨 chunk 交互。

关键挑战:

  1. RoPE 几何失配:chunk-local 位置分配与全局推理位置不一致,导致 token 重要性评估失真
  2. token 选择标准:如何准确识别对信息流最关键的 token 进行重计算

解决方案概述

  1. 注意力范数准则:使用 prompt-to-context 注意力矩阵的行和作为 token 重要性分数 sj=∑iAijs_j = \sum_i A_{ij}
  2. 全局位置重建:为检索到的 chunk 重建全局 RoPE 位置,确保 token 选择的推理一致性
  3. 信息流引导的 chunk 重排序:将信息量更大的 chunk 放置在更靠近 prompt 的位置

超越 RAG 的适用性

尽管主要针对”带预计算文档级 KV 缓存的 RAG”场景,该 chunking-and-recompute 策略在没有预计算缓存时同样适用:非 RAG 长上下文推理中可将输入切分为独立预填充的 chunk,再在全局因果掩码下选择性重计算。由此带来两个实际收益:(i) 在多查询/交互式场景中,预取的 KV 缓存可存储复用以摊销预填充成本;(ii) chunk-wise 预填充天然支持多 GPU 并行(各 chunk 在重组与重计算前独立处理)。

三、技术架构

整体框架

主流程图

┌─────────────────────────────────────────────────────────────────┐
│                    InfoFlow KV Pipeline                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Phase 1: Chunk-wise Prefill (Offline)                          │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐                      │
│  │ Chunk 1   │  │ Chunk 2   │  │ Chunk K   │                   │
│  │ pos: 0..n │  │ pos: 0..m │  │ pos: 0..p │                   │
│  │ KV₁ cached│  │ KV₂ cached│  │ KVₖ cached│                   │
│  └──────────┘  └──────────┘  └──────────┘                      │
│                                                                 │
│  Phase 2: Global Position Reconstruction                        │
│  Chunk i global start: g(t) = Δ_ctx + p_i(t)                    │
│  Prompt global start:  g(p) = Δ_pr + p_pr(p)                    │
│                                                                 │
│  Phase 3: Token Selection (Attention-Norm Criterion)            │
│  A ∈ ℝ^(M×N)  prompt-to-context attention matrix               │
│  s_j = Σᵢ A_ij   →   S = Top-k({s_j})                          │
│                                                                 │
│  Phase 4: Selective KV Recomputation                            │
│  Recompute only selected tokens under global causal mask        │
│                                                                 │
│  Phase 5 (Optional): Chunk Reordering                           │
│  Two-stage selection → place informative chunks closer to prompt│
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

核心公式

KV Cache 定义:

ktℓ=WKℓhtℓ,vtℓ=WVℓhtℓ,(1)\mathbf{k}^{\ell}_{t}=\mathbf{W}^{\ell}_{K}\mathbf{h}^{\ell}_{t},\qquad\mathbf{v}^{\ell}_{t}=\mathbf{W}^{\ell}_{V}\mathbf{h}^{\ell}_{t}, \tag{1} K≤tℓ∈Rt×dh,V≤tℓ∈Rt×dh,(2)\mathbf{K}^{\ell}_{\leq t}\in\mathbb{R}^{t\times d_{h}},\qquad\mathbf{V}^{\ell}_{\leq t}\in\mathbb{R}^{t\times d_{h}}, \tag{2}

其中 htℓ∈Rd\mathbf{h}_t^\ell \in \mathbb{R}^d 为第 ℓ\ell 层位置 tt 的隐藏状态,dhd_h 为每头维度。

RoPE 旋转位置编码:

RoPE(x,t)=[cos⁡(θit)amp;−sin⁡(θit)sin⁡(θit)amp;cos⁡(θit)]x,(3)\mathrm{RoPE}(\mathbf{x},t)=\begin{bmatrix}\cos(\theta_{i}t)&-\sin(\theta_{i}t)\\ \sin(\theta_{i}t)&\cos(\theta_{i}t)\end{bmatrix}\mathbf{x}, \tag{3} θi=10000−2i/d,i=0,…,d2−1.(4)\theta_{i}=10000^{-2i/d},\quad i=0,\dots,\frac{d}{2}-1. \tag{4}

全局位置重建:

Chunk 内 token t∈Cit \in C_i 的全局位置:

g(t)=Δctx+pi(t),(5)g(t)=\Delta_{\mathrm{ctx}}+p_{i}(t), \tag{5}

Prompt token 的全局位置:

g(p)=Δpr+ppr(p).(6)g(p)=\Delta_{\mathrm{pr}}+p_{\mathrm{pr}}(p). \tag{6}

其中 Δctx\Delta_{\mathrm{ctx}} 指定 chunk 在整个上下文中的起始位置,pi(t)p_i(t) 为 chunk 内的局部位置索引。

Token 选择——注意力范数准则:

prompt-to-context 注意力矩阵 A∈RM×N\mathbf{A} \in \mathbb{R}^{M \times N},其中 MM 为 prompt 大小,AijA_{ij} 表示第 ii 个 prompt token 对第 jj 个 context token 的注意力权重。每个 context token jj 的重要性分数:

sj=∑i=1MAij.(7)s_{j}=\sum_{i=1}^{M}A_{ij}. \tag{7}

重计算目标选择 top-kk 最大重要性分数的 context token:

S=Top⁡-k({sj}j=1N).(8)\mathcal{S}=\operatorname{Top}\text{-}k\big(\{s_{j}\}_{j=1}^{N}\big). \tag{8}

作者使用 prompt-to-token 注意力而非 token-to-prompt 注意力作为选择信号,因为 prompt-to-token 注意力直接决定了从每个 context token 中检索多少信息,对 next-token prediction 有即时影响。

四种 RoPE 配置

配置Prompt 位置Context 位置说明
GLOBAL0…M−10 \ldots M-1M…M+N−1M \ldots M+N-1与推理时一致(默认)
HL-HP0…M−10 \ldots M-10…N−10 \ldots N-1Head-only, high prompt
HL-TP0…M−10 \ldots M-1L−M…L−1L-M \ldots L-1Head-only, truncated prompt
TL-TPL−M…L−1L-M \ldots L-1L−M−N…L−N−1L-M-N \ldots L-N-1Truncated, both

其中 L=M+NL = M + N 为总序列长度。

RoPE 几何为何决定 token 选择质量

论文的关键理论洞察:注意力范数准则只有在与推理解码一致的 RoPE 几何下计算才可靠;chunk-local 或错配的位置配置会产生不稳定、误导性的 token 排序。信息从 context token 传向下游自回归解码的有效性,取决于拼接后 RoPE 分配的两个内在几何性质:

  1. Context token 所处的 RoPE 频率区间:决定 token 间相对位置差异被 RoPE 编码的敏感程度(低索引维度=高频、对位置差异更敏感);
  2. Prompt 与 context 之间的相对 RoPE 位置邻近度:决定在因果约束下 prompt-to-context 注意力能否被有效建立。

因此 HL-HP、TL-TP 等把 prompt 与 context 分配到分离或截断位置区间的配置会明显拉低分数,而 GLOBAL(与推理布局完全一致)始终最优——这为”token 选择的位置布局必须匹配解码布局”提供了几何层面的解释(Table 1、Table 2 佐证)。

模型组件

组件说明关键参数
全局位置重建模块将 chunk-local 位置映射到全局位置Δctx\Delta_{\mathrm{ctx}}, pi(t)p_i(t)
注意力范数计算器计算 prompt-to-context 注意力矩阵的行和中间偏晚层(22–25 层)
Top-k 选择器按重要性分数选择重计算 tokenkk = 总 token 数的 15%
Chunk 重排序器两阶段选择 + chunk 重排第一阶段 HL-TP 鼓励多样性
全层重计算对所有 Transformer 层重计算选中 token 的 KV保证全局因果一致性

训练流程

InfoFlow KV 是一个推理时方法,不修改预训练模型。其工作流程:

  1. Chunk-wise Prefill:离线独立预计算各 chunk 的 KV 缓存
  2. 全局位置重建:在推理时为检索到的 chunk 分配全局位置
  3. Token 选择:从预填充阶段的注意力矩阵计算重要性分数
  4. 选择性重计算:对 top-k token 在全局因果掩码下重计算 KV
  5. 可选重排序:两阶段选择后将信息量大的 chunk 前置

四、核心创新

创新点说明理论/实验依据
信息流视角将选择性 KV 重计算重新定义为信息流恢复问题发现注意力范数同时捕获语义相关性和全局因果图上的结构位置
注意力范数准则prompt-to-context 注意力矩阵行和作为 token 重要性信号Table 3: 在 3 个 LLM 和 4 个基准上持续优于 CacheBlend 和 EPIC
推理一致的 RoPE 排序引入全局位置重建确保 token 选择的推理一致性Table 1: GLOBAL 配置在所有基准上 consistently best
Chunk 重排序策略基于信息流关键 token 将检索到的 chunk 重新排序在 passage-split 和 narrative 场景中获得额外增益

五、代码实现分析

本文未提供开源代码。根据 Appendix B 的实现细节:

Norm 层选择:实验表明中间偏晚层(layers 22–25)的注意力范数 consistently yield 最佳下游检索准确率。

重计算范围:选中 token 后,在所有 Transformer 层重计算其 KV 状态,确保重计算 token 与全局因果注意力几何完全一致。

数值差异说明:Ring Attention 设置下与单 GPU 全预填充基线存在微小数值差异,主要源于浮点算术非结合性——ring attention 改变了部分统计量(softmax 的行最大值和归一化器,以及随后的加权约简)的计算顺序。

六、实验结果

LLM 实验

Table 3: LongBench 长上下文 QA 性能对比(固定 chunk=2048,passage-split 设置)

模型方法2WikiMQAMuSiQueHotpotQANarrativeQA
Qwen
Baseline0.51610.37180.59220.1654
No Recompute0.39480.13420.46330.1137
Our0.50890.33840.59670.2110
Our + Reorder0.47730.28720.50530.2251
CacheBlend0.44170.26110.53520.2170
EPIC (15%)0.43210.23680.52840.1999
LLaMA
Baseline0.45880.32850.54100.1623
No Recompute0.47380.42130.55940.2803
Our0.46350.31040.51500.2891
Our + Reorder0.44550.30440.50530.2957
CacheBlend0.41310.28230.47200.2685
EPIC (15%)0.40870.26380.47550.2701
ChatGLM
Baseline0.52530.39460.60030.3264
No Recompute0.43700.28330.50240.2758
Our0.50640.36880.57390.3239
Our + Reorder0.51760.37860.58200.3140
CacheBlend0.42260.26240.51770.2970
EPIC (15%)0.44010.29020.53620.2962

关键发现:

  • Our 方法在 3 个 LLM 和 4 个基准上均取得最佳或次佳结果
  • 在多跳推理任务(2WikiMQA, MuSiQue, HotpotQA)上提升尤为显著,这些任务需要聚合分散证据
  • Our + Reorder 在 NarrativeQA 和部分 passage-split 场景中提供额外增益

VLM 实验

Table 4: Qwen3-VL-8B 视觉语言 QA 基准性能

模型方法RealWorldQAChartQAOCRBenchHRBench4KinfoVQA val
k=0
Baseline (No Recompute)0.705983.088780.7487583.07
k=2
No Recompute0.674571.328390.7275071.64
Our0.681073.488420.7262573.07
CacheBlend0.675871.728450.7237572.00
EPIC0.674570.928360.7250071.51
k=4
No Recompute0.658862.007810.6887557.88
Our0.666765.688020.6912562.23
CacheBlend0.656262.687860.6862558.56
EPIC0.654962.487850.6725057.82

改进在结构性要求高的任务(ChartQA, OCRBench)上最为明显,这些任务需要整合分散的视觉元素信息。

消融实验

Table 1: RoPE 几何配置消融(Qwen, passage-split)

RoPE 配置2WikiMQAMuSiQueHotpotQANarrativeQA
HL-HP0.44550.28710.55290.1481
TL-TP0.44580.29700.56930.1923
HL-TP0.47220.30720.56510.2106
GLOBAL0.50190.33860.59540.2288

GLOBAL 配置在所有基准上 consistently best,证明 token 选择的位置布局应与推理时解码布局紧密匹配。

Table 2: RoPE 相似性统计(Mean-of-Max & Max)

ModelMethod2WikiMQA MoM2WikiMQA MaxHotpotQA MoMHotpotQA Max
LLaMANorm-based0.53240.97730.52190.9766
CacheBlend0.52430.91330.51910.8570
EPIC0.50490.67340.49850.6852
QwenNorm-based0.45480.98050.41790.9805
CacheBlend0.45050.80780.42260.8891
EPIC0.41290.56560.38350.6555

Norm-based 选择在 RoPE 相似性指标上 consistently 高于 prior methods,揭示注意力显著性与 RoPE 诱导的位置结构之间的一致性。

效率分析

Table 5: TTFT 延迟与加速比(4× NVIDIA H100, sequence parallel)

序列长度方法重计算比例TTFT (ms)加速比
8192Single-GPU Prefill—566.71.00×
Ring Attention—247.52.29×
Ours0.15232.02.44×
16384Single-GPU Prefill—1285.81.00×
Ring Attention—707.81.82×
Ours0.15427.63.01×
32768Single-GPU Prefill—3190.51.00×
Ring Attention—2350.11.36×
Ours0.15914.03.49×

在 32K 上下文长度下,InfoFlow KV 相比单 GPU 预填充实现 3.49× 加速,且优于 ring attention。

Table 6: Ring Attention vs Ours F1 对比

数据集Ring AttentionOurs提升
HotpotQA56.5357.83+1.30
2WikiMQA48.9451.49+2.55
Musique32.1033.54+1.44

Needle-in-a-Haystack 分析

Haystack 结果

Baseline 在所有深度和上下文长度下维持近完美检索准确率。Chunk-wise prefilling without recomputation 随上下文长度增加呈现严重退化。Selective KV recomputation 大幅缓解此失效模式,Our 和 Our + Reorder 在大部分深度恢复高检索准确率。

Layer 分析

中间偏晚期层(特别是 layers 22–25)的注意力范数 consistently yield 最佳下游检索准确率。

七、相关工作

方法核心思路与 InfoFlow KV 的区别
H2O基于回收/重要性启发式丢弃 KVeviction 方法,不恢复跨 chunk 交互
StreamingLLM基于 recency 的 KV 驱逐适用于流式场景,但不处理 chunk 拼接问题
Pyramid KV压缩 KV 精度降低存储,不涉及选择性重计算
CEPE轻量编码器并行编码 chunkscross-attention 架构,需 decoder 修改
CacheBlend基于缓存 KV 与完整上下文偏差选择不考虑位置/RoPE 结构对信息流的影响
EPIC固定重计算 chunk 初始 token位置固定,不感知语义相关性

八、总结

核心贡献

  1. 信息流视角:首次将选择性 KV 重计算重新定义为信息流恢复问题,提出 prompt-conditioned 注意力范数作为 token 重要性信号
  2. 推理一致的 RoPE 排序:证明可靠的 token 选择需要推理一致的 RoPE 排序,引入检索 chunk 的全局位置重建
  3. Chunk 重排序策略:基于信息流关键 token 的可选 chunk 重排,进一步提升下游注意力效果
  4. 广泛的实验验证:在 3 个 LLM(Qwen3-14B, LLaMA-3.1-8B, GLM-4-9B)和 1 个 VLM(Qwen3-VL-8B)上持续优于 CacheBlend 和 EPIC

技术影响

  • 在 LongBench 多跳推理任务上显著提升 accuracy(如 Qwen 2WikiMQA 从 0.39→0.51)
  • 在 VLM 基准上同样有效(ChartQA +2.16pp, OCRBench +3 points)
  • 多 GPU sequence parallel 设置下实现最高 3.49× 加速
  • 避免 ring attention 的全量 KV all-gather,仅通信选中的少量 token

局限性

  1. 不规则注意力掩码:选择性重计算需要关注动态选定的 token 子集到完整上下文,产生既非完全密集也非严格因果的不规则掩码,现有优化 attention kernel(如 FlashAttention)不支持此模式,导致硬件利用率次优
  2. 需要 HTML 版本:依赖 arXiv HTML 版本的数学公式提取,PDF 提取可能丢失公式结构
  3. 全层重计算开销:当前实现对所有 Transformer 层重计算选中 token,partial-layer recomputation 虽可行但未深入探索

九、参考资源

关键图片索引

图片说明文件名
Figure 1主流程图:chunk-wise prefill → 全局位置重建 → 注意力范数 token 选择 → 选择性重计算 → 可选 chunk 重排main_overview.png
Figure 3Needle-in-a-Haystack 准确率热力图:不同上下文长度和 needle 深度下的鲁棒性分析(Appendix A)needle_in_a_haystack.png
Figure 4Layer-wise 注意力范数分析:不同 Transformer 层对 haystack 检索准确率的影响(Appendix B)norm_layer_selection.png
Figure 2(SVG inline in HTML) - 速度-准确率 Pareto 曲线对比四种 RoPE 配置内联 SVG,未单独提取为 PNG