今日 Attention 论文:有状态 Transformer 的流式推理
论文信息
- 标题:Attention Once Is All You Need: Efficient Streaming Inference with Stateful Transformers
- 作者:Victor Norgren
- arXiv:2605.13784v1
- 提交日期:2026-05-13
- 分类:cs.LG
- 链接:https://arxiv.org/abs/2605.13784
本文基于 arXiv metadata 与摘要,不等同于完整复现评审。下面只把它作为一篇新近预印本的前沿动态来读,不把摘要中的结果扩展成确定结论。
为什么选这篇
这篇论文直接击中大模型 attention 推理里一个很具体的痛点:当输入上下文持续增长,而用户只是在不断提出新查询时,传统请求驱动的推理引擎往往会在每次请求上重新支付与上下文长度相关的预填充开销。摘要把这个问题放在 streaming workloads 场景中,例如数据连续到达、查询随时探测一个越来越长的上下文。
它值得关注,不是因为提出了一个新的注意力算子,而是因为它把 KV cache、prefill、continuous batching 与多租户调度放到同一个系统模型里讨论。对长上下文 LLM 服务来说,attention 的瓶颈不只在理论复杂度,也在状态是否能被持续保留、更新和调度。
它试图解决的问题
常规 transformer 推理通常以“请求”为边界:一次请求带来一段上下文,引擎完成预填充,再生成答案。这个模型适合一次性问答,但不适合上下文持续流入的任务。只要上下文越来越长,每次查询都可能被 O(n) 级别的预填充拖慢,其中 n 是已积累上下文长度。
论文试图把系统边界从“请求”改成“会话”。在有状态会话中,KV cache 不是请求结束就丢弃的临时产物,而是随着新数据到达被增量推进的持久状态。这样,查询阶段理论上只需要处理查询本身,摘要称其延迟变为 O(|q|),与累计上下文长度解耦。
方法拆解
核心想法可以拆成三层。
- Stateful sessions:系统为连续数据流维护持久 KV cache。新数据到达时就提前完成对应的 attention 状态更新,把传统请求路径里的 prefill 移到关键路径之外。这里的“Attention Once”更像是一个系统口号:已经进入会话状态的历史上下文,不应在每个查询里被反复处理。
- Flash Queries:摘要描述它利用数据到达之间的 GPU 空闲周期,对注册好的问题提前求值,并在用户真正发问前缓存答案。这个设计依赖状态不被丢弃;如果引擎是无状态的,请求之间没有可复用中间状态,就很难自然支持这种预计算。
- 调度层:论文提到多租户 continuous-batching scheduler、cell-budget admission 和 prefix-aware grouped prefill,用来让几十个有状态会话共用单张 GPU,同时仍保留完整的二次 self-attention。
也就是说,作者没有把优化建立在稀疏化或近似 attention 上,而是把重点放在何时计算、如何保存、如何批处理。
实验和证据
摘要给出的实验场景是 streaming market-data benchmarks,并称参考实现相对 vLLM、SGLang、TensorRT-LLM、llama.cpp 等常规推理引擎最高取得 5.9x speedup。同时,摘要声称当累计上下文增长时,查询延迟保持稳定。
这些证据如果在正文中有充分细节,会支持一个重要判断:在流式长上下文场景里,系统状态管理可能比单次 attention kernel 的优化更决定用户可感知延迟。
不过这里仍要谨慎。摘要没有展开基准规模、模型大小、上下文长度分布、注册查询形态、GPU 利用率和服务等级约束,因此目前只能把这些数字视为作者报告的初步结果。
局限和疑点
第一个疑点是适用场景。Flash Queries 需要“可注册的问题”,也需要数据到达之间存在可利用的空闲 GPU 周期。对完全临时、不可预测的自由问答,这个收益可能会收窄。
第二个疑点是状态生命周期。持久 KV cache 能降低重复预填充,但也会占用显存,并带来会话淘汰、隔离、恢复和一致性问题。摘要提到 cell-budget admission,但还不足以判断在高并发或长时间运行下的尾延迟表现。
第三个疑点是评测外推。streaming market-data 是很典型的连续数据场景,却不代表所有长上下文任务。代码分析、客服对话、企业知识库监控等任务是否能得到类似收益,还需要更多工作负载验证。
和大模型注意力演进的关系
过去一段时间,长上下文 attention 的演进常见两条线:一条是改变计算形式,例如 sparse attention、linear attention、sliding window attention;另一条是优化服务状态,例如 KV cache 复用、prefix cache、paged attention 和 prefill/decode 解耦。
这篇论文更靠近第二条线。它没有急于减少 self-attention 的数学计算,而是重新定义流式推理中的计算时机:历史上下文到达时就推进状态,查询到来时只消费已经维护好的状态。这个方向提醒我们,LLM attention 的效率问题并不总是“算得更少”,有时是“别在错误的时间重复算”。
如果后续正文和开源实现能证明这种有状态模型在更广泛负载下稳定工作,它可能会影响长上下文服务接口的设计:从一次性 prompt API,逐步走向可持续更新、可预注册查询、可被调度器理解的 session API。
一句话判断
这是一篇把 KV cache 从请求级缓存提升为流式会话状态的系统论文,亮点在于重新安排 attention 预填充的位置;但目前仍应按新 arXiv 预印本看待,关键价值取决于更多负载下的复现和调度细节。