Files
tech/知识/知乎专栏/Zoe Lee/2026-08-05_推理_PD分离的绝佳入门教程_DistServe_摘要.md
T
arno c0ba3fb853 文档(金鹏): 2026-08-06 章节 48 篇文章摘要归档
- 46 篇原文+摘要双文件归档(按 来源/作者 分层,复用本地归档 20 篇+新抓取 26 篇)
- 即梦生成 9 组主题配图(大图+列表缩略图)存入 知识/金鹏/20260806/
- 章节重组为 9 个主题分组并挂接摘要引用
2026-08-06 18:00:50 +08:00

4.9 KiB
Raw Blame History

📊 文章摘要:【推理】PD分离的绝佳入门教程 —— DistServe

原文2026-08-05_推理_PD分离的绝佳入门教程_DistServe.md 原文链接https://zhuanlan.zhihu.com/p/19666783423 来源:知乎专栏 作者Zoe Lee 发布日期2026-08-05 摘要日期2026-08-06 价值评级


核心命题

精读范本 — 以 DistServeOSDI 2024)为样本讲透 PD 分离的动机、建模与寻优方法,并附代码复现的一手体会。


文章概要

作者精读 DistServe 论文并部署代码实验后整理的"玩后感":从混合 batch 中 prefill 与 decoding 相互拖累的实验证据出发说明 PD 分离动机;用 M/D/1 排队模型推导并行策略偏好(到达率低时 TP 更优、高时 PP 更优);讲解对 Prefill/Decode 分别建立延迟模型、以"满足 TTFT/TPOT 双 SLO + 支撑到达率 + GPU 数最少"为准则的寻优算法,以及跨机部署限制(相同模型层的 P/D 必须同节点)。价值在于把论文方法论讲得通俗透彻,且作者亲自复现并报告了与论文结论存在张力的个人观察。局限是作者自认初学,跨机细节阐述有限。


关键要点

  1. PD 分离动机有实验证据 — 混合 batch 中新增一个 prefill 请求会给 decoding 批处理带来显著的延迟危害(论文实验图),由此引出调度低效与资源/并行策略耦合两大问题 [分类: 共识]
  2. batch 策略差异 — Prefill 吞吐随 batch size 的变化取决于输入文本长度,并非越大越好;增加 batch size 是 Decode 阶段避免低吞吐的好方法 [分类: 共识]
  3. 并行模式建模 — 用 M/D/1 排队模型推导 TTFT:到达率 R 小时 TP 效果更好,R 增加时 PP 更好;Decode 侧过大的 TP 会引入过量通信使延迟优势消失 [分类: 范式突破]
  4. SLO 驱动的寻优算法 — 对 P/D 分别拟合延迟线性模型(Prefill 含输入长度二次项),遍历并行模式,筛选同时满足 TTFT/TPOT SLO 且支撑到达率达标的方案,取 GPU 数最少者 [分类: 范式突破]
  5. 跨机约束 — 为避免 KV Cache 跨机传输与 TP 走机间通信,设置并行模式时限制相同模型层的 P 和 D 在同一节点 [分类: 未探索]
  6. 生产者-消费者实现 — 总体 Engine 管理 Prefill 与 Decoding 两个引擎及各自调度器,prefill 产出经中转队列等待 Decoding 调度器消费;代码分 SwiftTransformerC++/CUDA)基座与 Python 调度层两部分 [分类: 共识]
  7. 复现体会与论文结论的张力 — 作者粗略实验发现给定 P/D 卡数下并行策略的影响似乎不大,与论文强调并行模式寻优的价值形成对照(个人观察,尚需严格验证)[分类: 争议]

批判性分析

假设前提

假设读者熟悉 Transformer 推理与排队论基础;DistServe 的目标函数假设 TTFT/TPOT SLO 由用户显式给定,寻优结论依赖延迟模型对真实系统的拟合精度。

论据与逻辑

动机实验、延迟模型与寻优准则均忠实转述论文,并附作者部署代码的一手体会,论据扎实;作者对"并行策略影响不大"的观察明确标注为粗略实验,态度严谨,未以个人观察冒充论文结论。

边界与局限

作者明确指出 PD 分离至少需要两张 GPU、跨机方案限制较多,适合 GPU 资源充足的场景;论文方法面向"以 SLO 为中心"的在线服务目标,对离线批处理等非 SLO 场景不适用,且 DistServe 实现未涉及按层传输等后续优化技巧。


可引用金句

"在相同GPU上进行不同状态的调度会造成decoding等待prefill的现象,并且GPU在进行decoding会导致资源低利用率"

"Prefill阶段并不是batch size越大吞吐越大,吞吐随batch size的变化取决于输入文本的长度,因此在设置batch size时要考虑输入长度。"


总体评价

亮点

  • 把 DistServe 的动机实验、M/D/1 建模、寻优准则讲得透彻清晰,入门友好
  • 有真实部署与复现的一手体会,并诚实报告与论文结论的张力
  • 代码结构拆解(SwiftTransformer + Python 调度层)便于读者自行"把玩"

不足

  • 作者自认初学,跨机方案细节与性能数字讨论有限
  • 个人复现实验未给出具体数据,观察结论有待验证

适用场景:初次接触 PD 分离的工程师与学生作为入门导读;准备精读 DistServe 论文与复现其代码的读者。

关联建议:对照阅读 DistServe 论文原文与 GitHub 仓库(LLMServe/DistServe);与 akaihaoshuai 的实测结论(P/D 配比、cache 调度为核心)互相印证;进阶阅读 Mooncake(KVCache 中心化调度)与 NVIDIA Dynamo。


配图

-