论文

让每个词元都发挥作用:通过 KV 缓存驱逐提高长上下文性能

Make Each Token Count: Towards Improving Long-Context Performance with KV Cache Eviction

模型推理KV Cache

摘要

键值 (KV) 缓存是长上下文推理中的主要瓶颈,其中内存和计算量随着序列长度而增长。现有的 KV 驱逐方法降低了这种成本,但通常会降低相对于全缓存推理的性能。我们的主要见解是,全缓存注意力并不总是最佳的:在长上下文中,不相关的标记可能会稀释有用证据的注意力,因此选择性的、可学习的驱逐可以改善生成,而不仅仅是近似完整缓存。我们引入了一种基于全局保留的 KV 驱逐方法,该方法可以在统一的内存预算下学习每个词元的未来效用。轻量级保留门将效用分数分配给缓存的 KV 条目,并且共享的最终评分投影在所有层和头中校准这些分数。这实现了单一的全局逐出策略,其中来自不同层、头和模式的词元直接竞争缓存容量。我们进一步提供的理论分析表明,优先保留有用的标记可以减少注意力稀释,并且我们证明几何保留作为未来效用的与查询无关的代理是合理的。在不同的长上下文语言和视觉语言推理以及多轮对话基准测试中,我们的方法大大减少了 KV 内存,同时匹配或超越了全缓存推理。这些结果表明,学习的、全局校准的 KV 驱逐不仅是一种压缩技术,而且还是一种改进长上下文推理的机制。