返回 S01~S90 教材库
S18 · 总 Day 108教材已备 ≠ 学习已完成

S18:DP、FSDP、TP、PP 的场景选择矩阵

并行策略选择是在模型能否放下、计算强度、通信拓扑、batch/context、故障恢复和实现复杂度之间寻找可接受组合,而非寻找普遍最优算法。

2026-12-10parallelismselection、topology、trade-off

内容类型:预习教材(不代表已完成)
日期:2026-12-10
阶段:P2 · AI Systems Engineering 90
总路线:Day 108 / 360
周次 / 节奏:W3 · 周四案例与连接
状态:教材已备;学习未完成
主题:parallelism selection、topology、trade-off

一句话定义

并行策略选择是在模型能否放下、计算强度、通信拓扑、batch/context、故障恢复和实现复杂度之间寻找可接受组合,而非寻找普遍最优算法。

学习目标

  1. 能为 DP/FSDP/TP/PP 建立“解决的瓶颈—主要通信—适用条件—代价”矩阵。
  2. 能根据模型容量、单卡内存、互联和 batch 特征做初步排除。
  3. 能理解混合并行的层次与拓扑亲和性。
  4. 能识别 straggler、pipeline bubble 和小 batch 效率问题。

核心知识

如果模型与 optimizer 状态能放入单卡,DP 最简单,利用更多 batch 提高吞吐,但每卡完整复制状态。模型状态放不下时,FSDP/ZeRO 分片并在需要时 gather,代价是更频繁通信与实现细节。单层矩阵本身放不下或希望扩大层内计算时可用 TP,但它通常需要高速互联。PP 按层切分,跨 stage 传 activation/gradient,可跨较慢互联,但会出现 bubble、stage 不平衡和调度复杂性。

选择还受 global batch 限制。DP degree 太大会迫使 global batch 增大或每 rank micro-batch 过小,影响优化与 kernel 效率。长 context 增大 activation 和 attention 计算,可能需要 sequence/context parallel 或 checkpointing,而不是一味增加 DP。MoE 则还要考虑 expert parallel 与 token 路由负载。

混合并行常把高速节点内用于 TP,把节点间用于 DP/PP,但不是固定规则。拓扑映射错误会让高频通信跨慢链路。运维层面还要考虑 checkpoint 格式、elasticity、作业启动和调试难度。

机制与推导

定义 M_model 为完整训练状态,C_device 为可用设备内存。若 M_model > C_device,纯 DP 被容量直接排除。FSDP 理想状态约 M_model/P,但需加 activation 和 gather peak。TP 的通信量与层内张量大小和每层 collective 频率相关;PP 传输 activation,流水线利用率近似受 micro-batch m 与 stage p 影响,朴素流水的 bubble 比例可粗看作 (p-1)/(m+p-1)

扩展效率:

[ E(P)=\frac{throughput(P)}{P\cdot throughput(1)} ]

它下降并不自动说明策略错误;可能是通信、负载不均、输入瓶颈或 batch 限制。需要分解 step timeline。

最小练习或观察步骤

  1. 构造三个纸面案例:模型可单卡、状态超单卡、单层超单卡。
  2. 为每个案例填写 DP/FSDP/TP/PP 的可行/不优先/需更多信息。
  3. 增加“节点内快、节点间慢”的拓扑条件,重新选择并解释变化。
  4. 对 PP 计算两个 micro-batch 数下的粗略 bubble 比例。
  5. 写出至少三个必须通过测量而非公式确认的因素。

常见误区与边界

  • 按模型参数量直接指定并行策略,忽略 optimizer、activation 与 context。
  • 认为 TP degree 越大越好,忽略每层高频通信和小矩阵效率。
  • PP 只看容量,不看 stage 平衡与 micro-batch bubble。
  • 用理论线性扩展承诺生产吞吐。
  • 混合并行堆叠越多越先进;复杂度本身是成本。

系统场景连接

平台团队需要把训练需求翻译为调度约束:设备数量、同机亲和、互联、checkpoint 存储和可接受恢复时间。选择矩阵也能帮助判断外部训练供应商的报价是否对应真实瓶颈。对于多数企业微调,小模型+PEFT 可能比复杂多维并行更合适;理解复杂策略的价值也包括知道何时不用。

自检问题

  1. 哪个条件会直接排除纯 DP?
  2. 为什么 TP 往往更依赖高速节点内互联?
  3. Global batch 限制如何反过来约束 DP degree?
  4. PP 的 bubble 与哪些变量相关?

专业课程对齐

  • 阅读 CMU Deep Learning Systems 的 distributed training 与 execution 课程内容,重点将计算图切分映射为 DP/TP/PP 数据运动。
  • 阅读 PyTorch FSDP 官方文档 的 sharding strategies、device mesh 与限制,提取“何时 gather、何时 shard”的时序。
  • 阅读 MIT 6.5840 的分布式故障和复制主线,把训练 worker、协调和恢复看成有失败的系统,不只看正常吞吐。

深入学习提示

先用硬约束排除,再用成本比较:模型/状态是否放得下,batch 是否允许,互联是否匹配,才讨论效率。为每个策略画一条 step 时序,标出 compute、communication、wait。遇到“X 比 Y 快”的材料时,主动补问模型、硬件拓扑、batch、精度和规模;缺少这些条件的结论不能直接迁移。

学后填写区

  • 三个案例的选择矩阵:
  • 拓扑变化后的选择:
  • 一个 bubble 计算:
  • 最重要的未测因素:
  • 我认为当前不必深入的策略:
重点主线 · H01 · 任务契约与上下文架构本周配套机制实验 · W3 · 分布式训练:先算内存,再谈并行 →详细讲义、离线示例与源码;按需要选读,不新增必交任务。
本页是未来 P2 的预习教材。等 P1 完成并正式进入 P2 后,再填写真实理解、练习结果和不确定项;现在阅读不会改变P1 唯一进度账本