13 - 分布式训练
本模块系统讲解大规模模型训练的并行策略和优化技术。
模块结构
13-distributed-training/
├── 01-data-parallel/ # 数据并行
├── 02-model-parallel/ # 模型并行
├── 03-mixed-precision/ # 混合精度
└── 04-large-scale-training/ # 大规模训练核心内容
01 - 数据并行
| 技术 | 说明 | 适用场景 |
|---|---|---|
| DDP | 分布式数据并行 | 多GPU训练 |
| FSDP | 全分片数据并行 | 大模型训练 |
| ZeRO | 零冗余优化器 | 显存优化 |
DDP原理:
- 每个GPU持有完整模型副本
- 数据分片到各GPU
- 梯度AllReduce同步
- 同步更新参数
ZeRO优化阶段:
- Stage 1:优化器状态分片
- Stage 2:梯度分片
- Stage 3:参数分片
02 - 模型并行
| 技术 | 说明 |
|---|---|
| 张量并行 | 层内切分,矩阵分块 |
| 流水线并行 | 层间切分,微批次流水 |
| 序列并行 | 序列维度切分 |
张量并行:
- 列并行:权重按列切分
- 行并行:权重按行切分
- 通信:AllReduce/AllGather
03 - 混合精度
| 技术 | 说明 |
|---|---|
| AMP | 自动混合精度 |
| BF16 | Brain Float 16 |
| 梯度缩放 | 防止下溢 |
混合精度优势:
- 显存减半
- 计算加速2-3x
- 精度损失可控
04 - 大规模训练
| 框架 | 特点 |
|---|---|
| DeepSpeed | 微软,ZeRO优化 |
| Megatron-LM | NVIDIA,3D并行 |
| FSDP | PyTorch原生 |
学习路线
DDP基础 → FSDP/ZeRO → 张量并行 → 流水线并行 → 混合精度 → DeepSpeed依赖库
python
torch>=2.0.0
deepspeed>=0.10.0
accelerate>=0.21.0