distributed-training · git:20260920.a4843f5 · 2026-09-20 · sha256 00261f59985c872e

distributed-training git:20260920.a4843f5A

Immutable. This exact content is served forever at /api/v1/blob/00261f59985c872e.

---
name: distributed-training
description: 分布式训练深挖:并行策略、ZeRO/FSDP、通信重叠、MFU、checkpoint 与故障、RL 训练系统。
keywords: [分布式训练, distributed training, megatron, deepspeed, zero, fsdp, 张量并行, 流水并行, 序列并行, mfu, checkpoint, 混合精度, 训练稳定性, loss 尖峰, rl 训练系统, rollout]
layer: detail
domains: [ai-infra, ai-algorithm]
---

## 面试官在意什么

这本是训练侧的系统深挖:把一个模型在几十到几千张卡上训起来、训得稳、训得满。面试官算的是 MFU、通信占比、checkpoint 恢复时间;追的是慢节点、掉卡、loss 尖峰这些真实故障的时间线。2026 年多了一块:RL 后训练的系统(rollout 与训练分离、推理引擎与训练框架的权重同步)成了大模型团队的日常。

## 项目 / 实习怎么深挖

简历上出现下面这类经历时从哪里切、追什么。追到候选人能说出机制、数字的来源与一次真实的故障或取舍才算实;只有框架名与结论、说不出自己那一段的,记为危险信号。通用的追问方法见 project-deep-dive。

- 简历出现千卡训练 / Megatron / DeepSpeed → 追并行配置与理由、MFU、通信占比、checkpoint 间隔与恢复时间
- 简历出现 FSDP / ZeRO → 追用了哪一级、显存省了多少、通信多了多少
- 简历出现训练事故 → 追 loss 尖峰、掉卡、NCCL 超时怎么发现与处理、事后改了什么
- 简历出现混合精度 → 追 BF16 还是 FP16、溢出怎么处理、哪些层保留高精度
- 简历出现 RL 训练系统 → 追 rollout 怎么跑、权重怎么同步到推理引擎、吞吐瓶颈在哪
- 简历出现"训练加速 X%" → 追基线、测量条件、是吞吐还是收敛速度

## 常见失守与危险信号

- 并行策略选择:只会背名字;说不出各并行的通信量与适用层;配置照抄
- ZeRO 与 FSDP:说不出三级各分了什么;不知道通信换显存的代价
- 通信与重叠:不知道通信占比;没做过重叠
- MFU 与性能分析:不知道 MFU;不会从 profiler 找训练瓶颈
- checkpoint 与故障恢复:间隔拍脑袋;同步写阻塞训练;掉卡只会重跑
- 混合精度与数值稳定:loss 尖峰只答"调小学习率";不知道溢出与梯度裁剪
- 数据管线与 IO:训练等数据不知道;shuffle 与打包影响不清楚
- RL 训练系统:不知道 rollout 是成本大头;权重同步靠重启

## 常考主题清单

只列名字、阶梯与答实的标志,作"问到哪一层算实"的参考;问哪些、问几道由这份 JD 与这份简历定,不是配额。

### 训练稳定性与并行基础
- 阶梯:loss 不降或 NaN 的排查顺序 → 混合精度(BF16 / FP16)溢出、梯度裁剪、学习率与 batch size 的关系 → 数据并行、张量并行、流水并行、序列并行各解决什么瓶颈;ZeRO 的三级 → 千卡训练的故障(慢节点、掉卡、通信)与 checkpoint 策略
- 答实的标志:有排查清单(先查数据再查 lr 再查精度);能说出各并行方式的通信量与适用层;知道 checkpoint 频率与恢复时间的取舍

### 并行策略的选择
- 阶梯:数据并行、张量并行、流水并行、序列并行、专家并行各切什么、通信在哪 → 张量并行为什么一般不跨机、流水并行的气泡怎么减 → 给定模型规模与卡数怎么配并行度;显存、通信、气泡三者怎么权衡 → MoE 与长序列训练对并行的额外要求
- 答实的标志:能给出某规模模型的并行配置与理由;能算通信量;知道每种并行的失效条件

### ZeRO 与 FSDP
- 阶梯:优化器状态、梯度、参数三级分片各省多少显存、多多少通信 → FSDP 的分片与重聚时机;与张量并行组合 → 显存够了但速度慢怎么排查是通信还是重聚 → 什么规模用 ZeRO 就够、什么时候必须上模型并行
- 答实的标志:能算三级各省的显存;知道通信换显存的代价;有组合使用的经验或推演

### 通信与计算重叠
- 阶梯:训练一步里通信占多少、为什么会成为瓶颈 → 梯度分桶、异步 all-reduce、流水并行的 1F1B 各怎么重叠 → 重叠后仍慢怎么查(带宽、拓扑、慢节点)→ 网络拓扑(NVLink、IB、跨机)对并行选择的影响
- 答实的标志:有通信占比数字;知道重叠的实现方式;能说出拓扑对配置的影响

### MFU 与训练性能分析
- 阶梯:MFU 怎么算、为什么千卡训练常在 40% 上下 → 训练一步的时间去哪了:计算、通信、数据、同步 → 从 profiler 定位训练瓶颈的顺序 → 提升 MFU 的常见手段与各自代价(激活重计算、融合、更大 batch)
- 答实的标志:能算 MFU;有一次训练性能分析的过程;知道各手段的代价

### checkpoint 与故障恢复
- 阶梯:checkpoint 存什么、多久存一次、同步写为什么阻塞训练 → 异步写、分片写、增量写各解决什么 → 掉卡、慢节点、NCCL 超时怎么表现、怎么自动检测与替换 → 恢复时间与丢失的训练量怎么权衡;弹性训练
- 答实的标志:有 checkpoint 策略的依据;异步写有方案;有一次故障的时间线与事后改进

### 数据管线与 IO
- 阶梯:训练为什么会等数据 → tokenize、打包、shuffle 放离线还是在线;数据加载的并行与预取 → 数据顺序对训练的影响;断点续训时数据怎么对齐 → 存储带宽、格式(分片、列式)与成本
- 答实的标志:知道数据等待怎么测;断点续训的数据对齐有方案;有 IO 瓶颈的处理案例

### RL 训练系统
- 阶梯:为什么 RL 后训练的系统与预训练不同:要在线生成(rollout)→ rollout 用推理引擎、训练用训练框架,权重怎么同步、多久同步一次 → rollout 与训练怎么并行、吞吐瓶颈在哪、长回答怎么处理 → 奖励计算(判分器、奖励模型)放在哪、怎么扩展
- 答实的标志:知道 rollout 是成本大头;权重同步有方案与频率;能说出吞吐瓶颈与处理