云镜收藏

稍后阅读

清单保存在当前浏览器,方便下次回来继续阅读。

清单还是空的

在笔记卡片或正文页点击“加入稍后阅读”即可收藏。

展开章节与本页目录
十四章问道录01机器学习与深度学习基础02Tokenizer 与表示学习03Transformer 与注意力04模型架构与 Scaling05预训练数据与优化06分布式训练07SFT 与参数高效微调08对齐与推理能力09推理与服务优化10RAG 与检索系统11Agent 与工具调用12评测、安全与幻觉13多模态大模型14编程与系统设计题本章问题01数据并行的工作流程是什么?02张量并行如何拆分 Transformer?03流水线并行为什么会有 Bubble?04ZeRO 三个阶段分别分片什么?05FSDP 与 ZeRO-3 有什么关系?06序列并行和上下文并行解决什么?07如何组合 3D 并行?08通信为什么会成为训练瓶颈?09分布式训练 Hang 应怎样排查?10如何验证分布式训练正确性?

第 06 章 · 大模型算法岗

分布式训练

掌握数据、张量、流水线与序列并行,以及 ZeRO/FSDP、通信瓶颈和分布式故障定位。

10 道核心题校订于 2026年8月31日
分布式训练ZeROFSDP并行策略

数据并行的工作流程是什么?

30 秒口述版

每个 rank 保存模型副本、处理不同数据,反向后 all-reduce 梯度,再执行一致参数更新。

原理与推导

它易扩展但模型状态在每卡复制,模型放不下时需要分片或模型并行。

公式、代码或工程案例

用 global batch=micro batch×累积×数据并行度核对配置。

高频追问

  • 梯度同步应在累积何时发生?
  • 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?

易错点

不要把 sampler 重复数据和梯度同步混为一谈。

权威来源


张量并行如何拆分 Transformer?

30 秒口述版

把单个矩阵乘沿行或列切到多卡,并通过 all-reduce/all-gather 组合结果。

原理与推导

它降低单卡参数和计算,但层内通信频繁,通常要求高速互联。

公式、代码或工程案例

说明 MLP 第一层列并行、第二层行并行如何减少中间通信。

高频追问

  • Attention 头如何切分?
  • 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?

易错点

不要忽略切分维度必须整除与 kernel 对齐。

权威来源


流水线并行为什么会有 Bubble?

30 秒口述版

模型层分成多个 stage,micro-batch 流过流水线;填充和排空期间部分 stage 空闲形成 bubble。

原理与推导

增加 micro-batch 可降低 bubble 比例,但会增加调度、激活与延迟成本。

公式、代码或工程案例

画出 GPipe 或 1F1B 时间线。

高频追问

  • Interleaved pipeline 有何作用?
  • 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?

易错点

不要只算稳态吞吐而忽略首尾空泡。

权威来源


ZeRO 三个阶段分别分片什么?

30 秒口述版

Stage 1 分片优化器状态,Stage 2 再分片梯度,Stage 3 再分片参数。

原理与推导

阶段越高单卡状态越少,但参数收集、通信和调度复杂度上升。

公式、代码或工程案例

按每参数字节估算各阶段模型状态下限。

高频追问

  • ZeRO-3 与张量并行有何区别?
  • 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?

易错点

不要简单把显存除以卡数而忽略峰值 all-gather。

权威来源


FSDP 与 ZeRO-3 有什么关系?

30 秒口述版

两者都以参数、梯度和优化器状态分片为核心;FSDP 是 PyTorch 原生实现与模块包装接口。

原理与推导

差异更多来自运行时、包裹粒度、预取、混合精度和生态,而非一句谁更高级。

公式、代码或工程案例

比较 FULL_SHARD、HYBRID_SHARD 和 auto_wrap 策略。

高频追问

  • 为什么 wrap 粒度影响性能?
  • 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?

易错点

不要只按名称判断通信量。

权威来源


序列并行和上下文并行解决什么?

30 秒口述版

它们沿序列维拆分激活或长上下文计算,降低每卡激活显存并扩展可处理长度。

原理与推导

需要在归一化、attention 或边界通信上设计聚合,具体语义随框架不同。

公式、代码或工程案例

区分 tensor parallel 中的 sequence parallel 与长上下文 ring/context parallel。

高频追问

  • 它们能减少 KV 总量吗?
  • 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?

易错点

不要把所有沿序列切分的方法混称一种算法。

权威来源


如何组合 3D 并行?

30 秒口述版

数据并行扩吞吐,张量并行拆层内矩阵,流水线并行拆层;三者乘积构成 world size。

原理与推导

拓扑映射应把通信最频繁的张量并行放在高速节点内,跨节点留给较低频通信。

公式、代码或工程案例

给定 64 卡设计 TP=8、PP=4、DP=2 并解释原因。

高频追问

  • MoE expert parallel 如何加入?
  • 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?

易错点

不要先选并行度再看网络拓扑。

权威来源


通信为什么会成为训练瓶颈?

30 秒口述版

计算增长未必伴随带宽增长,all-reduce、all-gather 与 all-to-all 会等待互联。

原理与推导

可通过计算通信重叠、bucket、拓扑感知、压缩和提高算术强度缓解。

公式、代码或工程案例

用 profiler 区分 kernel 时间、通信时间和 idle gap。

高频追问

  • Ring 与 Tree all-reduce 如何选?
  • 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?

易错点

不要只看链路标称带宽。

权威来源


分布式训练 Hang 应怎样排查?

30 秒口述版

先确认是否所有 rank 进入同一 collective,再检查数据步数、异常 rank、网络和超时日志。

原理与推导

任一 rank 提前异常、条件分支不一致或 dataloader 耗尽都可能让其他 rank 永久等待。

公式、代码或工程案例

记录 collective 序号、rank stack 和最后样本 ID。

高频追问

  • 怎样构造最小 world size 复现?
  • 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?

易错点

不要把无限提高 timeout 当修复。

权威来源


如何验证分布式训练正确性?

30 秒口述版

先在小模型上对齐单卡与多卡若干 step 的 loss、梯度和参数,再扩大规模。

原理与推导

需固定种子、数据顺序、dropout 与 reduction,允许明确的浮点非确定性范围。

公式、代码或工程案例

做 world-size=1/2 的 golden test 和 checkpoint 重启测试。

高频追问

  • 为什么 bitwise 一致很难?
  • 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?

易错点

不要只比较最终 benchmark 而不验证训练早期。

权威来源