探究提示KV缓存:何处变得可舍弃

arXiv cs.CL 论文

摘要

本文系统性地探究了在LLM解码过程中,何时以及提示KV缓存的哪些部分变得可舍弃,表明冗余主要涉及聊天模板脚手架而非任务内容,并且用中性填充内容进行替换可保持准确性。

arXiv:2605.30574v1 发布类型:新 摘要:先前的KV缓存压缩方案经验性地证明,在解码过程中提示缓存是部分冗余的,丢弃或摘要化条目几乎没有精度损失。我们探究何时以及何种冗余:在哪些层、多少解码步骤之后,以及以何种形式可以替换提示跨度KV缓存而不破坏任务。一个受控的拼接干预,在层截止和解码步骤上扫描,显示这种冗余是关于形式(聊天模板脚手架)而不是内容。将上层的提示跨度KV缓存替换为来自聊天模板脚手架的KV缓存(其用户内容是中性填充)能够恢复接近原始的精度,而将相同位置置零则会破坏精度。这种分离在Qwen3、Gemma 3和Llama 3系列以及多个数据集上得到复现。
查看原文
查看缓存全文

缓存时间: 2026/06/01 09:25

# 探究提示KV缓存:何时变得可弃
来源:https://arxiv.org/html/2605.30574
Vinayshekhar Bannihatti KumarManoj Ghuhan ArivazhaganDisha Makhija††footnotemark: Rashmi Gangadharaiah AWS AI Labs \{vinayshk,mghuhan,dismakhi,rgangad\}@amazon\.com

###### 摘要

先前的KV缓存压缩方案通过实验表明,解码过程中提示缓存存在部分冗余,丢弃或汇总条目后准确率损失很小。我们探究这种冗余的*何时*和*何种形式*。在哪些层、经过多少解码步骤后、以及以何种形式,可以替换提示跨度的KV缓存而不破坏任务?一项在层截断和解码步骤上进行扫描的受控拼接干预表明,这种冗余关乎*形式*(聊天模板支架)而非内容。用用户内容为中性填充物的聊天模板支架的KV缓存替换上层提示跨度KV缓存,可恢复接近完整准确率;而将相同位置清零则准确率崩溃。这种分离现象在Qwen3、Gemma3和Llama3系列模型以及多个数据集上得到复现。

探究提示KV缓存:何时变得可弃

Vinayshekhar Bannihatti Kumar Manoj Ghuhan Arivazhagan††感谢:同等贡献。Disha Makhija††footnotemark:Rashmi GangadharaiahAWS AI Labs\{vinayshk,mghuhan,dismakhi,rgangad\}@amazon\.com

## 1 引言

越来越多的研究暗示,LLM在前向传播的不同阶段对提示的使用方式不同。注意力集中在前几个位置作为位置汇点(Xiao et al., 2024 (https://arxiv.org/html/2605.30574#bib.bib1));同样的巨大激活值解释了中层压缩低谷(Queipo-de-Llano et al., 2025 (https://arxiv.org/html/2605.30574#bib.bib2));上下文内演示被总结为紧凑的内部任务向量和函数向量(Hendel et al., 2023 (https://arxiv.org/html/2605.30574#bib.bib11); Todd et al., 2024 (https://arxiv.org/html/2605.30574#bib.bib12));而跨提示KV替换攻击表明,通过用另一个提示的KV覆盖缓存中所有层的尾部令牌位置,可以劫持生成过程(Ganesh et al., 2025 (https://arxiv.org/html/2605.30574#bib.bib3)),但该工作研究的是攻击可行性而非缓存编码的内容。KV缓存压缩方案(Cai et al., 2024 (https://arxiv.org/html/2605.30574#bib.bib4); Li et al., 2024 (https://arxiv.org/html/2605.30574#bib.bib5); Zhang et al., 2023 (https://arxiv.org/html/2605.30574#bib.bib6); Ge et al., 2024 (https://arxiv.org/html/2605.30574#bib.bib7); Liu et al., 2023 (https://arxiv.org/html/2605.30574#bib.bib8))更进一步,通过实验表明,大量提示缓存可以被丢弃或汇总,而准确率损失很小,这表明存在部分冗余。然而,每项工作都仅在狭窄范围内探讨这个问题(四个汇点令牌、BOS令牌激活值、单一任务向量、与一个捐赠对的全层或全无交换,或特定的剪枝策略),并留下一个开放问题:何时以及用何种替换,可以替换提示跨度KV缓存:在哪些层、经过多少解码步骤后、以及使用何种捐赠内容?答案决定了压缩方案是必须保留条目、丢弃条目,还是替换为占位符。

我们通过一项受控的拼接干预来解决这个问题,该干预在层截断和解码步骤上进行扫描,使用的捐赠缓存保留了提示的*形式*(聊天模板支架)和*内容

相似文章

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

Hugging Face Daily Papers

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

llama.cpp 有一个加速 KV 缓存解码的巧妙技巧

Reddit r/LocalLLaMA

llama.cpp 的 webUI 中有一个设置,它会将生成的 token 重新发送到 KV 缓存,从而显著减少提示处理延迟,提高长生成或工具调用的响应速度,且没有明显的权衡。