Prefill 吃算力、Decode 吃带宽——把两阶段拆到独立 GPU 池,goodput 最高提升 4.48 倍
大模型推理天然分两段:Prefill(预填充)先把你的输入「读懂」,Decode(解码)再一个字一个字往外吐。这两段的资源需求几乎相反——Prefill 是计算密集型(吃 GPU 算力),Decode 是访存密集型(吃显存带宽)。把它们混在同一批 GPU 上跑,就像把举重和马拉松安排在同一块场地,互相干扰、两头不讨好。
PD 分离(Prefill-Decode Disaggregation)就是把这两人分开:Prefill 交给一群算力强的高性能 GPU,Decode 交给另一群(甚至可以是更便宜、更低功耗的)GPU,中间用高速网络传递 KV Cache。
业界数据已经证明它的价值:
下面从原理到架构、从传输方案到落地建议,一次讲清。
一次完整的 LLM 推理,其实分为性质完全不同的两段:
| 维度 | Prefill | Decode |
|---|---|---|
| 任务 | 并行处理输入,生成 KV Cache + 首 token | 自回归逐 token 生成 |
| 瓶颈 | 计算密集(GPU 算力) | 访存密集(显存带宽) |
| 并行度 | 高(整段并行) | 低(逐 token 串行) |
| 对应延迟指标 | TTFT(首 token 延迟) | TPOT(每 token 延迟) |
| 对硬件的要求 | 算力强、矩阵计算快 | 显存带宽大即可,算力可以弱 |
记住这张表,后面所有的「为什么」都源自这两行的反差。
传统做法(vLLM 等默认的合池模式)把 Prefill 和 Decode 放在同一批 GPU 上。它有三个绕不开的问题:
Prefill 阶段 GPU 算力拉满但带宽吃不满,Decode 阶段带宽吃满但算力闲置。合池时,任何一张卡都无法同时让两者满意——要么算力配少了 TTFT 超标,要么带宽配少了 TPOT 超标,要么两者都配足但总有一半资源在空转。
DistServe 论文点破了合池的困局:在严格的延迟约束下,现有系统必须牺牲一个延迟来保另一个。一个超长 prompt 的 Prefill 会阻塞整批 Decode(首 token 慢、吞吐抖动),而 Decode 占满显存又反过来挤压 Prefill 的可用 KV Cache 空间。
Prefill 适合大 batch(并行度高),Decode 适合小而持续的 batch(受显存限制)。合池时只能用一个折中的 batch 策略,两头都优化不到位;扩缩容也只能整池一起扩,无法针对瓶颈单独加卡。
结论:分开,才能各自按需配置硬件、按需调度、按需扩缩容。
一个标准的 PD 分离架构由四部分组成:
| 模块 | 职责 |
|---|---|
| Prefill 实例池 | 只做预填充:生成 KV Cache 和首 token |
| Decode 实例池 | 只做解码:接收 KV Cache,逐 token 生成 |
| KV Cache 传输层 | 把 KV Cache 从 Prefill 侧搬到 Decode 侧(架构的核心代价所在) |
| 调度器 / 路由 | 请求路由(KV-aware routing)、弹性扩缩容、负载均衡 |
请求的完整旅程:
用户请求 → 调度器路由
↓
Prefill 实例(算力强)
↓ 计算 KV Cache + 首 token
【KV Cache 跨机传输】(RDMA / 零拷贝)
↓
Decode 实例(带宽大)
↓ 逐 token 生成,流式返回
两个进阶设计:
PD 分离不是没有代价的。腾讯云的一篇文章说得很直白:代价是需要在 Prefill 和 Decode 的 GPU 之间传输中间状态(即 KV Cache)。一个长上下文的 KV Cache 动辄几 GB 到几十 GB,传慢了,省下的时间全赔在传输上。业界的主流解法:
数据从发起方显存/内存零拷贝直达目标方显存/内存,绕过 CPU,延迟微秒级、带宽吃满网卡。代表:NVIDIA NIXL(NVIDIA Inference Xfer Library)、Mooncake Transfer Engine。
TensorRT-LLM 等框架让 KV Cache 的传输与下一段计算流水线并行:Decode 收到第一批 KV 就开始算,剩下的边传边算,把传输延迟「藏」进计算里。
SGLang 的做法:当 Prefill 和 Decode 的张量并行度不一致(如 Prefill TP=4、Decode 等效 TP=1)时,KV 内存布局对不上,先在 Prefill 侧把 KV 头切片汇聚成连续缓冲区整块 RDMA 传输,Decode 侧再散列分发——用一次重组换传输效率。
一句话:PD 分离效果的上限,取决于 KV Cache 传输的速度。没有 RDMA 的普通以太网,会把大半收益吃掉。
| 系统/框架 | 出处 | 特点 |
|---|---|---|
| Splitwise | 微软,ISCA'24 | 开山之作之一;同构/异构集群设计,Decode 可用低成本低功耗机器 |
| DistServe | 北大 + UCSD,OSDI'24 最佳论文 | 提出 goodput 概念,按 TTFT/TPOT 分别选 GPU 数与并行策略;国内首篇 PD 分离论文 |
| Mooncake | 月之暗面 + 清华,FAST'25 最佳论文 | PD 分离 + KVCache 中心化多级缓存池(DRAM/SSD/RDMA) |
| NVIDIA Dynamo | NVIDIA,2025 年 3 月开源 | 数据中心级分布式推理运行时;disaggregated serving + KV-aware routing + 多级 KV 缓存 + 自动扩缩容,NIXL 传输 |
| TensorRT-LLM | NVIDIA | 内置 disaggregated serving,KV Cache 传输与计算重叠 |
| vLLM | 社区 | 解耦预填充(Disaggregated Prefilling),v1 基于 NixlConnector 的 P2P 模式,可接 LMCache 等第三方 KV connector |
| SGLang | 社区 | 进阶到 EPD 分离(见第九节),staging buffer 支持异构 TP |
| 智谱 GLM-5.3-Flash | 智谱 | 基于 SGLang 专用引擎 + EPD 分离,性能较基线提升约 3 倍 |
| 来源 | 对比基线 | 成绩 |
|---|---|---|
| DistServe | vLLM | goodput 提升 4.48x,或 SLO 严格 10.2x |
| Splitwise | 现有合池设计 | 吞吐 +1.4x 且成本 -20%;同预算吞吐 +2.35x |
| Mooncake | 未分离架构 | 真实负载多扛 75% 请求,模拟场景吞吐 +525% |
| 智谱 GLM-5.3-Flash | 自研初始基线 | 端到端性能提升约 3x |
规律很明显:并发越高、上下文越长、SLO 越严,PD 分离的收益越大。
| 场景 | 判断 |
|---|---|
| 长上下文服务(文档问答、超长对话) | ✅ 强烈推荐,收益最大 |
| 高并发、流量波动大 | ✅ 独立扩缩容价值高 |
| TTFT/TPOT 双 SLO 严格 | ✅ 分离后才能分别优化 |
| 多模态(视觉编码 + 文本生成) | ✅ 直接上 EPD 分离 |
| 有异构硬件(新旧 GPU 混布) | ✅ Splitwise 式异构集群,成本大降 |
| 短 prompt、离线批跑、小集群 | ❌ 收益低,别强上 |
PD 分离还在快速演进:
PD 分离的本质,是把「算力和带宽的错配」从一张卡内、一个池内摊平到整个集群去解决:让算力强的机器专心算,让带宽大的机器专心读,让便宜的存储和高速网络承载中间状态。它不是银弹,但在长上下文、高并发、严 SLO 的时代,它已经是大模型推理服务的默认架构选项之一。
自建 PD 分离集群,意味着要搞定 RDMA 网络、异构 GPU 调度、KV 传输层——对绝大多数应用团队来说门槛太高。向量云(向量云南京科技有限公司)面向大模型应用落地,依托字节跳动火山方舟能力,把「高效推理 + 低 Token 成本」做成开箱即用的服务:
| 向量云能力 | 说明 |
|---|---|
| 官方授权接入 | 火山方舟官方授权,提供官方 API 与官方 Key |
| 低折扣 Token | 专属折扣价,用量越大越划算 |
| 独享接入点 | 独立接入点,配额与稳定性更有保障 |
| 缓存隔离降本 | 缓存隔离机制,把缓存命中红利吃到最大 |
| 计费灵活 | 按量计费、即用即扣、不设账期,注册充值 10 元起 |
| 协议兼容 | OpenAI 兼容协议,业务代码几乎零改动 |
接入方式:注册后获取官方 API Key,把 base_url 指向向量云接入点即可直接调用火山方舟官方模型——推理架构的优化交给平台,成本的优化直接落在你的账单上。
获取 API Key:https://ark.tokenrize.cn/ · 火山方舟官方 API 与 Key 直连,注册即用
一句话总结:Prefill 要算力、Decode 要带宽,PD 分离把它们拆到各自最合适的硬件上——自建可选、平台可用,关键是把资源错配的钱省回来。
面向大模型应用落地的技术服务型企业,依托字节跳动火山方舟能力,为合作方提供低折扣模型 Token、可独立部署的运营支撑平台及全链路运营支持。
火山方舟官方 API 与官方 Key 直连 · 向量云 · 大模型推理降本
A. PD 分离是一种大模型推理部署架构:把推理的 Prefill(预填充,计算密集型)和 Decode(解码,访存密集型)两个阶段从物理上拆开,分配到不同的 GPU 实例池执行。Prefill 池用高算力 GPU 生成 KV Cache 和首 token,Decode 池用大带宽(甚至更低成本)的硬件逐 token 生成,两池之间通过高速网络(RDMA)传递 KV Cache,并可独立扩缩容。
A. 合池部署有三大问题:① 资源需求冲突——Prefill 吃算力、Decode 吃显存带宽,同一张卡无法同时满足两者;② SLO 互踩——严格的延迟约束下 TTFT(首 token 延迟)与 TPOT(每 token 延迟)此消彼长,必须牺牲一个保另一个;③ 调度耦合——Prefill 适合大 batch、Decode 适合小而持续的 batch,合池只能折中。分离后两阶段可分别配置硬件、分别调度、分别扩缩容。
A. 四部分:① Prefill 实例池(只做预填充,生成 KV Cache 和首 token);② Decode 实例池(只做解码,接收 KV Cache 逐 token 生成);③ KV Cache 传输层(把 KV Cache 从 Prefill 侧搬到 Decode 侧,是架构的核心代价所在);④ 调度器/路由(KV-aware routing、弹性扩缩容、负载均衡)。微软 Splitwise 还提出同构/异构两种集群设计,Decode 侧可用更低成本、低功耗的机器。
A. 主流方案有三种:① RDMA / GPUDirect RDMA 零拷贝传输(如 NVIDIA NIXL、Mooncake Transfer Engine),数据直达目标显存、绕过 CPU;② 传输与计算重叠(overlap),如 TensorRT-LLM 让 Decode 边收边算,把传输延迟藏进计算里;③ 布局适配(staging buffer),如 SGLang 在异构张量并行度下先把 KV 头切片汇聚成连续缓冲区再整块 RDMA。PD 分离效果的上限取决于传输速度,没有 RDMA 的普通以太网会吃掉大半收益。
A. 业界公开数据:DistServe(OSDI'24 最佳论文)相比 vLLM,同等延迟约束下 goodput 提升 4.48 倍,或支持严格 10.2 倍的 SLO;Splitwise(微软,ISCA'24)同构机器下吞吐提升 1.4 倍且成本降 20%,同等预算下吞吐提升 2.35 倍;Mooncake(FAST'25 最佳论文)让 Kimi 多扛 75% 请求;智谱 GLM-5.3-Flash 基于 EPD 分离性能较基线提升约 3 倍。总体规律:并发越高、上下文越长、SLO 越严,收益越大。
A. 适合:长上下文服务(文档问答、超长对话)、高并发且流量波动大、TTFT/TPOT 双 SLO 严格、多模态(可直接上 EPD 分离)、异构硬件混布(成本大降)。不适合:短 prompt、离线批跑、单机几卡的小集群——短请求的 KV Cache 很小、传输开销占比高,小集群拆池后调度与传输开销反而占大头。
A. 自建 PD 分离集群需要搞定 RDMA 网络、异构 GPU 调度与 KV 传输层,门槛很高。向量云(向量云南京科技有限公司)依托字节跳动火山方舟官方授权,提供官方 API 与官方 Key、低折扣 Token、独享接入点与缓存隔离降本机制,把「高效推理 + 低成本」做成开箱即用的服务。按量计费、即用即扣、不设账期,注册充值 10 元起,OpenAI 兼容协议业务代码几乎零改动。获取 API Key:https://ark.tokenrize.cn/