#Megatron-LM
9 posts · All tags
以 DeepSeek-V3 的真实 Megatron 训练脚本为样本,把每个训练参数对回背后的原理:MLA、细粒度 MoE、MTP、EP+ZeRO-3 的并行哲学;并横向对比 Qwen3-235B(两种 MoE 路线)、给出主流百亿/万亿模型并行地图,以及预训练→SFT→RL 的完整训练链路。
几百卡训几周,硬件一定会出故障。本文讲分布式 Checkpoint 为什么能换并行配置重载(ShardedTensor 的 global_offset)、异步存档、容错(ft_launcher + 心跳 + 分段超时抓“沉默 hang”)与弹性训练的区别,以及落到集群的实战 checklist。
显存都花在哪、重计算如何用算力换激活显存、BF16 与 FP8 混合精度怎么选、MFU 为什么是训练效率的金标准,以及一份按性价比排序的实战调优清单。
把 3D 并行扩展到五维。本文讲 MoE 为什么能解耦参数量与计算量、专家并行 EP 的两次 all-to-all、router 的负载均衡,以及上下文并行 CP 如何用 Ring Attention + zigzag 切法处理超长序列。
并行策略的上限由物理网络决定。本文介绍 NVLink 与 RoCE、GPUDirect RDMA,讲解 NCCL 在机内 NVLink + 机间多网卡 RoCE 上的跑法、关键调优旋钮、busbw 健康标准,以及带宽如何决定通信能否被计算隐藏。
数据并行为什么会重复浪费显存?本文讲清混合精度下的 16 字节/参数构成、ZeRO 思想、Megatron 分布式优化器(reduce-scatter + all-gather)、梯度缓冲区 overlap,并厘清 ZeRO 各档与 Megatron / FSDP / DeepSpeed 的关系。
流水线并行把模型的层切到不同卡。本文讲清 microbatch、流水线气泡(bubble),对比朴素 GPipe 与 1F1B 调度,推导 bubble 公式,并给出 64 卡 3D 并行蓝图。
张量并行把单层的权重矩阵切到多张卡。本文从矩阵乘法的行/列切分讲起,解释 Column/Row Parallel Linear、f 与 g 镜像算子,以及为什么 TP 必须绑定 NVLink 同机。
分布式训练系列开篇:先补齐为什么需要多卡训练、集合通信原语等背景,再讲 Megatron 的 GPU 网格世界观(TP/PP/DP/CP/EP)和一次训练迭代的完整生命周期。