ReCache:面向工具增强LLM代理的高效KV缓存重用与压缩
摘要
ReCache是一个用于工具增强LLM代理中高效KV缓存重用与压缩的框架,在保持性能的同时实现显著的加速和内存减少。
查看缓存全文
缓存时间: 2026/08/21 10:08
# ReCache:面向工具增强型LLM智能体的高效KV缓存复用与压缩 来源:https://arxiv.org/html/2608.19662 Yichu Fang Sitong Wei 所属单位:西安交通大学 [[email protected]](mailto:[email protected]) [[email protected]](mailto:[email protected]) Haozhe Hu 所属单位:上海交通大学 所属单位:宁波东方理工大学(暂名) Xiaoyu Shen 致谢:通讯作者 所属单位:宁波东方理工大学(暂名) ###### 摘要 智能体语言模型会在不同请求中重复编码工具与技能模式,这些模式以不同的组合与顺序出现,导致标准的前缀缓存无法复用其关键-值(KV)状态。我们提出了ReCache,一个用于独立缓存资源表示并减少其推理时计算与内存开销的框架。资源级注意力机制移除了资源间的交互,并为每个资源分配局部位置信息,生成与组合顺序无关的KV块。ReCache随后将资源可见性限制在基于贡献选择的层–KV头组路由中,并通过结构化与语义化剪枝仅保留对调用至关重要的字段。我们在一个由七个公开工具与技能使用数据集构建的基准(包括资源不相交测试)上评估了ReCache。资源级注意力在保持稠密调用性能(82.3% 对比 82.4% Inv-F1)的同时,实现了3.655倍的时间到首令牌(TTFT)加速。完整框架将分配的KV张量内存减少了92.43%,并使注意力计算加速1.423倍。这些结果表明,将可复用的模式编码与选择性的资源访问分离,能以有限的效果损失显著降低智能体推理成本。代码已发布于:https://github.com/EIT-NLP/ReCache. ## 1 引言 请参见标题 (a) 资源间的因果注意力(相对位置分箱)。橙色框标记了跨资源块。 请参见标题 (b) 后续对话令牌对资源的注意力,已通过相对位置进行归一化与对齐。 图1:在Qwen3-4B上的跨资源注意力。近期进展已将大语言模型(LLM)扩展为智能体系统的核心推理模块,通过动态调用外部工具和技能来处理用户请求 [29 (https://arxiv.org/html/2608.19662#bib.bib1); 20 (https://arxiv.org/html/2608.19662#bib.bib2); 18 (https://arxiv.org/html/2608.19662#bib.bib4); 42 (https://arxiv.org/html/2608.19662#bib.bib6)]。随着资源池扩大,智能体系统普遍采用*渐进式披露*,仅在执行时检索与任务相关的模式 [31 (https://arxiv.org/html/2608.19662#bib.bib24); 55 (https://arxiv.org/html/2608.19662#bib.bib5)]。我们将每个工具或技能模式称为一个*资源*。尽管检索限制了活跃上下文,但同一资源可能在不同请求中以不同组合和顺序重复出现,导致针对未变信息的重复预填充计算。 KV缓存复用提供了一种分摊此重复计算的自然方式。然而,标准前缀缓存要求复用内容形成相同的前缀,这在动态组合的资源上下文中很少成立 [48 (https://arxiv.org/html/2608.19662#bib.bib19); 52 (https://arxiv.org/html/2608.19662#bib.bib39)]。近期方法将KV复用扩展到模块化或位置无关的上下文 [6 (https://arxiv.org/html/2608.19662#bib.bib40); 9 (https://arxiv.org/html/2608.19662#bib.bib10); 47 (https://arxiv.org/html/2608.19662#bib.bib21); 46 (https://arxiv.org/html/2608.19662#bib.bib20)],但通常需要位置校正或选择性重计算来近似全上下文KV状态。同时,Transformer能够联合编码语义和位置依赖 [34 (https://arxiv.org/html/2608.19662#bib.bib42); 30 (https://arxiv.org/html/2608.19662#bib.bib41); 33 (https://arxiv.org/html/2608.19662#bib.bib43)],而位置信息的重要性因任务而异,一些研究表明某些任务在减少或改变位置信号的情况下仍能保持性能 [36 (https://arxiv.org/html/2608.19662#bib.bib38); 8 (https://arxiv.org/html/2608.19662#bib.bib54); 15 (https://arxiv.org/html/2608.19662#bib.bib55)]。在资源调用中,保留资源内部语义可能比保留全局资源顺序更重要。图1(a) [https://arxiv.org/html/2608.19662#S1.F1.sf1] 显示,Qwen3-4B在单个资源内的注意力强度显著高于跨资源注意力,支持了这一直觉。 基于这一观察,我们提出了ReCache,一个针对动态检索的工具和技能的资源级KV复用与压缩框架。其核心机制*资源级注意力*,移除了不同资源块之间的注意力,并在每个块内重置位置索引。由此产生的KV表示独立于相邻资源及其绝对位置,使得资源缓存可以独立构建和复用。尽管该表示不同于传统的全上下文预填充,但轻量级微调使模型适应这种注意力模式和位置模式,同时保持可靠的资源调用。 虽然资源级注意力实现了独立的KV复用,但存储和传输完整的资源缓存可能仍然代价高昂,特别是随着资源长度和规模的增长。因此,ReCache从*结构*和*语义*两个角度压缩资源缓存。从结构上看,Transformer的层和KV头组对模型预测的贡献不均 [24 (https://arxiv.org/html/2608.19662#bib.bib28); 35 (https://arxiv.org/html/2608.19662#bib.bib29); 3 (https://arxiv.org/html/2608.19662#bib.bib33)]。ReCache根据层和头组对预测损失的边际贡献进行排序,仅保留最重要路由上的资源可见性。这种基于贡献的标准利用了不同层和并行KV头组上独特的稀疏模式,比基于注意力质量的选择提供了更可靠的资源效用度量。从语义上看,图1(b) [https://arxiv.org/html/2608.19662#S1.F1.sf2] 显示,最终后缀令牌从后续对话令牌接收最高的注意力质量,表明它自然地聚合了前面字段的信息 [26 (https://arxiv.org/html/2608.19662#bib.bib37)]。这一观察促使我们保留后缀令牌作为紧凑的语义锚点,其精神类似于将提示或段落信息聚合到摘要令牌中的基于摘要的压缩方法 [25 (https://arxiv.org/html/2608.19662#bib.bib11); 2 (https://arxiv.org/html/2608.19662#bib.bib13); 51 (https://arxiv.org/html/2608.19662#bib.bib12)]。然而,与通用文本不同,工具和技能模式必须保留精确的接口信息,包括资源标识符、参数名和参数约束;无效的名称和参数是调用失败的常见原因 [32 (https://arxiv.org/html/2608.19662#bib.bib44); 28 (https://arxiv.org/html/2608.19662#bib.bib45); 7 (https://arxiv.org/html/2608.19662#bib.bib51)]。因此,ReCache在保留后缀令牌用于语义聚合的同时,也保留了这些关键字段。 为了系统评估资源复用和泛化能力,我们从七个公开数据集构建了一个统一的工具和技能使用基准。我们首先采用多样性优先的采样策略以最大化样本间的资源多样性,随后过滤掉包含虚构资源使用的无效轨迹。生成的基准包含分布内和资源不相交的分布外划分,能够评估对已知和未见资源的效果。 使用Qwen3主干模型的实验表明,资源级注意力与Dense(标准的稠密注意力基线)在效果指标上的差异最多为0.2%,同时提供了3.655倍的时间到首令牌(TTFT)加速。通过结构化和语义化剪枝,ReCache将分配的KV张量内存减少了92.43%,并使注意力计算加速1.423倍。在匹配的结构预算下,基于贡献的选择比基于注意力和层级不对称的替代方案保留了更高的调用效果,尤其是在未见资源上。直接比较进一步表明,在评估的配置下,字段感知的语义剪枝比通用文本压缩基线保留了更好的性能。随着资源长度增加,ReCache保持了几乎恒定的TTFT、TPOT和注意力延迟,同时将分配的KV张量内存上限控制在0.03 GiB。 我们的贡献有三方面:(1) ReCache提供了一个针对动态检索工具和技能的资源级KV复用与压缩框架;(2) 资源级注意力、基于贡献的结构化剪枝和字段感知的语义剪枝共同减少了缓存构建、层–头组访问和令牌保留中的冗余;(3) 一个包含资源不相交分布外评估的统一工具和技能使用基准,支持对效率和调用性能的系统分析。 ## 2 相关工作 #### 智能体资源。 工具增强的语言模型调用由结构化模式描述的外部函数。近期的基准也在评估大规模API池和多轮交互上的函数调用 [17 (https://arxiv.org/html/2608.19662#bib.bib22); 20 (https://arxiv.org/html/2608.19662#bib.bib2); 28 (https://arxiv.org/html/2608.19662#bib.bib45); 22 (https://arxiv.org/html/2608.19662#bib.bib3); 37 (https://arxiv.org/html/2608.19662#bib.bib23)]。智能体系统还使用自然语言技能,这些技能封装了可复用的流程和调用元数据 [42 (https://arxiv.org/html/2608.19662#bib.bib6); 14 (https://arxiv.org/html/2608.19662#bib.bib26); 18 (https://arxiv.org/html/2608.19662#bib.bib4)]。随着这些资源池的增长,相应的检索会在推理前选择任务相关的子集 [31 (https://arxiv.org/html/2608.19662#bib.bib24); 55 (https://arxiv.org/html/2608.19662#bib.bib5)]。检索减少了提示中的资源数量,但并未消除对重复出现资源的重复编码。 #### 可复用缓存。 前缀缓存为共享相同前缀的请求复用KV状态 [16 (https://arxiv.org/html/2608.19662#bib.bib16); 54 (https://arxiv.org/html/2608.19662#bib.bib17); 49 (https://arxiv.org/html/2608.19662#bib.bib18)]。然而,其对动态组合资源的适用性仍然有限,因为重新排序或重新组合的片段可能与其KV状态构建时的位置配置不同。位置无关方法通过各种策略解决这种不匹配。EPIC [9 (https://arxiv.org/html/2608.19662#bib.bib10)] 和 CacheBlend [47 (https://arxiv.org/html/2608.19662#bib.bib21)] 保留原始位置编码,同时选择性重计算显著令牌以改善缓存集成。特别是,CacheBlend 进一步校正了缓存KV状态间的位置信息,以缓解复用过程中的位置不匹配。KVLink [46 (https://arxiv.org/html/2608.19662#bib.bib20)] 则将位置信息与缓存内容解耦,并在复用期间补偿位置偏移。另一方面,KVCOMM [48 (https://arxiv.org/html/2608.19662#bib.bib19)] 使用基于嵌入的锚权重的熵来评估缓存的可共享性。然而,显式位置信息的必要性因任务而异。NoPo [8 (https://arxiv.org/html/2608.19662#bib.bib54)] 和 NoPE [15 (https://arxiv.org/html/2608.19662#bib.bib55)] 表明,Transformer可以在没有显式位置编码的情况下在各种下游任务中恢复位置知识,而 Wang 等人 [36 (https://arxiv.org/html/2608.19662#bib.bib38)] 进一步表明位置信息在不同分类和跨度预测任务中表现出任务依赖的重要性。 #### KV缓存压缩。 KV缓存压缩利用了令牌、层和注意力头之间的结构冗余。H2O 在统一的层预算下驱逐低重要性状态,而 DepthKV 分配层级相关的保留预算 [53 (https://arxiv.org/html/2608.19662#bib.bib7); 3 (https://arxiv.org/html/2608.19662#bib.bib33)]。DuoAttention 根据注意力角色对头进行分类,而 SPEED 通过深度限制提示KV的可见性,同时保留全深度的解码状态 [41 (https://arxiv.org/html/2608.19662#bib.bib32); 27 (https://arxiv.org/html/2608.19662#bib.bib34)]。这些研究确立了多维稀疏性的重要性,但它们的选择标准并未针对资源调用进行优化。此外,语义压缩减少了保留的上下文令牌数量。学习型方法将段编码为紧凑的摘要状态 [25 (https://arxiv.org/html/2608.19662#bib.bib11); 2 (https://arxiv.org/html/2608.19662#bib.bib13); 51 (https://arxiv.org/html/2608.19662#bib.bib12)],而 LLMLingua 和 LongLLMLingua 应用查询感知的令牌过滤 [12 (https://arxiv.org/html/2608.19662#bib.bib14); 13 (https://arxiv.org/html/2608.19662#bib.bib15)]。ChunkKV 进一步保留连续段以保持局部连贯性 [21 (https://arxiv.org/html/2608.19662#bib.bib35)]。这些技术有效地压缩了自然语言上下文并保留了重要信息,但资源包含直接决定调用行为的结构化标识符和字段关系,这促使了针对字段级语义的压缩策略。 图2:ReCache为每个R_i构建可复用的KV块,并逐步减少其后续缓存保留和访问。(a) 资源级注意力移除了资源间注意力,并在每个R_i内从零开始重置位置。(b) 结构化剪枝仅通过选定的层(L_i)–KV头组(G_i)路由Ω⋆(蓝色高亮)暴露资源KV状态(使用M_resource)。其余路由使用M_context。(c) 语义剪枝保留资源名称、参数(arg)名称和描述(desc.),以及最终后缀令牌。最终掩码组合了这些决策,确保Y在解码过程中仅在分配的路由内关注保留的语义字段。 ## 3 ReCache #### 问题设置 给定数据集𝒟,每个实例 (X,Y) ∈ 𝒟 由智能体输入序列 X 和满足用户请求所需的目标资源调用 Y 组成,包括工具和技能调用。输入序列包括系统指令、用户查询、检索到的资源 𝒞 = {R₁, R₂, …, Rₙ},以及在多轮交互中可用的先前对话历史。每个资源 R_i = (t_{i,1}, …, t_{i,D_i}) 表示为长度为 D_i 的令牌序列,描述其功能,包括资源标识符、参数定义和相关元数据。 目标是基于 X 预测所需的调用 Y。如图2 [https://arxiv.org/html/2608.19662#S2.F2] 所示,ReCache通过三个渐进阶段提高资源处理效率。资源级注意力移除了不必要的资源间交互以实现独立的KV表示;结构化剪枝将资源可见性限制在选定的层–KV头组路由中;语义剪枝通过仅保留关键字段来减少可见的资源长度。 #### 资源级注意力 检索增强生成(RAG)证明了不相交检索的段落可以
相似文章
CompressKV:语义检索引导的KV缓存压缩方法,用于资源高效的长上下文大语言模型推理
CompressKV针对基于GQA的大语言模型,提出了一种语义检索引导的KV缓存压缩方法,通过识别语义检索头来保留关键令牌。在LongBench任务中,仅使用3%的KV缓存即可实现超过97%的全缓存性能。
Practical Online KV Cache Compaction for LLM Agents: An Empirical Study
This empirical study examines practical online KV cache compaction for LLM agents, comparing token eviction and attention matching methods under different proxy query sources. It finds that delaying compaction to use future agent queries recovers performance, and token eviction preserves accuracy while reducing KV cache by 80%.
KV Packet: 免重计算的上下文无关KV缓存用于大语言模型
KV Packet 提出了一种免重计算的缓存复用框架,用于大语言模型。该框架使用可训练的软标记适配器来弥合上下文不连续性,消除了开销,同时在 Llama-3.1 和 Qwen2.5 上的性能与完全重计算基线相当。
LMCache/LMCache
LMCache 是一个开源的KV缓存管理层,用于LLM推理,通过支持跨推理引擎持久化存储和复用KV缓存,减少首Token延迟并提升吞吐量。
@akshay_pachaar: https://x.com/akshay_pachaar/status/2074502882812952666
一份关于KV缓存管理的实践指南,介绍开源LMCache架构,该架构通过消除代理工作流中的冗余上下文处理,将输入令牌成本降低90%,并将LLM推理速度提升高达14倍。