PD 分离部署核心原理分析

PD 分离部署核心原理分析

一、为什么需要 PD 分离?

1.1 Prefill 和 Decode 的本质差异

大模型推理的两个阶段,在计算特性上完全是两个物种

维度 Prefill(预填充) Decode(解码)
计算模式 并行处理所有输入 Token 串行逐个生成 Token
计算类型 计算密集型(矩阵乘法) 内存密集型(访存频繁)
GPU 利用率 ~100%(近乎饱和) ~1%(极度浪费)
关键指标 TTFT(首 Token 延迟) TPOT(每 Token 时间)
主要瓶颈 算力 FLOPs 内存带宽 Memory Bandwidth
批处理优化 大(可合并多请求) 小(动态调整)
加速手段 Tensor Core、量化 KV Cache 压缩、内存优化

1.2 速度差异惊人(实测数据)

测试条件:5 并发请求,输入 255 Token,生成 256 Token

  • Prefill 阶段:0.2394 秒(5,325 tokens/s)
  • Decode 阶段:32.8948 秒(38.76 tokens/s)

Decode 比 Prefill 慢 137 倍,占整体推理时间的 99%!

这就是核心矛盾:Prefill 吃算力、Decode 吃带宽,特性相反,放一起跑 GPU 资源永远在被浪费。

1.3 传统共置架构的三个问题

  1. 资源竞争:Prefill 请求会抢占 Decode 资源的 GPU 算力 → Decode 延迟尖峰 → 用户感知为输出"卡顿"(P99 延迟增加 78%+)
  2. 并行策略冲突:Prefill 适合张量并行(TP)降延迟,Decode 适合流水线并行(PP)提吞吐,共置架构无法同时满足
  3. 过度配置:为满足 SLO 被迫过度配置 GPU → 运营成本大幅上升

二、PD 分离的核心原理

2.1 架构设计

复制代码
传统共置架构:
  请求 → [GPU: Prefill → Decode → Prefill → Decode → ...] → 响应
         ↑ 两个阶段争抢同一 GPU 资源,互相干扰

PD 分离架构:
  请求 → [Prefill 节点组(高算力 GPU)] ── KV Cache 传输 ──→ [Decode 节点组(大显存 GPU)] → 响应
         ↑ 计算密集型               ↑ 高速网络(RDMA/NVLink)  ↑ 内存密集型
         ↑ 并行处理所有 Token        ↑ 传输中间状态              ↑ 逐个生成 Token

核心思想:将 Prefill 和 Decode 解耦,分配到不同类型的计算设备上执行,通过高速网络传输中间状态(KV Cache)。

2.2 关键实现机制

组件 说明
Prefill 节点 高算力 GPU(如 H100),专注批量处理输入 Token,生成 KV Cache
Decode 节点 大显存/高带宽 GPU,专注自回归生成,频繁读写 KV Cache
KV Cache 传输 通过 RDMA / NVLink 高速传输中间状态,减少数据交换延迟
调度器 分队列管理 Prefill/Decode 流量,避免拥塞,动态分配资源比例

2.3 典型实现参考

  • DistServe:创新性 KV Cache 传输机制 + 调度算法
  • Mooncake:基于 RDMA 的高效 KV Cache 传输
  • 百度智能云 HPN:4μs 端到端延迟,分队列调度,吞吐量提升 20%

三、PD 分离的性能优势

3.1 吞吐量提升

  • Prefill 阶段独立跑在高算力 GPU 上,并行度拉满
  • Decode 阶段在专用节点上持续运行,不再被 Prefill 打断
  • 实测 :MoE 专家并行减半 + PD 分离 → 端到端性能提升 40%(文章2数据)

3.2 延迟降低

  • TTFT 显著缩短:Prefill 请求不再被 Decode 任务阻塞
  • TPOT 更稳定:Decode 阶段独占资源,输出更流畅,消除"卡顿"感
  • 共置架构下 Prefill/Decode 混合时的 P99 延迟增加 78%+ → PD 分离后这个干扰被彻底消除

3.3 硬件利用率最大化

场景 传统共置 PD 分离
Prefill GPU 利用率 ~100%(但受 Decode 拖累) ~100%(专注计算)
Decode GPU 利用率 ~1%(算力严重浪费) 更高(专注内存带宽)
整体资源效率
成本 需过度配置 减少 GPU 闲置

3.4 灵活的资源调度

  • 可根据工作负载动态调整 Prefill/Decode 资源比例
  • 支持 Continuous Batching:迭代级调度,不等整批,流水线式处理
  • 分队列管理 Prefill/Decode 流量,避免拥塞

四、实测性能数据汇总

4.1 Prefill vs Decode 速度对比

指标 Prefill Decode 差异倍数
处理速度 5,325 tokens/s 38.76 tokens/s 137x
耗时占比 ~1% ~99% ---
GPU 利用率 ~100% ~1% ---
计算特性 算力密集 内存带宽受限 ---

4.2 模型规模与硬件需求(文章2数据)

模型 参数 所需显存 H100 80G 卡数 显卡成本
MiMo-V2.5 3,100 亿 ~620 GB ~8 张 ~¥182 万
MiMo-V2.5-Pro 1 万亿 ~2.0 TB ~26 张 ~¥592 万
DeepSeek-V4-Pro 1.6 万亿 ~3.2 TB ~40 张 ~¥910 万

注意:以上为 FP16 完整精度估算。原生部署以 FP8/FP4 精度,实际显存减半/四分之三。

4.3 KV Cache 规模

MiMo-V2.5-Pro @ 100K 上下文:

场景 KV Cache 大小
单请求 / 纯 Full Attention ~36 GB
100 并发 / 纯 Full ~3.6 TB

KV Cache 公式:2 × layers × heads × head_dim × seq_len × precision_bytes

4.4 优化实践效果

优化手段 效果
PD 分离(MoE 专家并行减半) 端到端性能 +40%
Prompt 裁剪 系统提示词减少 30%
Prefix Cache 复用 MiMo 线上命中率均值 90%+
Continuous Batching vLLM/TGI 吞吐翻几倍的核心机制
百度 HPN 网络优化 4μs 端到端延迟,吞吐量提升 20%

五、PD 分离的关键挑战与解决方案

5.1 资源动态分配

挑战 解决方案
Prefill 和 Decode 对资源需求差异大 分队列调度,独立分配 GPU 计算单元与内存带宽
短请求阻塞长生成任务 动态批处理 + Continuous Batching

5.2 内存管理

挑战 解决方案
KV Cache 占显存大(单请求 36GB @100K ctx) 分层存储:高频在 GPU 显存,低频移至主机内存/NVMe SSD
动态请求导致显存碎片化 内存池(Memory Pool)+ PagedAttention(分页管理)
分布式 KV Cache 传输延迟 RDMA 加速数据传输

5.3 低延迟 vs 高吞吐平衡

挑战 解决方案
用户对 TTFT 敏感 优先级调度:优先处理 Prefill 任务确保低 TTFT
Decode 需稳定输出 Decode 公平调度,保证 TPOT 稳定
端到端延迟 流水线并行,Prefill 与 Decode 任务重叠执行

5.4 分布式通信

挑战 解决方案
跨节点同步开销大 HPN(高性能网络),超低延迟(4μs)网络架构
AlltoAll 通信瓶颈 KV Cache 分区,按 Token 位置分布,减少跨节点传输

5.5 工程落地

挑战 解决方案
框架支持不足(PyTorch 未原生支持) 定制化推理引擎
异构硬件适配 硬件感知优化,不同 GPU 架构定制计算内核

六、部署方案建议

6.1 核心决策原则

维度 建议
模型规模 ≥100B 参数强烈建议 PD 分离;<100B 视并发量决定
并发量 高并发(>50 并发)→ PD 分离收益大;低并发可暂缓
上下文长度 长上下文(>32K)→ KV Cache 压力大 → PD 分离价值高
SLO 要求 对 TTFT 敏感(聊天/交互场景)→ 必须 PD 分离
成本敏感度 GPU 资源紧张 → PD 分离减少闲置,ROI 更高

6.2 推荐部署架构

复制代码
                    ┌─────────────────────────────────────┐
                    │         全局调度器(Dispatcher)        │
                    │   分队列管理 + 动态资源分配 + 优先级调度   │
                    └──────┬──────────────────────┬────────┘
                           │                      │
              ┌────────────▼──────────┐  ┌───────▼──────────────┐
              │   Prefill 节点组       │  │   Decode 节点组        │
              │   (计算密集型)        │  │   (内存密集型)        │
              ├───────────────────────┤  ├──────────────────────┤
              │ GPU: H100 × N 张      │  │ GPU: H100 × M 张      │
              │ 并行策略:张量并行(TP) │  │ 并行策略:流水线并行(PP)│
              │ 精度:FP8/INT8        │  │ 精度:FP16(保持稳定)  │
              │ 优化:Tensor Core     │  │ 优化:KV Cache 压缩    │
              └───────────────────────┘  └──────────────────────┘
                           │                      │
                           └────── RDMA/NVLink ───┘
                                    KV Cache 传输

6.3 GPU 资源配置建议

场景:MiMo-V2.5-Pro 级别模型(1T 参数)

角色 GPU 需求 配置要点
Prefill 节点 总 GPU 的 20-30% 高算力 H100,张量并行,FP8 量化,批量处理
Decode 节点 总 GPU 的 70-80% 大显存 H100,流水线并行,KV Cache 优化
比例动态调整 根据实际负载 读密集型场景(长 Prompt 短输出)→ 增加 Prefill
写密集型场景(短 Prompt 长输出)→ 增加 Decode

6.4 分阶段部署路线

第一阶段:快速上线
步骤 内容
1 部署 vLLM + Continuous Batching(传统共置模式)
2 启用 Prefix Cache 复用(system prompt 命中率 90%+)
3 开启量化(FP8 部署,显存减半)
4 Prompt 裁剪优化(目标减少 30%+)
5 监控 TTFT/TPOT 基线数据

预期效果:不改变架构,仅靠上述优化可提升 2-3 倍吞吐量

第二阶段:PD 分离改造
步骤 内容
1 部署调度器(分队列管理 Prefill/Decode 流量)
2 划分 Prefill 节点组(20-30% GPU,高算力)
3 划分 Decode 节点组(70-80% GPU,大显存)
4 搭建 RDMA/NVLink 高速传输通道
5 配置 KV Cache 高效传输机制
6 灰度切换部分流量验证

预期效果:端到端性能提升 40%+,TTFT 显著降低,TPOT 更稳定

第三阶段:精细化调优
步骤 内容
1 根据实际负载动态调整 Prefill/Decode 资源比例
2 分层存储 KV Cache(GPU 显存 → 主机内存 → NVMe SSD)
3 集成 HPN 高性能网络(4μs 延迟目标)
4 强化学习驱动的细粒度资源调度
5 持续 Benchmark 验证性能

6.5 关键技术选型建议

组件 推荐方案 备选方案
推理引擎 vLLM(原生支持 PagedAttention + Continuous Batching) TGI / TensorRT-LLM
KV Cache 传输 RDMA(RoCEv2 / InfiniBand) NVLink(单机内)
调度器 自研(分队列 + 优先级调度) 基于 Ray / Kubernetes
量化 FP8(H100 原生支持) INT8 / INT4(需校准)
监控 Prometheus + Grafana 自研监控面板

6.6 成本估算参考

以 MiMo-V2.5-Pro 级别模型为例:

项目 共置架构 PD 分离
GPU 总数 26 张 H100 26 张 H100(Prefill 6 + Decode 20)
GPU 成本 ¥592 万 ¥592 万(相同)
网络成本 --- RDMA 交换机(约 ¥50-100 万)
吞吐量(基准 1x) 1x 1.4x+
每 Token 成本 基准 降低约 30%
TCO(3 年) 基准 降低约 20-25%

核心结论:PD 分离的硬件投入增量主要是网络(RDMA),但 GPU 利用率提升带来的吞吐量增益,可使每 Token 成本降低约 30%,6-12 个月即可收回网络投入。


七、总结与关键结论

  1. PD 分离是必选项,不是可选项 --- Prefill 和 Decode 的计算特性差异(137 倍速度差)决定了共置架构永远无法高效利用 GPU 资源
  2. Decode 占推理时间的 99% --- 优化 Decode 阶段是性能提升的最大杠杆
  3. 实测收益明确 --- 端到端性能 +40%(MoE + PD 分离),吞吐量 +20%(调度优化)
  4. 分阶段落地最稳妥 --- 先上 vLLM + Continuous Batching + 量化 → 再改造 PD 分离 → 最后精细化调优
  5. 成本账算得过来 --- PD 分离的每 Token 成本降低约 30%,网络投入 6-12 个月收回
  6. 关键配套技术 --- Prefix Cache 复用(命中率 90%+)、Prompt 裁剪(-30%)、Continuous Batching(吞吐翻倍)、量化(显存减半)

附录:关键术语速查

术语 定义
TTFT Time To First Token,首 Token 延迟,衡量 Prefill 阶段性能
TPOT Time Per Output Token,每 Token 生成时间,衡量 Decode 阶段性能
KV Cache Key-Value 缓存,存储 Attention 计算的中间状态,是 Decode 阶段的核心数据
PagedAttention vLLM 的核心技术,将 KV Cache 分页管理,类比操作系统虚拟内存
Continuous Batching 迭代级调度,不等整批,每个请求完成后立即让出槽位
Prefix Cache 复用 相同前缀的 KV Cache 跳过重复计算,直接复用
MoE Mixture of Experts,混合专家模型,稀疏激活,每次只激活部分参数
RDMA Remote Direct Memory Access,远程直接内存访问,低延迟高带宽网络技术
HPN 高性能网络,百度智能云的 4μs 端到端延迟网络架构
SWA Sliding Window Attention,滑动注意力窗口,只看最近 K 个 token