Megatron-LM
中文 Tutorial 入门书
面向:第一次接触大规模分布式训练、想知道千亿参数模型到底是怎么训出来的工程师 / 研究者。
前置:会用 PyTorch 写过单卡训练脚本;理解 batch / loss / optimizer 基本概念;用过一两次 DDP。
本书的目标
把 NVIDIA Megatron-LM 这套"千亿参数预训练事实标准"的内部结构剥开给你看。读完后你应该可以:
- 看着 GPT-3 / Llama / Mixtral 论文中的并行策略图,对应到 Megatron-LM 的具体代码位置;
- 自己改一份
pretrain_gpt.sh跑通最小规模的预训练; - 在 OOM、NCCL hang、loss spike 时知道从哪里开始排查。
目录
| 章节 | 标题 | 状态 |
|---|---|---|
| 序 | 为什么读这本书 | ✅ |
| 第 1 章 | 项目背景与定位 | ✅ |
| 第 2 章 | 环境准备与安装(NGC / pip / 源码 三条路径) | ✅ |
| 第 3 章 | 快速上手:跑通最小可见的训练循环 | ✅ |
| 第 4 章 | 核心概念:rank / parallel state / micro-batch | ✅ |
| 第 5 章 | 配置系统:arguments.py 全字段拆解 | ✅ |
| 第 6 章 | 数据流水线:indexed dataset 与 mmap | ✅ |
| 第 7 章 | 张量并行 TP 与列并行 / 行并行的实现 | ✅ |
| 第 8 章 | 流水线并行 PP 与 interleaved schedule | ✅ |
| 第 9 章 | 序列并行 SP / 上下文并行 CP | ✅ |
| 第 10 章 | 性能优化:fused kernel / flash-attn / recompute / fp8 | ✅ |
| 第 11 章 | OOM、NCCL hang、loss spike 排查指南 | ✅ |
| 第 12 章 | Checkpoint:Megatron ↔ HuggingFace 互转 | ✅ |
| 第 13 章 | 源码导读:从 pretrain_gpt.py 顺藤摸瓜 | ✅ |
| 附录 A | 论文与延伸阅读 | ✅ |
怎么读这本书
- 第一次读:序 → 第 1-4 章 → 第 13 章的"调用栈鸟瞰图",建立整体印象后再回头啃 5-10 章。
- 实战派:直接看第 2-3 章把环境搭起来,遇到不理解的概念再回查第 4 章。
- 想懂原理:第 7-9 章是核心,但建议读完前先把"张量切分"与"流水线 bubble"两个概念在纸上画一遍。