SeKV:面向长上下文LLM推理的分辨率自适应KV缓存与分层语义记忆

arXiv cs.CL 论文

摘要

SeKV是一种分辨率自适应的KV缓存方法,它将上下文组织成基于熵引导的语义片段,并存储在GPU-CPU层级结构中,从而在解码过程中实现选择性Token级重建,同时在128K上下文下相比全缓存减少53.3%的GPU内存占用。

arXiv:2606.31145v1 公告类型:新 摘要:大型语言模型越来越多地处理长上下文,此时KV缓存成为主要内存瓶颈:其大小随序列长度线性增长,且需在解码过程中全程保留,这使得在无压缩的情况下进行全GPU缓存成本高昂。现有的KV缓存压缩方法难以兼顾效率与上下文保真度。Token驱逐会丢弃信息,而语义分组则在预填充阶段固定压缩决策;两者都无法在生成过程中从压缩片段中恢复已变得相关的Token级细节。作为解决方案,我们提出了SeKV,一种分辨率自适应的语义KV缓存,它将上下文组织成基于熵引导的语义片段,并存储在GPU-CPU内存层级结构中,且不丢弃任何信息。每个片段在GPU上保留一个轻量级摘要向量用于粗粒度路由,在CPU上保留一个低秩SVD基用于按需的Token级重建。一个训练有素的缩放机制在解码过程中选择性地扩展与查询相关的片段,从而无需在GPU上实例化完整KV缓存即可实现精确检索。SeKV实现了自适应Token级重建,同时保持基础LLM完全冻结,仅增加不到0.05%的可训练参数。在四个基准测试中,SeKV在128K上下文下相比最强的语义压缩基线平均提升5.9%,同时相比全KV缓存减少53.3%的GPU内存占用。代码已开源:https://github.com/AmirAbaskohi/SeKV。
查看原文
查看缓存全文

缓存时间: 2026/07/01 05:33

# SeKV:面向长上下文 LLM 推理的分辨率自适应 KV 缓存与分层语义记忆  
来源:https://arxiv.org/html/2606.31145  

Amirhossein Abaskohi¹  Giuseppe Carenini¹  Peter West¹  Yuhang He²  
¹不列颠哥伦比亚大学 ²微软研究院  
通讯作者:[email protected]。本工作部分完成于微软研究院(MSR)温哥华实验室的实习期间。  

###### 摘要  

大语言模型越来越多地处理长上下文场景,此时 KV 缓存成为主要的内存瓶颈:其大小随序列长度线性增长,且必须在解码过程中全程保留,这使得在不进行压缩的情况下,完全在 GPU 上缓存成本高昂。现有的 KV 缓存压缩方法难以在效率与忠实保留上下文之间取得平衡。词元淘汰法会丢弃信息,而语义分组法在预填充阶段就固定了压缩决策;一旦生成过程中某个压缩段变得相关,这些方法都无法从中恢复词元级别的细节。作为解决方案,我们提出了 SeKV,一种分辨率自适应的语义 KV 缓存,它将上下文组织成语义段,并在 GPU-CPU 内存层级中存储,不丢弃任何信息。每个段在 GPU 上保留一个轻量级摘要向量用于粗略路由,在 CPU 上保留一个低秩 SVD 基用于按需的词元级重建。一个经过训练的“放大”机制在解码过程中动态扩展与查询相关的段,从而实现精确检索,而无需在 GPU 上实例化完整的 KV 缓存。SeKV 实现了自适应的词元级重建,同时保持基础 LLM 完全冻结,且仅增加不到 0.05% 的可训练参数。在四个基准测试中,SeKV 相比最强的语义压缩基线平均提升了 5.9%,同时在 128K 上下文中,与完整的 KV 缓存相比,GPU 内存减少了 53.3%。  
¹代码可在 GitHub 上获取。(https://github.com/AmirAbaskohi/SeKV)。  

SeKV:面向长上下文 LLM 推理的分辨率自适应 KV 缓存与分层语义记忆  
Amirhossein Abaskohi¹‡  Giuseppe Carenini¹  Peter West¹  Yuhang He²  
¹不列颠哥伦比亚大学 ²微软研究院  

## 1 引言  

参见说明  
图 1:(a) 现有的词元淘汰方法会丢弃来自远距离上下文的语义关键词元,导致注意力集中在文档边界,而答案区域获得近乎为零的注意力,从而引发幻觉;(b) SeKV 将上下文组织成语义段,通过 GPU/CPU 内存层级保留所有信息。一个经过训练的“放大”机制动态地将最相关的查询段扩展到完整的词元级分辨率,同时 GPU 上始终保留锚定词元以确保精确检索。  

大语言模型(LLM)越来越多地需要推理长上下文,例如在文档分析 Luo et al. (2024)、多轮对话 Zhang et al. (2025) 和智能体规划 Huang et al. (2024) 等应用中。虽然最近的模型宣称支持 128K 词元或更长的上下文窗口,但在实际中使用这些上下文仍然代价高昂:键值(KV)缓存随序列长度线性增长,且必须在解码过程中全程保留。因此,完整的 KV 缓存可能变得内存开销极大,导致在不进行压缩或采用高效缓存管理的情况下难以部署长上下文推理。这与仅仅扩展上下文窗口构成了不同的实际挑战:长上下文模型不仅要能接受长输入,还必须在严格的内存限制下保留对相关证据的访问。  

最近的 KV 缓存管理方法通过词元淘汰、量化、合并、检索或卸载来降低推理成本(Li et al., 2024; Cai et al., 2025; Wu and Tu, 2024; Chen et al., 2025; Zhao et al., 2026)。然而,大多数方法要么将上下文视为词元级状态的扁平序列,要么采用在预填充阶段固定的静态压缩策略进行语义分组(Liu et al., 2026; Wu et al., 2026; Zhu et al., 2025)。这两种选择对于长上下文推理都存在局限性。词元级压缩可能会碎片化连贯的证据或永久丢失信息,而静态语义压缩则无法在解码过程中某压缩段变得相关时恢复词元级细节。当早期看似外围的证据后来成为某个关键查询的逻辑锚点时,这一问题尤为突出。因此,在本文中,我们认为长上下文 KV 缓存不仅需要更强的压缩,还需要一种不同的内存组织方式:以可变分辨率存储上下文,并根据查询相关性动态缩放到适当的细节级别。  

我们提出了 SeKV(语义 KV 缓存),一种用于高效长上下文 LLM 推理的分辨率自适应语义 KV 缓存。SeKV 将 KV 缓存组织成分层语义记忆。首先,输入上下文被分割成语义连贯的段,分割信号使用词元惊讶度——该信号在模型预填充前向传播中可用,且通常在主题转换、实体引入等语义转折处达到峰值(Zhao et al., 2025)。段边界处的高惊讶度锚定词元在 GPU 上以完整分辨率保留,因为它们携带了集中的语义信息,有助于后续的路由和重建。其次,每个段在 GPU 上用一个轻量级摘要向量表示(用于高效的粗略路由),并在 CPU 上用一个低秩 SVD 基表示(紧凑地编码段的词元级结构,用于忠实重建)。第三,一个经过训练的“放大”机制在解码过程中动态选择哪些段需要展开到词元级分辨率,在 GPU 计算并行进行时,异步触发 CPU 到 GPU 的相关段 SVD 基获取。关键在于,SeKV 避免了不可逆的词元淘汰:每个段由 GPU 驻留的摘要向量进行粗略路由,并借助 CPU 驻留的低秩基实现按需的近似词元级重建。  

在四个长上下文理解基准测试中,SeKV 相比最强的语义压缩基线平均提升了 5.9%,同时在 128K 上下文长度下,与完整 KV 缓存相比,GPU 内存消耗减少了 53.3%。  

总结而言,本工作做出了三项贡献:  
(1) 我们提出了 SeKV,一种分辨率自适应的语义 KV 缓存,它以多种分辨率存储上下文,并在解码过程中根据查询相关性动态调整缓存细节。  
(2) 我们引入了熵引导的段分割,该方法在预填充阶段利用词元惊讶度来识别连贯的语义段,并以完整分辨率保留高惊讶度的锚定词元,确保后续可靠的检索。  
(3) 我们设计了一种双重表示的 KV 结构,包括 GPU 驻留的段摘要(用于粗略路由)、CPU 驻留的低秩基(用于近似词元级重建),以及一个经过训练的“放大”机制,该机制在解码过程中仅选择性地扩展与查询相关的段。  

## 2 相关工作  

**KV 缓存压缩与淘汰。** 主流的 KV 缓存压缩方法是词元淘汰,即根据注意力统计信息永久丢弃词元(Zhang et al., 2023; Liu et al., 2023; Xiao et al., 2024b; Li et al., 2024; Cai et al., 2025)。头感知方法区分检索头与流式头,以选择性地应用稀疏性(Xiao et al., 2025; Tang et al., 2025)。跨层方法则利用相邻层 KV 状态之间的高相似性来合并或共享表示(Liu et al., 2024; Wu and Tu, 2024; Sun et al., 2024; Hu et al., 2025)。为超越 GPU 内存限制,基于检索的系统将 KV 对卸载到 CPU,并借助轻量级 GPU 驻留代理按需获取相关条目(Xiao et al., 2024a; Chen et al., 2025; Zhao et al., 2026)。DesireKV (Cheng et al., 2026) 专门针对推理模型,通过联合考虑注意力推导的重要性和量化敏感性,做出差异化的每词元压缩决策。尽管这些方法综合起来是有效的,但它们都在预填充阶段固定压缩决策,在词元级操作,并永久丢弃信息——这些特性限制了它们在生成过程中恢复后来才变得相关的证据的能力。SeKV 有着根本不同:它将上下文组织成语义段,通过 GPU-CPU 内存层级避免不可逆的词元淘汰,并通过经过训练的“放大”机制按需动态恢复词元级细节。  

**语义 KV 缓存压缩。** 最近的方法引入了语义结构化的 KV 压缩,在压缩前先对词元进行分组。ChunkKV (Liu et al., 2026) 通过选择连续的词元块来保持局部连贯性;SemantiCache (Wu et al., 2026) 分割上下文,通过键相似性聚类词元,并将每个聚类合并为代表性的 KV 对;SentenceKV (Zhu et al., 2025) 在 GPU 上存储句子级语义向量,并将选定的词元级 KV 对卸载到 CPU,以便在解码过程中动态检索。这些方法表明,语义结构可以比扁平词元淘汰更有效地提高缓存效率。然而,它们的语义单元和保留的缓存表示在预填充阶段基本固定,这使得当后期需要保留词元池之外更细粒度的证据时,难以恢复。SeKV 通过熵引导的段、GPU 驻留的路由摘要、CPU 驻留的低秩基以及按需重建查询相关段的训练“放大”机制,解决了这一局限性。  

## 3 SeKV  

参见说明  
图 2:SeKV 概览。输入被分割成语义段。锚定词元和摘要向量驻留在 GPU 上用于粗略路由,而 SVD 基存储在 CPU 上。在每个解码步骤中,阶段 1 路由识别出相关段,并触发其 SVD 基的异步获取。阶段 2 为放大的段重建词元级 KV 对并计算细粒度注意力,输出在两个阶段中合并。  

SeKV 将 KV 缓存从扁平的词元级序列重新组织成分层语义记忆。如图 2 所示,上下文被分割成语义连贯的段,每个段同时以两种分辨率表示:GPU 上紧凑的摘要向量(用于高效的粗略路由),以及 CPU 上低秩的 SVD 基(用于按需的忠实词元级重建)。一个经过训练的“放大”机制,带有每头每层的路由投影、学习到的每段秩预算以及学习到的阈值,在解码过程中动态选择需要展开的段以及展开的精确度。以下描述每个组件。  

### 3.1 熵引导的段分割  

SeKV 使用词元级惊讶度作为零成本边界信号,将输入上下文分割成语义连贯的段。在预填充过程中,位置 t 处的词元惊讶度计算为 H_t = -log p(x_t | x_{<t})。高惊讶度通常出现在语义转折、实体引入或观点变化处。我们将惊讶度超过阈值 μ + ασ 的词元标记为段边界,其中 μ 和 σ 是序列上惊讶度的均值和标准差,α 控制边界敏感度。这些边界词元作为锚定词元在 GPU 上以完整分辨率保留,而两个相邻锚点之间的词元构成一个语义段 S。与固定大小的分块(Liu et al., 2026)或基于分隔符的拆分(Wu et al., 2026)相比,基于惊讶度的分割是内容自适应的,不需要外部标注器、分割器或额外模型。它为信息密集区域分配更精细的分辨率,产生更短的段和更多的锚点,同时将密度较低的文本压缩为更长的段。得到的段随后被编码为第 3.2 节所述的双重分辨率表示。  

### 3.2 双重分辨率段表示与内存层级  

每个语义段 S 以两种分辨率表示:GPU 驻留的摘要(用于高效的段级路由)和 CPU 驻留的低秩基(当段被选中进行“放大”时,用于近似词元级重建)。  

#### 摘要向量(GPU)  

对于每个词元 t ∈ S,令 H_t 表示其在预填充过程中由冻结的 LLM 计算出的惊讶度。我们首先将词元惊讶度转换为归一化的段内权重:  
w_t = H_t / ∑_{k∈S} H_k。  
该权重将非锚定词元按其剩余惊讶度加权。对于每一层 l 和注意力头 h,令 K_t^{(l,h)} ∈ ℝ^{d_h} 表示词元 t 的键向量,其中 d_h 是头的维度(Llama-3-8B 上 d_h=128)。我们计算一个紧凑的摘要键 K̄_S^{(l,h)} ∈ ℝ^{d'},其中 d' ≪ d_h 是路由维度(d'=32),通过使用学习到的每头每层投影 W^{(l,h)} ∈ ℝ^{d' × d_h} 投影词元键,并取归一化的惊讶度加权平均:  
K̄_S^{(l,h)} = (∑_{t∈S} w_t W^{(l,h)} K_t^{(l,h)}) / ‖∑_{t∈S} w_t W^{(l,h)} K_t^{(l,h)}‖₂,  
其中每头每层投影 W^{(l,h)} 允许每个头-层对学习自己的相关性空间,因为不同层和头的注意力模式各不相同(Voita et al., 2019)。该摘要仅用于路由。我们还在 GPU 上保留原始空间中惊讶度加权的平均键和值:k̄_S^{(l,h)} = ∑_{t∈S} w_t K_t^{(l,h)} 和 v̄_S^{(l,h)} = ∑_{t∈S} w_t V_t^{(l,h)},两者均在 ℝ^{d_h} 中,它们作为未展开段在输出注意力中的粗略贡献(第 3.3 节)。在每个解码步骤中,我们将当前查询投影到与段摘要相同的路由空间中:  
q^{(l,h)} = W^{(l,h)} q_t^{(l,h)} ∈ ℝ^{d'}。

相似文章

KV Packet: 免重计算的上下文无关KV缓存用于大语言模型

Hugging Face Daily Papers

KV Packet 提出了一种免重计算的缓存复用框架,用于大语言模型。该框架使用可训练的软标记适配器来弥合上下文不连续性,消除了开销,同时在 Llama-3.1 和 Qwen2.5 上的性能与完全重计算基线相当。