KVEraser的核心思路非常巧妙:不重建整个后缀,而是只替换删除区间对应的KV状态,用一个学习得到的“转向块”来补偿后缀中残留的污染。具体来说,给定原始上下文 x = p ⊕ e ⊕ s,其中 p 是前缀,e 是要删除的区间,s 是后缀。保留前缀的KV缓存不变,后缀的KV缓存也原封不动地复用,仅对 e 区间的位置生成新的KV向量作为替代。
这个“转向块”由一个可训练的eraser模块 Eφ 生成。它实际上是原生成模型backbone的一份可训练拷贝(去掉语言模型头)。输入是前缀的KV缓存和删除区间 e 的原始文本,输出对应位置的新key和value。训练目标是让从这个替代缓存出发的解码行为,尽可能接近从干净编辑后的上下文X = p ⊕ s出发的解码行为。
为什么这个局部编辑能起作用?考虑注意力机制:后缀中的token原本是在包含 e 的前缀下计算的,它们与 e 的交互已经编码进了自身的KV状态。直接重用这些后缀,污染自然存在。但eraser生成的新 e 区间KV块,作为一个可调节的缓冲界面,可以在自注意力层中调整整体注意力分布,从而有效抑制 e 对后续token的影响。论文给出了一个直观的公式(具体可看原论文 Section 4.1):
期望效果:新 e 区间的贡献 ≈ 精确编辑下后缀的贡献 − 被污染下后缀的实际贡献。也就是说,转向块学习去“填补”两个后缀注意力之间的差异。
这种设计的计算复杂度优势很明显。精确重算需要重跑整个后缀 s,注意力成本为 O(|s|(|p|+|s|))。而KVEraser只构建删除区间 e(通常很短)的转向块,成本为 O(|e|(|p|+|e|))。当 |e| ≪ |s| 时,提速非常可观。而且缓存长度不变,位置编码(RoPE,Rotary Position Embedding)无需调整,复用起来非常自然。
两阶段训练:从广撒网预训练到精准任务微调
训练KVEraser的最大挑战是缺乏大规模的上下文擦除标注数据。论文巧妙设计了一个两阶段训练策略。
第一阶段:连续预训练——基于跨度邻居检索。利用海量Wikipedia文本,随机插入一段100 token的文本作为要删除的区间 e,然后要求模型根据一个锚点字符串检索其相邻文本。如果锚点紧挨着 e,那么检索目标就跨越了删除区间,模型必须学会忽略 e 才能正确完成检索。如果锚点在保留上下文中,则要求模型不受干扰地访问未删除信息。这样迫使eraser学会“压制删除区间影响”和“保持其他信息可用”之间的平衡。最终构造了80K个预训练样本。
第二阶段:任务特定微调。在两个下游任务上微调:一个是控制性的多值针锋相对(NIAH)基准,插入两个具有相同key但不同value的魔法数字,要求擦除较早的那个;另一个是长文档问答中的误导性事实擦除,从Natural Questions、TriviaQA、HotpotQA中构造样本,插入误导性文本块使得模型出错,然后训练eraser擦除该块。整个微调数据集约7.5K样本,覆盖1K~32K上下文长度。
[1] Mufei Li, Shikun Liu, Dongqi Fu, Haoyu Wang, Yinglong Xia, Hong Li, Hong Yan, Pan Li. "KVEraser: Learning to Steer KV Cache for Efficient Localized Context Erasing". arXiv:2606.17034, 2026.[2] Kwon et al. "Efficient Memory Management for Large Language Model Serving with PagedAttention". SOSP 2023.[3] Gim et al. "Prompt Cache: Modular Attention Reuse for Low-Latency Inference". MLSys 2024.[4] Hu et al. "EPIC: Enhanced Position-Independent Cache for Long-Context Reasoning". ICLR 2025.[5] Qian et al. "In-Context Forgetting: Can LLMs Forget the Right Information?". 2026.