<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>PagedAttention on Bevisy's Blogs</title><link>https://bevisy.github.io/tags/pagedattention/</link><description>Recent content in PagedAttention on Bevisy's Blogs</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 27 Jul 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://bevisy.github.io/tags/pagedattention/index.xml" rel="self" type="application/rss+xml"/><item><title>LLM 术语全景图（五）：推理优化——从推测解码到 Flash Attention</title><link>https://bevisy.github.io/p/llm-terminology-05-inference-optimization/</link><pubDate>Mon, 27 Jul 2026 10:00:00 +0800</pubDate><guid>https://bevisy.github.io/p/llm-terminology-05-inference-optimization/</guid><description>&lt;img src="https://bevisy.github.io/p/llm-terminology-05-inference-optimization/05.png" alt="Featured image of post LLM 术语全景图（五）：推理优化——从推测解码到 Flash Attention" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;这是「大模型训练与推理术语全景图」系列的第 5 篇，覆盖推理优化的 5 个概念：Speculative Decoding、PagedAttention、Continuous Batching、Quantization（总览）、Flash Attention。
主要参考框架/论文：vLLM、FlashAttention、Orca、DeepSeek V3 MTP&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="开篇推理优化的两个方向"&gt;开篇：推理优化的两个方向
&lt;/h2&gt;&lt;p&gt;推理优化沿两个方向展开。第一是减少单位计算的代价：Flash Attention 通过 tiling 重排注意力计算的内存访问模式，把 HBM 与 SRAM 之间的读写复杂度从 O(n²) 降到 O(n²/M)，不改变注意力的数学结果；Quantization 把权重/激活从 BF16 降到 INT8/INT4/FP8，直接压低显存占用和每步访存量。第二是提高 GPU 利用率：PagedAttention 把 KV Cache 切成固定 block 按需分配，消除碎片让显存利用率从 ~20% 提升到 ~96%；Continuous Batching 在每个 iteration 动态进出请求，避免短序列空等长序列；Speculative Decoding 用小模型先起草、大模型并行验证，减少 decode 步数。本篇按这两个方向梳理 5 个推理优化术语。&lt;/p&gt;
&lt;h2 id="推理优化inference-optimization"&gt;推理优化（Inference Optimization）
&lt;/h2&gt;&lt;h3 id="speculative-decoding"&gt;Speculative Decoding
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;缩写&lt;/strong&gt;：SpecDec / 推测解码&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;中文名称&lt;/strong&gt;：推测解码&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;简短介绍&lt;/strong&gt;：用小模型（draft model）快速生成候选 token，大模型（target model）并行验证，接受正确的候选 token 以加速推理。典型加速 2-3 倍，输出完全无损。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;详细介绍&lt;/strong&gt;：推测解码的工作流程：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Draft：小模型快速生成 k 个候选 token {t_1, t_2, &amp;hellip;, t_k}&lt;/li&gt;
&lt;li&gt;Verify：大模型一次前向传播，并行计算这 k 个 token 的概率&lt;/li&gt;
&lt;li&gt;Accept/Reject：对每个候选 token，如果大模型也认为正确则接受，否则从拒绝点重新采样&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;关键性质：输出分布与纯大模型生成完全一致（无损），通过拒绝采样保证数学等价。&lt;/p&gt;
&lt;p&gt;变体：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;标准 SpecDec：独立的小模型作为 draft&lt;/li&gt;
&lt;li&gt;MTP 推测：DeepSeek V3/R1 用训练时 MTP 模块作为内置 draft model&lt;/li&gt;
&lt;li&gt;Medusa：多头并行预测&lt;/li&gt;
&lt;li&gt;EAGLE：在隐空间而非 token 空间做推测&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;vLLM 中的使用：
&amp;ndash;speculative-config=&amp;rsquo;{&amp;ldquo;method&amp;rdquo;: &amp;ldquo;deepseek_mtp&amp;rdquo;, &amp;ldquo;num_speculative_tokens&amp;rdquo;: 1}'&lt;/p&gt;
&lt;p&gt;性能：典型场景加速 2-3x，但加速比取决于 draft 模型的接受率（accept rate）。&lt;/p&gt;
&lt;p&gt;注意：推测解码目前与 Pipeline Parallelism 不兼容（vLLM V1 已部分解决）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;关联论文/模型&lt;/strong&gt;：&amp;ldquo;Speculative Decoding&amp;rdquo; (Leviathan et al., 2023, arXiv:2211.17192)；DeepSeek V3 MTP (技术报告)；EAGLE、Medusa&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;权威分析链接&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/notebooks/inference/mtp.html" target="_blank" rel="noopener"
 &gt;https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/notebooks/inference/mtp.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://docs.vllm.ai/en/latest/features/spec_decode.html" target="_blank" rel="noopener"
 &gt;https://docs.vllm.ai/en/latest/features/spec_decode.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="pagedattention"&gt;PagedAttention
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;缩写&lt;/strong&gt;：—&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;中文名称&lt;/strong&gt;：分页注意力&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;简短介绍&lt;/strong&gt;：vLLM 提出的 KV Cache 管理方法，将 KV Cache 分为固定大小的块（page），按需分配，类似操作系统的虚拟内存分页机制，大幅减少显存碎片和浪费。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;详细介绍&lt;/strong&gt;：PagedAttention 的设计：&lt;/p&gt;
&lt;p&gt;传统方式：为每个序列预分配最大长度的连续 KV Cache 空间
问题：实际序列通常远短于最大长度，造成大量显存浪费和碎片&lt;/p&gt;
&lt;p&gt;PagedAttention：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将 KV Cache 分为固定大小的 block（如 16 token/block）&lt;/li&gt;
&lt;li&gt;每个序列维护一个 block table（类似页表），映射逻辑位置到物理 block&lt;/li&gt;
&lt;li&gt;按需分配 block，不需要预分配最大长度&lt;/li&gt;
&lt;li&gt;显存利用率从 ~20% 提升到 ~96%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;优势：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;支持更大的 batch size（更多并发请求）&lt;/li&gt;
&lt;li&gt;允许变长序列（无需预知长度）&lt;/li&gt;
&lt;li&gt;支持共享 KV（如 beam search 共享 prefix）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;PagedAttention 是 vLLM 高吞吐推理的核心技术，已被广泛集成到主流推理框架。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;关联论文/模型&lt;/strong&gt;：&amp;ldquo;Efficient Memory Management for LLMs with PagedAttention&amp;rdquo; (Kwon et al., 2023, arXiv:2309.06180)；vLLM&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;权威分析链接&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://docs.vllm.ai/" target="_blank" rel="noopener"
 &gt;https://docs.vllm.ai/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="continuous-batching"&gt;Continuous Batching
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;缩写&lt;/strong&gt;：—&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;中文名称&lt;/strong&gt;：连续批处理 / 动态批处理&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;简短介绍&lt;/strong&gt;：在推理过程中动态插入新请求和移除已完成请求，而非等待整个 batch 全部完成。与 PagedAttention 配合实现高吞吐推理。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;详细介绍&lt;/strong&gt;：传统静态批处理 vs 连续批处理：&lt;/p&gt;
&lt;p&gt;静态批处理：batch 中最长的序列决定整个 batch 的等待时间，短序列 GPU 空闲
连续批处理：每个 iteration 检查 batch，完成的请求移出，新请求加入&lt;/p&gt;
&lt;p&gt;配合 PagedAttention，不同序列可以不同长度、不同阶段（prefill/decode 混合），实现 GPU 持续高利用率。&lt;/p&gt;
&lt;p&gt;vLLM、TGI、SGLang 等推理框架均采用连续批处理作为基础调度策略。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;关联论文/模型&lt;/strong&gt;：vLLM (arXiv:2309.06180)；Orca (OSDI 2022)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;权威分析链接&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://docs.vllm.ai/" target="_blank" rel="noopener"
 &gt;https://docs.vllm.ai/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="quantization"&gt;Quantization
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;缩写&lt;/strong&gt;：Quant / 量化&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;中文名称&lt;/strong&gt;：模型量化&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;简短介绍&lt;/strong&gt;：将模型参数从高精度（FP32/FP16/BF16）降至低精度（INT8/INT4/FP8），减少显存占用和推理延迟。分为训练后量化（PTQ）和量化感知训练（QAT）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;详细介绍&lt;/strong&gt;：主要量化方案：&lt;/p&gt;
&lt;p&gt;按精度：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;FP8：Hopper GPU 原生支持，几乎无损&lt;/li&gt;
&lt;li&gt;INT8：W8A8（权重和激活都 INT8），精度损失较小&lt;/li&gt;
&lt;li&gt;INT4：W4A16（权重 INT4，激活 FP16），显存大幅减少但需要校正&lt;/li&gt;
&lt;li&gt;GGUF：llama.cpp 格式，支持 2-8 bit 量化&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;按方法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PTQ（Post-Training Quantization）：训练后直接量化，简单快速
&lt;ul&gt;
&lt;li&gt;GPTQ：基于二阶信息的逐层量化&lt;/li&gt;
&lt;li&gt;AWQ：保护重要权重的激活感知量化&lt;/li&gt;
&lt;li&gt;SmoothQuant：将量化难度从激活转移到权重&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;QAT（Quantization-Aware Training）：训练时模拟量化，精度更高但需训练&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;实际效果（以 70B 模型为例）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BF16：~140 GB（需 2×A100 80GB）&lt;/li&gt;
&lt;li&gt;INT8：~70 GB（1×A100 80GB）&lt;/li&gt;
&lt;li&gt;INT4：~35 GB（1×A100 40GB 可行）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;趋势：FP8 量化成为 Hopper/Blackwell GPU 上的主流选择，近乎无损且硬件原生支持。&lt;/p&gt;
&lt;p&gt;本条为量化总览，按精度和按方法的分类到此为止；具体量化方法（GPTQ / AWQ / SmoothQuant / FP8 详析等）见篇 8。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;关联论文/模型&lt;/strong&gt;：GPTQ (arXiv:2210.17323)；AWQ (arXiv:2306.00978)；SmoothQuant (arXiv:2211.10438)；llama.cpp GGUF&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;权威分析链接&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://docs.vllm.ai/en/latest/features/quantization/" target="_blank" rel="noopener"
 &gt;https://docs.vllm.ai/en/latest/features/quantization/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="flash-attention"&gt;Flash Attention
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;缩写&lt;/strong&gt;：FA / FlashAttn&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;中文名称&lt;/strong&gt;：闪存注意力&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;简短介绍&lt;/strong&gt;：通过重新组织注意力计算的内存访问模式，减少 GPU HBM 和 SRAM 之间的读写次数，在不改变注意力数学结果的情况下加速计算 2-4 倍。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;详细介绍&lt;/strong&gt;：Flash Attention 的核心思想：&lt;/p&gt;
&lt;p&gt;问题：标准注意力的中间矩阵 (Q·K^T) 大小为 n×n，远超 GPU SRAM 容量，需频繁读写 HBM
方案：将 Q/K/V 分块加载到 SRAM，计算局部注意力并累积结果，避免实例化完整 n×n 矩阵&lt;/p&gt;
&lt;p&gt;关键技术：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Tiling：将 Q/K/V 分块，每次处理一个块&lt;/li&gt;
&lt;li&gt;Recomputation：反向传播时不存储中间矩阵，重新计算（省显存但略增计算）&lt;/li&gt;
&lt;li&gt;Online Softmax：分块计算 softmax 的数值稳定算法&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;性能：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;前向传播：减少 HBM 读写，IO 复杂度从 O(n^2) 降至 O(n^2 / M)，M 为 SRAM 大小&lt;/li&gt;
&lt;li&gt;反向传播：不存储 attention matrix，显存从 O(n^2) 降至 O(n)&lt;/li&gt;
&lt;li&gt;实测加速：2-4x（取决于序列长度和硬件）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Flash Attention 已成为 LLM 训练和推理的标准组件，PyTorch 2.0+ 内置支持。&lt;/p&gt;
&lt;p&gt;版本演进：FA1 (2022) → FA2 (2023, 更高效) → FA3 (2024, 支持 FP8)&lt;/p&gt;
&lt;p&gt;注意：Flash Attention 是计算优化，不改变注意力的数学结果。与稀疏注意力（DSA/SWA）是正交概念——前者优化&amp;quot;怎么算&amp;quot;，后者改变&amp;quot;算什么&amp;quot;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;关联论文/模型&lt;/strong&gt;：&amp;ldquo;FlashAttention: Fast and Memory-Efficient Exact Attention&amp;rdquo; (Dao et al., 2022, arXiv:2205.14135)；FlashAttention-2 (Dao, 2023)；FlashAttention-3 (2024)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;权威分析链接&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/Dao-AILab/flash-attention" target="_blank" rel="noopener"
 &gt;https://github.com/Dao-AILab/flash-attention&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="本篇小结"&gt;本篇小结
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Speculative Decoding（推测解码）&lt;/strong&gt; 用 draft model 起草、target model 并行验证，输出分布通过拒绝采样与纯大模型生成数学等价（无损），典型加速 2-3x；与 Pipeline Parallelism 不兼容，vLLM V1 已部分解决。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PagedAttention&lt;/strong&gt; 把 KV Cache 切成固定 block 按需分配，配 block table 类比操作系统的虚拟内存分页，显存利用率从 ~20% 提升到 ~96%，是 vLLM 高吞吐的核心。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Continuous Batching&lt;/strong&gt; 在每个 iteration 动态进出请求，配合 PagedAttention 让 prefill/decode 混合、变长序列共存，GPU 持续高利用率；源自 Orca (OSDI 2022)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quantization&lt;/strong&gt; 按精度（FP8/INT8/INT4/GGUF）和按方法（PTQ vs QAT）两条轴分类；70B 模型 BF16 ~140GB / INT8 ~70GB / INT4 ~35GB；具体量化方法见篇 8。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flash Attention&lt;/strong&gt; 用 tiling + online softmax 把 IO 复杂度从 O(n²) 降到 O(n²/M)（M 为 SRAM 大小），是计算优化而非改变注意力数学；与稀疏注意力（DSA/SWA）正交——前者优化&amp;quot;怎么算&amp;quot;，后者改变&amp;quot;算什么&amp;quot;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本系列共 11 篇，本文是第 5 篇。&lt;/p&gt;</description></item></channel></rss>