<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Cascade Attention on Richelieu's Blog</title><link>https://beaiera.top/tags/cascade-attention/</link><description>Recent content in Cascade Attention on Richelieu's Blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 01 Jun 2026 10:50:00 +0800</lastBuildDate><atom:link href="https://beaiera.top/tags/cascade-attention/index.xml" rel="self" type="application/rss+xml"/><item><title>vLLM Cascade Attention：用法、场景与原理解析</title><link>https://beaiera.top/posts/vllm-cascade-attention/</link><pubDate>Mon, 01 Jun 2026 10:50:00 +0800</pubDate><guid>https://beaiera.top/posts/vllm-cascade-attention/</guid><description>&lt;h2 id="概述"&gt;概述&lt;/h2&gt;
&lt;p&gt;Cascade Attention（级联注意力）是 vLLM 推理引擎中针对&lt;strong&gt;多请求共享长前缀&lt;/strong&gt;场景的一种注意力优化技术。它将标准 attention 拆解为 prefix（前缀）和 suffix（后缀）两个阶段，显著降低 KV cache 的全局内存读取量，在共享 system prompt 的批量推理场景中可实现最高数十倍的 attention 加速。&lt;/p&gt;
&lt;p&gt;本文将深入剖析 cascade attention 的设计思想、使用方式、适用场景、实现原理，并与 FlashAttention、FlashDecoding 等其他优化技术进行对比。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="一cascade-attention-的核心思想"&gt;一、Cascade Attention 的核心思想&lt;/h2&gt;
&lt;h3 id="标准-attention-的冗余"&gt;标准 Attention 的冗余&lt;/h3&gt;
&lt;p&gt;在大语言模型的批量推理中，多个请求往往共享一个较长的 system prompt。例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chatbot 场景&lt;/strong&gt;：所有请求共享 &amp;ldquo;You are a helpful assistant&amp;hellip;&amp;rdquo; 等 system prompt&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Document QA&lt;/strong&gt;：多用户对同一篇文档提问，文档内容为公共前缀&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Self-Consistency&lt;/strong&gt;：对同一 prompt 采样多条推理路径&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;标准 attention 的处理方式是每个 request 独立计算其完整的注意力——包括共享的 system prompt。这意味着&lt;strong&gt;同一份前缀 KV cache 被重复加载多次&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="cascade-的拆解思路"&gt;Cascade 的拆解思路&lt;/h3&gt;
&lt;p&gt;Cascade attention 将一次 attention 计算拆成三步：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Prefix 阶段&lt;/strong&gt;：将所有请求的 query 拼成一个&amp;quot;大序列&amp;quot;，对共享前缀做一次非因果（bidirectional）attention&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Suffix 阶段&lt;/strong&gt;：每个请求各自对其独有的后缀做因果（causal）attention&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Merge&lt;/strong&gt;：通过 LSE（log-sum-exp）rescaling 将两阶段结果加权合并&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;数学上等价于标准 attention，但计算量和显存带宽需求大幅降低。&lt;/p&gt;</description></item></channel></rss>