Skip to content
AI-Daily-Builder

arXiv 2606.04302·2026-06-07 次浏览

LazyAttention:与位置无关的 KV 重用,解开 RAG 缓存瓶颈

Haocheng Xia, Mihir Pamnani, Hanxi Fang, Supawit Chockchowwat, Yongjoo Park · University of Illinois Urbana-Champaign (DAIS group)

ICML 2026 的一篇新论文 LazyAttention(arXiv:2606.04302)处理了 KV 缓存在检索增强生成中的一项顽固限制:由于位置信息被烘焙进缓存,在某个位置缓存的块无法在另一个位置重用。作者将位置编码延后到注意力核心本身执行,让单一份物理 KV 副本能服务多个逻辑位置,且零复制。在偏斜的文档工作负载上,他们报告相较于 Block-Attention,首字延迟(TTFT)快 1.37x、吞吐量高 1.40x,且质量相当。

arxiv.org/abs/2606.04302 ↗


这篇论文在谈什么

键值(KV)缓存是让大型语言模型推理加速的标准技巧:一个 token 一旦被处理过,它的 key 与 value 向量就会被存储起来,从此不必重新计算。在像检索增强生成(RAG)与情境内学习这类长上下文情境中,缓存更显重要,因为同样的参考文档会一遍又一遍地喂给模型。

但有个陷阱。传统 KV 缓存会把位置信息直接烘焙进所存储的向量里。这代表一个在位置 1 被缓存的文档块,无法直接被放进另一个提示的位置 3 ——位置不再对得上。论文「LazyAttention: Efficient Retrieval-Augmented Generation with Deferred Positional Encoding」(arXiv:2606.04302,于 2026 年 6 月 3 日投稿,获 ICML 2026 接受,作者为伊利诺伊大学厄巴纳-香槟分校的 Haocheng Xia、Mihir Pamnani、Hanxi Fang、Supawit Chockchowwat 与 Yongjoo Park)正是针对这道可重用性的高墙。

核心构想

如今的权宜做法分为两派。一派把重用限制在共享前缀上(如果每个请求都以相同的样板开头就没问题,但一旦被检索到的块位置重新洗牌就毫无用处)。另一派则通过在内存中物化一份全新的缓存副本来重新编码位置,这在时间与带宽上都很昂贵。

LazyAttention 的做法是干脆完全不把位置写进缓存,而是延后套用位置编码——在计算过程中于注意力核心内部「即时」进行。作者将此描述为把延后的位置编码核心化,以取得「零复制、与位置无关的 KV 重用」。由于位置是在计算时注入,单一份物理 KV 副本就能服务许多位于任意位置的逻辑请求,而无须复制。他们为推理的两个阶段各自打造了经过调校的核心:预填充(消化提示)与解码(一次生成一个 token)。

为何重要

RAG 与代理式管线正是服务成本悄悄堆积之处:同样那一小撮热门文档会被许多用户、许多查询反复检索,但传统缓存在这些块落到新位置时都会强迫重新处理。这篇论文报告的增益是在偏斜的文档分布下、相对于近期最先进的重用方法 Block-Attention 测量得到——也就是少数文档很热、多数文档很冷的现实情境。

指标相较于 Block-Attention 报告的增益
首字延迟(TTFT)降低 1.37x
推理吞吐量提升 1.40x
输出质量「相当」(依摘要所述)

对于想看穿标题数字的人,有两点值得标注。第一,这些改善是在偏斜的文档分布下宣称的;一个块重用很少的均匀工作负载应该会缩小差距,因为可供共享的缓存较少。第二,摘要把质量报告为「相当」而非完全相同——延后位置编码是一种架构上的介入,所以在采用之前正确的做法是重新跑你自己针对任务的评测,而不是信任单一份质量摘要。

实务者备注

如果你经营一个 RAG 服务,而你的检索分布是重尾的(一小组常青文档占主导),这就是那种不必动到模型权重或重新训练就能收效的优化。要问你的服务堆栈的实务问题是:它只重用共享前缀,还是无论被检索到的块出现在提示的哪个位置都能重用?LazyAttention 正是瞄准后者。把 1.37x 与 1.40x 这两个数字当成与偏斜程度绑定的偏上界,在你自己的基准上验证质量,并在规划迁移之前检查这种核心做法是否与你的位置编码方案兼容。

一个未被充分考量的角度

关于 LLM 服务成本的公开讨论大多执着于前缀缓存与更长的上下文窗口,但检索系统中更锋利的杠杆其实是位置可重用性——也就是把已缓存的块当成可移动的对象,而非黏死在它最初被看见之处的能力。这个重新框架有一个少有团队编入预算的下游后果:它把心力从压榨模型,转移到设计检索层、好让热门块真的会重复出现。一个与位置无关的缓存,唯有在你的检索器产生足够的重复来填满它时,才值得它带来的复杂度;这项优化与检索分布的形状是耦合的,只评估其中一者而不顾另一者,会在真实世界的节省上误导你。

请喝咖啡