概述 Cascade Attention(级联注意力)是 vLLM 推理引擎中针对多请求共享长前缀场景的一种注意力优化技术。它将标准 attention 拆解为 prefix(前缀)和 suffix(后缀)两个阶段,显著降低 KV cache 的全局内存读取量,在共享 system prompt 的批量推理场景中可实现最高数十倍的 attention 加速。
本文将深入剖析 cascade attention 的设计思想、使用方式、适用场景、实现原理,并与 FlashAttention、FlashDecoding 等其他优化技术进行对比。
一、Cascade Attention 的核心思想 标准 Attention 的冗余 在大语言模型的批量推理中,多个请求往往共享一个较长的 system prompt。例如:
Chatbot 场景:所有请求共享 “You are a helpful assistant…” 等 system prompt Document QA:多用户对同一篇文档提问,文档内容为公共前缀 Self-Consistency:对同一 prompt 采样多条推理路径 标准 attention 的处理方式是每个 request 独立计算其完整的注意力——包括共享的 system prompt。这意味着同一份前缀 KV cache 被重复加载多次。
Cascade 的拆解思路 Cascade attention 将一次 attention 计算拆成三步:
Prefix 阶段:将所有请求的 query 拼成一个"大序列",对共享前缀做一次非因果(bidirectional)attention Suffix 阶段:每个请求各自对其独有的后缀做因果(causal)attention Merge:通过 LSE(log-sum-exp)rescaling 将两阶段结果加权合并 数学上等价于标准 attention,但计算量和显存带宽需求大幅降低。
...