结构图

加速通信
- 减少给定操作的通信量
- 低精度训练
- 先量化再通信
- DeepSeek V3 dispatch 时先把 BF16 量化到 FP8,通信量减少一半。但因为 combine 通信中带有规约,所以不适合用 FP8。
- MegaScale-MoE 在 AllGather 派发器的 combine 阶段用 (a) 量化到 FP8 + (b) AlltoAll + (c) FP32 累加器规约 来代替原先的 ReduceScatter 通信,通信量减少一半、loss 正常。ReduceScatter 时每个 rank 只需要收到自己分区的所有数据并完成规约即可(不像 AllGather 接口需要所有数据),用 AlltoAll + 接收后本地规约也能替代。
- 通信去重
- 减少通信
- 尽可能使用效率更高的并行方式,比如用 Ulysses SP 代替 TP 可以从理论上大大降低通信。
保持计算流忙碌
- 通信计算重叠
- Megatron-LM 现在对 DP/TP/CP/PP/EP 均有通信重叠功能
- 部分选项依赖
CUDA_DEVICE_MAX_CONNECTIONS
- 部分选项依赖交错 1F1B 调度
- Megatron CP 的通信计算重叠强制打开、无选项可以关闭
- Megatron 1F1B + EP A2A overlap 是 2025.8 才加入的新功能,但在 2025.3 已有人提出
- DualPipe 用前反向两个微批次的前后向来重叠
- 负载均衡
- DP/PP 负载均衡
- ByteScale 的工作很有启发性
- Ernie 4.5 也做了 DP 上的子序列重排
- EP 负载均衡
- token drop、辅助 loss、expert bias
- 专家动态调整,这一类工作很多
- 样本动态调整,如 NetMoE
- CP 负载均衡
- Ulysses SP
- Megatron CP 未考虑子序列打包的问题,ByteScale 做了一些处理
- 消除卡间同步