资讯动态

从 PagedAttention 到 Prefill-Decode 分离的深度解析

发布时间:2026/8/9 11:32:22 来源:尧图企业网站定制
大模型推理架构演进从 PagedAttention 到 Prefill-Decode 分离的深度解析本文从大模型推理的两阶段计算特性出发系统拆解 PagedAttention、连续批处理的核心原理深入分析 Prefill-Decode 分离架构DistServe、Splitwise、Mooncake的设计哲学并结合 vLLM Wide-EP 与 DeepSeek 生产部署案例探讨 2025-2026 年推理基础设施的前沿趋势。一、推理性能的瓶颈Prefill 与 Decode 的不对称性理解大模型推理的所优化技术首先要回到一个根本事实自回归生成包含两个计算特性截然不同的阶段。Prefill 阶段负责处理用户输入的完整 prompt。以一个 4096 token 的输入为例模型需要做一次完整的前向传播涉及大规模矩阵乘法。此时 GPU 的算术强度FLOP/byte约在 200-400 之间远超 H100 的内存带宽屋顶线属于典型的**计算受限compute-bound**场景GPU 利用率可以接近峰值。Decode 阶段则截然不同。每一步只生成一个 token但需要读取全部历史 KV Cache 和模型权重才能计算下一个 token。算术强度骤降至约 60-80 FLOP/byteGPU 实际利用率仅 20%-40%属于**内存带宽受限memory-bandwidth-bound**场景。这两阶段的不对称性是后续所有推理优化技术的出发点。PagedAttention 解决的是 Decode 阶段的显存管理问题连续批处理解决的是两阶段混合调度问题而 Prefill-Decode 分离架构则从根本上解除了两阶段的资源耦合。二、PagedAttention操作系统级的 KV Cache 管理2.1 传统方案的碎片化困境在 PagedAttention 出现之前推理引擎为每个请求预分配一段连续的 KV Cache 显存空间。这种方案存在两个严重问题内部碎片预分配空间按请求可能的最大序列长度预留但实际生成往往远短于上限reserved 但未用的显存白白浪费。实测中内部碎片导致约 60%-80% 的显存被浪费。外部碎片请求不断创建和销毁显存中出现大量不连续空洞新请求可能因找不到足够大的连续块而失败即使总剩余显存充足。2.2 虚拟内存思想的核心映射vLLM 的 PagedAttention 借鉴了操作系统的虚拟内存分页机制核心设计分三步第一步物理块划分。将 KV Cache 的存储空间划分为固定大小的物理块Block每个 Block 存储固定数量 token 的 Key 和 Value 张量。第二步页表映射。每个请求维护一张页表Page Table记录逻辑 token 序列到物理块的映射关系。一个请求的 KV Cache 可以分散存储在多个不连续的物理块中。第三步按需分配与回收。物理块按需分配——请求生成新 token 时才申请新块请求完成后其所有物理块立即回收到全局池供其他请求复用。这一设计彻底消除了内部碎片块按需分配不多预留和外部碎片物理块不要求连续任何空闲块都可复用。在 vLLM 的实验中PagedAttention 将 KV Cache 的显存利用率从约 20%-40% 提升至接近 100%。2.3 共享前缀的额外收益PagedAttention 的页表设计还带来了一个意外收获共享前缀复用。当多个请求共享相同的 system prompt 或 few-shot 示例时它们可以映射到同一组物理块只计算一次 KV Cache 即可跨请求复用。这一思路后来被 SGLang 的 RadixAttention 进一步发扬光大。三、连续批处理让 GPU 永不空闲3.1 静态批处理的短板传统推理引擎采用静态批处理收集一批请求凑满 batch size 后一起送入 GPU 执行等待所有序列生成完毕才释放资源。问题在于同一 batch 中各请求的生成长度差异巨大——一个生成 10 token 的短请求和一个生成 500 token 的长请求被绑定在一起短请求完成后必须空等长请求GPU 在这段时间内大量算力被浪费。3.2 动态插入与移除连续批处理Continuous Batching又称 Inflight Batching在每个解码迭代步的边界上做两件事移除已完成请求任何已生成 EOS token 或达到长度上限的请求立即从 batch 中移除释放其物理块。插入新到达请求新到达的请求在当前迭代步开始前被加入 batch立即开始 prefill。这种逐步动态调整使 GPU 在突发流量下无需手动批处理逻辑即可维持高利用率。与 PagedAttention 配合时连续批处理尤其强大——因为 PagedAttention 让每个请求的 KV Cache 可以独立管理新请求的加入不会干扰已有请求的内存布局。3.3 实测性能影响在 H100 上的基准测试中连续批处理使 vLLM 在 100 并发下的吞吐量达到 2400 tokens/s相比静态批处理提升约 3-5 倍。TensorRT-LLM 在相同场景下达到 2780 tokens/s领先约 13%这得益于其编译型引擎对 kernel 的深度优化。四、Prefill-Decode 分离架构突破资源耦合瓶颈4.1 共置系统的干扰问题在传统的共置colocated系统中Prefill 和 Decode 交替运行在同一组 GPU 上。连续批处理虽然提高了利用率但带来了一个隐蔽但严重的问题——ITLInter-Token Latency尖峰。当一个新的长 prompt 到达并开始 prefill 时大量计算资源被 prefill 占据正在进行的 decode 迭代被迫等待。用户体验上这表现为 token 流式输出的停顿-突发-停顿模式正常每 50ms 输出一个 token突然卡顿 500ms然后一口气吐出多个 token再继续卡顿。此外资源分配也被耦合GPU 显存、并行策略、batch size 必须同时服务两种工作负载无法同时为 prefill 和 decode 各自找到最优配置。4.2 DistServeGoodput 驱动的资源分配DistServeOSDI 2024北大/UCSD/StepFun首次系统化地提出了分离式推理的框架。其核心贡献有三独立资源分配。Prefill 和 Decode 被分配到独立的 GPU 集合各阶段独立选择最优的并行策略和 batch size。Prefill 集群配置为高 FLOPS 利用率Decode 集群配置为高显存带宽利用率。带宽感知放置算法。Prefill 完成后需要将 KV Cache 传输给 Decode worker传输延迟是分离架构的关键开销。DistServe 的放置算法在带宽充足时让 KV 传输与计算重叠隐藏延迟在带宽受限时调整放置策略减少传输量。Goodput 指标。DistServe 引入了 Goodput 概念——系统在满足指定 TTFT首字延迟和 TPOT每 token 延迟目标前提下能承受的最大请求速率。这比单纯追求 tokens/s 更贴近真实用户体验。实测结果聊天机器人场景 Goodput 提升 2.0-3.41 倍代码补全 3.2 倍摘要场景 4.48 倍。系统级达到 7.4 倍请求吞吐SLO 约束收紧 12.6 倍。4.3 Splitwise异构硬件的逐层流水线Microsoft Research 的 SplitwiseISCA 2024从硬件成本视角切入提出了异构硬件策略Prefill 集群使用高 FLOPS 的最新 GPU如 H100/B200匹配计算受限特性。Decode 集群使用大 HBM 容量、高带宽但 FLOPS 相对较低的成本效益 GPU匹配带宽受限特性。Splitwise 的关键工程贡献是逐层流水线传输每一层 prefill 计算完成后立即异步传输该层的 KV Cache不需要等全部 prefill 完成才开始传输。这种流水线设计隐藏了大部分传输延迟实现约 1.4 倍吞吐提升和 20% 的每 token 成本下降。在等功率/成本预算下吞吐提升达 2.35 倍。这一技术后来被上游至 vLLM 开源项目。4.4 MooncakeKVCache-centric 的生产系统Moonshot AI 的 MooncakeFAST 2025 最佳论文代表了分离式推理的生产级实践其设计哲学是KVCache-centric——KV Cache 的放置和移动驱动所有调度决策。分布式 KV Cache 存储。Mooncake 利用 GPU 集群节点上未充分使用的 CPU DRAM、本地 SSD 和 NVMe 存储构建了一个分层的分布式 KV Cache 存储系统。请求完成后KV Cache 不立即丢弃而是保留在存储层供未来具有共享前缀的请求复用。Transfer Engine。这是 Mooncake 的核心通信层支持 RDMA 和拓扑感知路径选择NVLink/InfiniBand/RoCE/Ethernet能聚合多卡带宽实现高吞吐 KV 传输。该组件已于 2024 年 11 月开源。生产规模。Kimi 每日处理超 1000 亿 token跨数千节点运行。有效请求容量提升 59%-498%SLO 约束下吞吐提升最高 525%真实工作负载下多处理 75% 的请求。五、生产实践vLLM Wide-EP 与 DeepSeek 部署5.1 Wide-EP 策略DeepSeek-R1 是一个 671B 参数的 MoE 模型每次推理仅激活 37B 参数。在多 GPU 部署时传统的张量并行TP策略在 MLAMulti-head Latent Attention架构下会导致潜变量投影的重复计算。vLLM 的Wide-EPWide Expert Parallelism策略将专家并行EP与数据并行DP结合注意力层采用 DP 部署每个 rank 独立持有潜变量投影增加有效 batch size。MoE 层采用 EP 部署不同 GPU 负责不同专家通过 all-to-all 通信交换 token。TP 仅在单 GPU 显存不足时使用每张 H200 剩余约 34GB 显存时Wide-EP 更优。5.2 双批次重叠与专家负载均衡vLLM 集成了两项来自 DeepSeek 的关键优化双批次重叠DBO,--enable-dbo将每个 batch 分为微批次重叠计算和集体通信。主线程创建微批次工作线程完成 CUDA 图捕获MoE all-to-all 算子在等待 GPU 完成时出让控制权。在通信开销高的部署高 EP 度中显著提升 GPU 利用率。专家并行负载均衡EPLB,--enable-eplb每次 MoE 前向记录 token 负载滑动窗口聚合后达到重平衡间隔时计算新的逻辑到物理专家映射并编排权重重组weight shuffle整个过程无需重启模型。5.3 实测性能在 CoreWeave H200 集群InfiniBand ConnectX-7的社区基准测试中vLLM Wide-EP 实现了每张 H200 持续吞吐2.2k tokens/s相比早期约 1.5k tokens/s/GPU 有显著提升。DeepSeek 在数千节点上生产运行分离式服务Decode 使用 EP144 DP144 跨 18 节点每 GPU 管理 2 个路由专家和 1 个共享专家最大化 GroupGEMM 利用率。六、前沿展望6.1 NVIDIA Dynamo分布式推理服务框架NVIDIA 于 GTC 2025 发布的 Dynamo 是高吞吐、低延迟的开源推理服务框架在 Blackwell 上运行 DeepSeek-R1 时将可服务请求数提升至 30 倍。其四大核心组件包括Dynamo Planner持续监控 GPU 容量指标结合 TTFT/ITL 等 SLO动态决定请求采用分离式或聚合式服务并在 prefill GPU 成为瓶颈时让 decode GPU 转而执行 prefill。Smart Router用 Radix Tree 哈希请求并存储 KV 位置计算新请求与已有 KV cache 块的重叠分数结合负载均衡将请求路由到最合适 worker。Distributed KV Cache Manager将低频访问的 KV cache 块卸载到 CPU 主存、SSD 或对象存储采用 GPU → CPU → SSD → 对象存储的分层缓存策略。NIXL硬件与网络无关的低延迟通信库支持 GPUDirect RDMA兼容 NVLink、InfiniBand、RoCE、Ethernet。6.2 NVFP4 KV Cache 与压缩注意力NVIDIA 推出的NVFP4 KV Cache以 4-bit 存储 KV 张量attention 前反量化为 FP8实现 HBM 占用、内存带宽和吞吐的显著提升。NVFP4 因更细粒度的块缩放和 E4M3 FP8 缩放因子精度优于 MXFP4在多智能体和 MoE 部署中表现突出。学术界也在持续探索Zipage2026在 PagedAttention 基础上引入 KV cache 驱逐策略PagedEviction2025提出与分页结构协同的结构化逐块 token 驱逐TPLATensor-Parallel Latent Attention针对分离式推理跨设备分片潜变量表示保留压缩 KV cache 优势同时解锁 TP 效率。6.3 超大规模训练基础设施推理基础设施的演进与训练基础设施密不可分。NVIDIA GB200 NVL72 单机柜集成 72 颗 Blackwell GPU 和 36 颗 Grace CPU液冷满载功耗约 130kW聚合 NVLink 带宽 130 TB/sFP4 稀疏算力超 1.4 exaFLOPS。在 MLPerf Training v5.0 中512 颗 Blackwell GPU 将 Llama 3.1 405B 预训练时间从 Hopper 的 269 分钟缩短至 121 分钟加速 2.2 倍峰值训练吞吐达 1960 TFLOPS。更极端的案例是 xAI 的 Colossus 2 集群——搭载 555,000 张 GPUGB200 GB300功耗约 1GW三层液冷系统每秒循环 40 吨冷却液SemiAnalysis 评估其为 2025 Q3 世界最大单体数据中心。七、总结大模型推理架构的演进可以归纳为三个层次第一层显存管理。PagedAttention 用虚拟内存分页思想解决了 KV Cache 的碎片化问题将显存利用率从 20%-40% 提升至接近 100%。第二层调度优化。连续批处理通过逐步动态插入和移除请求消除了静态批处理的长尾等待问题使 GPU 在突发流量下保持高利用率。第三层架构分离。Prefill-Decode 分离架构从根本上解除了两阶段计算特性的资源耦合通过独立资源分配、KV Cache 传输流水线和分布式缓存管理将 Goodput 提升数倍。截至 2025 年底分离式推理已从学术研究进入生产主流——vLLM、SGLang、TensorRT-LLM、NVIDIA Dynamo 均内置分离式服务模式DeepSeek、Fireworks AI、Perplexity、Meta、Amazon 均运行自有分离系统。DistServe 作者在 2025 年 11 月的回顾中坦言“几乎每个生产级 LLM 服务框架都基于分离式架构。”对于技术选型而言快速上线和广泛模型支持首选 vLLM吞吐至上的单一模型长期生产场景选 TensorRT-LLM共享前缀工作负载聊天机器人、RAG、多轮对话选 SGLang。而无论选择哪个引擎Prefill-Decode 分离都已成为不可忽视的架构选项。本文数据来源包括 vLLM 官方博客、NVIDIA Developer Blog、MLPerf 基准测试报告、DistServe/Splitwise/Mooncake 论文及 SemiAnalysis 行业分析时间跨度覆盖 2024-2026 年。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价