<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TTFT on Bevisy's Blogs</title><link>https://bevisy.github.io/tags/ttft/</link><description>Recent content in TTFT on Bevisy's Blogs</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 27 Jul 2026 11:15:00 +0800</lastBuildDate><atom:link href="https://bevisy.github.io/tags/ttft/index.xml" rel="self" type="application/rss+xml"/><item><title>LLM 术语全景图（十）：推理服务——Prefill Decode 与性能指标</title><link>https://bevisy.github.io/p/llm-terminology-10-inference-serving/</link><pubDate>Mon, 27 Jul 2026 11:15:00 +0800</pubDate><guid>https://bevisy.github.io/p/llm-terminology-10-inference-serving/</guid><description>&lt;img src="https://bevisy.github.io/p/llm-terminology-10-inference-serving/10.png" alt="Featured image of post LLM 术语全景图（十）：推理服务——Prefill Decode 与性能指标" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;这是「大模型训练与推理术语全景图」系列的第 10 篇，覆盖推理服务与性能指标的 6 个概念：Prefill/Decode、TTFT、TPOT、Prefix Caching / RadixAttention、Chunked Prefill、Disaggregated Inference。
主要参考框架/服务：vLLM、SGLang、TGI、DeepSeek 推理服务、Sarathi-Serve、DistServe、Splitwise&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="开篇推理服务的两个阶段和两个指标"&gt;开篇：推理服务的两个阶段和两个指标
&lt;/h2&gt;&lt;p&gt;LLM 推理不是一次&amp;quot;模型前向&amp;quot;，而是两个特性截然不同的阶段。Prefill（预填充）一次性处理整个 prompt，构造 N×N 注意力矩阵、打满 GPU 算力，是 compute-bound；Decode（解码）逐 token 生成，每步都要读回全部模型权重与 KV Cache、算力利用率往往低于 5%，是 memory-bound。用户感知到的两个维度恰好对应这两阶段：TTFT（首 token 延迟）由 prefill 主导，决定&amp;quot;是不是即时响应&amp;quot;；TPOT（单 token 生成时间）由 decode 主导，决定&amp;quot;是不是流畅&amp;quot;。高效推理服务（vLLM、SGLang）的所有优化都围绕这两阶段展开——Chunked Prefill 把长 prompt 切块，避免 prefill 阻塞正在 decode 的请求；Prefix Caching 复用历史 KV，多轮对话 TTFT 降低 50-90%；Disaggregated Inference 干脆把两阶段分池部署，prefill 池高算力、decode 池高带宽，吞吐再提 30-60%。本篇按&amp;quot;两阶段 → 两指标 → 三类优化&amp;quot;的脉络梳理这 6 个术语。&lt;/p&gt;
&lt;h2 id="推理服务与性能指标inference-serving--metrics"&gt;推理服务与性能指标（Inference Serving &amp;amp; Metrics）
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;LLM 推理不是简单的&amp;quot;模型前向&amp;quot;。高效推理服务需要理解 prefill/decode 两阶段、关键延迟指标和缓存策略。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="prefilldecode"&gt;Prefill/Decode
&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;：LLM 推理分两个阶段。Prefill（预填充）一次性处理整个 prompt，计算密集（compute-bound）；Decode（解码）逐 token 生成，内存密集（memory-bound）。两阶段特性不同，优化策略也不同。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;详细介绍&lt;/strong&gt;：两阶段的本质区别：&lt;/p&gt;
&lt;p&gt;Prefill 阶段：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入：完整 prompt（N 个 token）&lt;/li&gt;
&lt;li&gt;计算：N × N 注意力矩阵 + N 层 FFN&lt;/li&gt;
&lt;li&gt;特性：compute-bound，GPU 算力打满&lt;/li&gt;
&lt;li&gt;耗时：与 prompt 长度 N 的平方成正比（注意力）+ 线性（FFN）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Decode 阶段：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入：逐个 token（1 个/步）&lt;/li&gt;
&lt;li&gt;计算：1 × N_kv 注意力（与所有历史 KV）+ N 层 FFN&lt;/li&gt;
&lt;li&gt;特性：memory-bound，需读取全部权重 + KV Cache，但计算量小&lt;/li&gt;
&lt;li&gt;耗时：与模型大小成正比（读权重的时间），与 KV Cache 大小成正比&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;为什么 decode 慢：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每生成 1 个 token 需读取全部模型权重（如 70B 模型 = 140GB BF16）&lt;/li&gt;
&lt;li&gt;H100 HBM 带宽 3.35 TB/s → 读 140GB 需 ~42ms → 仅 ~24 token/s&lt;/li&gt;
&lt;li&gt;算力远未打满（利用率可能 &amp;lt; 5%）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;优化策略差异：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prefill：Flash Attention（减少 IO）、TP（并行计算）、Chunked Prefill&lt;/li&gt;
&lt;li&gt;Decode：量化（减少权重大小 → 减少读取时间）、 batching（多请求分摊权重读取）、推测解码（减少 decode 步数）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Continuous Batching 的关键：允许不同请求同时处于 prefill 和 decode 阶段，GPU 持续高利用率。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;关联论文/模型&lt;/strong&gt;：vLLM、SGLang、TGI 等推理框架的基础概念&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/design/v1/" target="_blank" rel="noopener"
 &gt;https://docs.vllm.ai/en/latest/design/v1/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://huggingface.co/blog/martinigoyanes/llm-inference-at-scale-with-tgi" target="_blank" rel="noopener"
 &gt;https://huggingface.co/blog/martinigoyanes/llm-inference-at-scale-with-tgi&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="time-to-first-token"&gt;Time To First Token
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;缩写&lt;/strong&gt;：TTFT&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;中文名称&lt;/strong&gt;：首 Token 延迟&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;简短介绍&lt;/strong&gt;：从发送请求到收到第一个生成 token 的时间。主要由 prefill 阶段决定，是用户体验的关键指标（尤其是对话场景）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;详细介绍&lt;/strong&gt;：TTFT 的构成：&lt;/p&gt;
&lt;p&gt;TTFT = 排队延迟 + 网络延迟 + Prefill 计算时间&lt;/p&gt;
&lt;p&gt;排队延迟：请求到达时 GPU 正忙，需等待当前 batch 处理完
网络延迟：请求传输到推理服务器的时间（通常可忽略）
Prefill 计算时间：处理 prompt 的时间&lt;/p&gt;
&lt;p&gt;Prefill 时间估算：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;短 prompt（100 token）：~10-50ms&lt;/li&gt;
&lt;li&gt;中等 prompt（1K token）：~100-500ms&lt;/li&gt;
&lt;li&gt;长 prompt（10K token）：~1-5s&lt;/li&gt;
&lt;li&gt;超长 prompt（100K token）：~10-60s（无优化时）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;优化 TTFT 的方法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chunked Prefill：将长 prompt 分块处理，避免长 prefill 阻塞 decode&lt;/li&gt;
&lt;li&gt;Prefix Caching：如果多个请求共享相同前缀（如 system prompt），缓存其 KV&lt;/li&gt;
&lt;li&gt;TP：多卡并行 prefill 加速&lt;/li&gt;
&lt;li&gt;量化：减少权重读取（对长 prompt 的 FFN 计算有帮助）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;典型目标：对话场景 TTFT &amp;lt; 200ms，用户感知&amp;quot;即时响应&amp;quot;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;关联论文/模型&lt;/strong&gt;：vLLM、SGLang 推理框架；LLM 推理服务标准指标&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/design/metrics.html" target="_blank" rel="noopener"
 &gt;https://docs.vllm.ai/en/latest/design/metrics.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="time-per-output-token"&gt;Time Per Output Token
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;缩写&lt;/strong&gt;：TPOT&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;中文名称&lt;/strong&gt;：单 Token 生成时间&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;简短介绍&lt;/strong&gt;：decode 阶段平均生成一个 token 的时间。由 memory-bound 特性决定，是吞吐和延迟的关键指标。TPOT 的倒数即为单请求解码速度（token/s）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;详细介绍&lt;/strong&gt;：TPOT 的决定因素：&lt;/p&gt;
&lt;p&gt;TPOT ≈ (模型权重大小 + KV Cache 大小) / HBM 带宽&lt;/p&gt;
&lt;p&gt;示例（70B BF16, 8K 上下文, H100 80GB）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;权重：140GB&lt;/li&gt;
&lt;li&gt;KV Cache：~8GB&lt;/li&gt;
&lt;li&gt;HBM 带宽：3.35 TB/s&lt;/li&gt;
&lt;li&gt;TPOT ≈ 148GB / 3.35TB/s ≈ 44ms → ~23 token/s&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;优化 TPOT 的方法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;量化：INT4/FP8 权重 → 读取量减半/四分之一 → TPOT 减半/四分之一&lt;/li&gt;
&lt;li&gt;Batching：多请求共享一次权重读取 → 每请求均摊 TPOT 降低&lt;/li&gt;
&lt;li&gt;MLA/GQA：减少 KV Cache → 减少 KV 读取时间&lt;/li&gt;
&lt;li&gt;推测解码：一次验证多 token → 有效 TPOT 降低&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;TPOT vs 吞吐：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;单请求 TPOT：1 个请求的解码速度（用户体验）&lt;/li&gt;
&lt;li&gt;批量吞吐：batch_size / TPOT（系统效率）&lt;/li&gt;
&lt;li&gt;增大 batch 可提高吞吐但不变 TPOT（权重只需读一次，多请求共享）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;典型目标：对话场景 TPOT &amp;lt; 50ms（20+ token/s），用户感知流畅。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;关联论文/模型&lt;/strong&gt;：vLLM、SGLang 推理框架；LLM 推理服务标准指标&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/design/metrics.html" target="_blank" rel="noopener"
 &gt;https://docs.vllm.ai/en/latest/design/metrics.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="prefix-caching--radixattention"&gt;Prefix Caching / RadixAttention
&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;：缓存已计算 prompt 的 KV Cache，当新请求共享相同前缀时直接复用，跳过 prefill。SGLang 的 RadixAttention 用基数树管理缓存，实现自动 prefix 复用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;详细介绍&lt;/strong&gt;：Prefix Caching 的场景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多轮对话：每轮都包含完整历史 → 历史部分的 KV 可复用&lt;/li&gt;
&lt;li&gt;System prompt：所有请求共享同一 system prompt → 缓存其 KV&lt;/li&gt;
&lt;li&gt;Few-shot：相同示例前缀 → KV 复用&lt;/li&gt;
&lt;li&gt;Agent 工作流：多次调用中共享上下文&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;实现：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;计算每个 prompt 的 hash（基于 token 序列）&lt;/li&gt;
&lt;li&gt;新请求到达时，检查是否有前缀的 KV Cache 命中&lt;/li&gt;
&lt;li&gt;命中部分跳过 prefill，只 prefill 不命中部分&lt;/li&gt;
&lt;li&gt;新计算的 KV 也存入缓存&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;vLLM 的实现：Automatic Prefix Caching，基于 PagedAttention 的 block 管理，自动检测前缀匹配。&lt;/p&gt;
&lt;p&gt;SGLang RadixAttention：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用基数树（Radix Tree）管理 KV Cache&lt;/li&gt;
&lt;li&gt;树的每条路径代表一个 token 序列前缀&lt;/li&gt;
&lt;li&gt;新请求沿树匹配最长前缀，未命中部分分支新建&lt;/li&gt;
&lt;li&gt;LRU 淘汰策略管理缓存容量&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;效果：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多轮对话 TTFT 降低 50-90%（历史部分跳过 prefill）&lt;/li&gt;
&lt;li&gt;System prompt 场景几乎消除重复计算&lt;/li&gt;
&lt;li&gt;对 Agent 工作流（重复调用）效果显著&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;关联论文/模型&lt;/strong&gt;：&amp;ldquo;SGLang RadixAttention&amp;rdquo; (Zheng et al., 2023, arXiv:2312.07104)；vLLM Automatic Prefix Caching&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://lmsys.org/blog/2024-01-17-sglang/" target="_blank" rel="noopener"
 &gt;https://lmsys.org/blog/2024-01-17-sglang/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://docs.vllm.ai/en/latest/features/automatic_prefix_caching.html" target="_blank" rel="noopener"
 &gt;https://docs.vllm.ai/en/latest/features/automatic_prefix_caching.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="chunked-prefill"&gt;Chunked Prefill
&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;：将长 prompt 的 prefill 分成多个小块，与 decode 请求混合调度，避免长 prefill 阻塞正在 decode 的请求。vLLM V1 的核心调度策略之一。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;详细介绍&lt;/strong&gt;：Chunked Prefill 解决的问题：&lt;/p&gt;
&lt;p&gt;无 Chunked Prefill 时：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一个 10K token 的 prefill 请求到达&lt;/li&gt;
&lt;li&gt;GPU 花 ~2s 处理这个 prefill&lt;/li&gt;
&lt;li&gt;正在 decode 的其他请求全部暂停 2s → TPOT 暴涨&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Chunked Prefill 方案：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将 10K token 的 prefill 分成 20 个 512-token 块&lt;/li&gt;
&lt;li&gt;每个 iteration 只处理 1 个 prefill 块 + 当前所有 decode token&lt;/li&gt;
&lt;li&gt;prefill 和 decode 在同一 batch 混合执行&lt;/li&gt;
&lt;li&gt;20 个 iteration 后 prefill 完成&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;效果：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;decode 请求每步都能执行 → TPOT 不受长 prefill 影响&lt;/li&gt;
&lt;li&gt;prefill 总时间略增（分块效率略低），但整体延迟体验更好&lt;/li&gt;
&lt;li&gt;GPU 持续高利用率（prefill 块 + decode 混合填满算力）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;vLLM V1 默认开启 Chunked Prefill，chunk_size 通常 512~2048 token。&lt;/p&gt;
&lt;p&gt;与 Continuous Batching 的关系：Chunked Prefill 是 Continuous Batching 的增强——传统 Continuous Batching 只混合不同 decode 请求，Chunked Prefill 进一步混合 prefill 和 decode。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;关联论文/模型&lt;/strong&gt;：vLLM V1；SGLang；Sarathi-Serve (arXiv:2308.16369)&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/design/v1/" target="_blank" rel="noopener"
 &gt;https://docs.vllm.ai/en/latest/design/v1/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://arxiv.org/abs/2308.16369" target="_blank" rel="noopener"
 &gt;https://arxiv.org/abs/2308.16369&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="disaggregated-inference"&gt;Disaggregated Inference
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;缩写&lt;/strong&gt;：Disaggregated Inference / Prefill-Decode 分离&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;：将 prefill 和 decode 分配到不同的 GPU 池执行，各池针对各自阶段优化（prefill 池用高算力配置，decode 池用高带宽配置），通过 KV Cache 传输连接两阶段。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;详细介绍&lt;/strong&gt;：分离式推理的动机：&lt;/p&gt;
&lt;p&gt;Prefill 和 Decode 的计算特性完全不同：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prefill：compute-bound，需要高 FLOPS（TP 度数高）&lt;/li&gt;
&lt;li&gt;Decode：memory-bound，需要高 HBM 带宽（batch 大更高效）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;传统推理（混合在同一 GPU 池）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同一 GPU 同时做 prefill 和 decode → 两阶段互相干扰&lt;/li&gt;
&lt;li&gt;prefill 阻塞 decode（或 chunked prefill 增加 prefill 延迟）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;分离式推理：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Prefill 池：专门处理 prefill，高 TP 度数，compute-optimized&lt;/li&gt;
&lt;li&gt;计算完的 KV Cache 传输到 Decode 池&lt;/li&gt;
&lt;li&gt;Decode 池：专门做 decode，大 batch（多请求共享权重读取），memory-optimized&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;KV Cache 传输：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;跨池传输 KV Cache 是主要开销&lt;/li&gt;
&lt;li&gt;通过高速互连（NVLink/InfiniBand）传输&lt;/li&gt;
&lt;li&gt;可在 prefill 最后几层时就启动传输（overlap）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;优势：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;两阶段各自独立优化，吞吐提升 30-60%&lt;/li&gt;
&lt;li&gt;prefill 不会被 decode 拖慢，decode 不会被 prefill 阻塞&lt;/li&gt;
&lt;li&gt;可根据负载独立扩缩两池&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;实践：DeepSeek 推理服务采用分离式架构；vLLM 正在支持；Moonshot/SGLang 也在探索。&lt;/p&gt;
&lt;p&gt;局限：KV Cache 传输增加延迟和复杂度，需要高速互连；对短序列收益小。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;关联论文/模型&lt;/strong&gt;：&amp;ldquo;DistServe: Disaggregating Prefill and Decoding&amp;rdquo; (Zhong et al., 2024, arXiv:2401.09670)；DeepSeek 推理服务；Splitwise (arXiv:2311.18677)&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://arxiv.org/abs/2401.09670" target="_blank" rel="noopener"
 &gt;https://arxiv.org/abs/2401.09670&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://docs.vllm.ai/en/latest/design/v1/" target="_blank" rel="noopener"
 &gt;https://docs.vllm.ai/en/latest/design/v1/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="本篇小结"&gt;本篇小结
&lt;/h2&gt;&lt;p&gt;本篇 6 个推理服务术语沿&amp;quot;两阶段 → 两指标 → 三类优化&amp;quot;的脉络归位：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prefill/Decode&lt;/strong&gt; 是推理的两个阶段：前者一次性处理整个 prompt，compute-bound，GPU 算力打满；后者逐 token 生成，memory-bound，每步读全部权重但算力利用率常 &amp;lt; 5%。两阶段特性截然不同，优化策略也不同。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TTFT&lt;/strong&gt;（首 token 延迟）由 prefill 主导，决定&amp;quot;是不是即时响应&amp;quot;，对话场景尤其敏感。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TPOT&lt;/strong&gt;（单 token 生成时间）由 decode 主导，决定&amp;quot;是不是流畅&amp;quot;；其倒数即单请求解码速度（token/s）。增大 batch 能提高系统吞吐却不改变单请求 TPOT，因为权重只需读一次、多请求共享。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prefix Caching / RadixAttention&lt;/strong&gt; 缓存已计算 prompt 的 KV，新请求共享前缀时直接复用跳过 prefill；SGLang 的 RadixAttention 用基数树管理缓存，多轮对话 TTFT 可降至 1/10。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chunked Prefill&lt;/strong&gt; 把长 prompt 的 prefill 切块与 decode 混合调度，避免长 prefill 阻塞正在 decode 的请求；vLLM V1 的核心调度策略之一。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Disaggregated Inference&lt;/strong&gt; 把 prefill 和 decode 分到不同 GPU 池，各池针对各自阶段优化（prefill 池高算力、decode 池高带宽），DeepSeek 推理服务已落地，吞吐再提 30-60%，代价是 KV Cache 跨池传输。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;三类优化层层递进：Prefix Caching 复用历史 KV → Chunked Prefill 让长 prompt 不再阻塞 decode → Disaggregated Inference 干脆分池部署。前两者在单池内调度，后者跨越池边界，代价是 KV Cache 传输开销。&lt;/p&gt;
&lt;p&gt;本系列共 11 篇，本文是第 10 篇。系列导读见：&lt;a class="link" href="https://bevisy.github.io/p/llm-terminology-series-guide/" &gt;LLM 术语全景图：系列导读&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>