论文
KVFetch:为压缩KV缓存补充时序预取
KVFetch: Temporal Prefetching for the Missing Half of KV Cache Compression
摘要
随着上下文窗口扩展到数万或数十万个Token,KV 缓存压缩对于高效的 LLM 推理变得至关重要。现有的方法分为三类:基于分数的驱逐、汇总补偿以及卸载和召回。然而,这三者都根据与当前查询的内容相关性来决定保留或回忆什么。我们证明这种共享设计在结构上是不完整的。缓存支持两种访问模式:按内容关联查找和按位置顺序遍历;当前的压缩器仅实现第一个。在实践中,差距很重要:检索增强生成、代码完成和结构化数据提取都要求模型从上下文中逐字重现标识符、字段值或代码标记。在压缩下,基于内容的逐出保留了此类序列的头部,但丢弃了其后续部分,导致逐字复制在中途不可逆地中断,我们将这种故障称为顺序遗忘。这种失败阻碍了更好的评分、更大的预算、汇总补偿和动态重新评分;它是压缩下剩余质量损失的主要来源。我们提出了 KVFetch,这是一种免训练的插入式框架,可为任何基于分数的压缩器打开时间回忆通道。它将被逐出的候选者降级到量化的冷层,通过单调读指针检测主动复制,并将位置后继者预取到固定大小的热层槽中,而不会增加注意力成本。在 iso 预算控制下的 RULER-16K 上,KVFetch 将逐字复制从 0.8 恢复到 78.4,并将 13 任务平均值提高了 +8.4,增益主要集中在需要顺序访问的任务上。在 LongBench 上,没有任务需要顺序访问,通道保持休眠状态并且不产生任何成本。