分布式训练¶
分布式训练的核心问题是:单卡放不下或算不动时,如何把模型、数据和计算拆到多张 GPU 上,同时控制通信成本。
并行方式¶
数据并行¶
每张卡保存完整模型,处理不同 batch,再同步梯度。实现简单,但模型必须能放入单卡。
张量并行¶
把单层中的矩阵计算切到多张卡上。适合大模型单层参数过大时使用,但通信频繁。
流水线并行¶
把模型不同层放到不同设备上,micro-batch 以流水线方式前进。适合层数很多的模型,但需要处理 pipeline bubble。
ZeRO / FSDP¶
把优化器状态、梯度、参数分片保存,降低单卡显存压力。
关键指标¶
- GPU 利用率。
- tokens/s 或 samples/s。
- 通信时间占比。
- 显存峰值。
- checkpoint 保存和恢复时间。
常见问题¶
- 多机网络成为瓶颈。
- batch 切分导致收敛行为变化。
- checkpoint 格式和并行策略绑定过深。
- 某些 rank 卡住,定位困难。
待补充¶
- DDP / FSDP / DeepSpeed 对比。
- Tensor Parallel 的矩阵切分图。
- Pipeline Parallel 的调度方式。