Distributed Training / 分布式训练
草稿 约 5 分钟阅读
Distributed Training / 分布式训练
概述
分布式训练是将大语言模型(LLM)的训练任务拆分到多块 GPU / 多台服务器上协同进行的技术。随着模型参数从几十亿增长到数千亿甚至万亿级别,单 GPU 的显存和算力已远远不够,分布式训练成为行业标配。核心挑战在于:如何在保持代码简洁性的同时,高效利用数百甚至数千块 GPU。
工作原理
现代大模型分布式训练通常组合多种并行策略:
flowchart TB
Model["模型定义 单GPU代码"] --> Plan["并行计划 Plan"]
Plan --> DP["数据并行 DP"]
Plan --> TP["张量并行 TP"]
Plan --> PP["流水线并行 PP"]
Plan --> SP["序列并行 SP"]
Plan --> EP["专家并行 EP MoE"]
DP --> Comm["集合通信 AllReduce / AllGather"]
TP --> Comm
PP --> Comm
SP --> Comm
EP --> Comm
Comm --> Train["分布式训练执行"]
- 数据并行 (DP):每 GPU 处理不同数据批次,梯度汇总求平均
- 张量并行 (TP):将模型每层”切开”,不同 GPU 计算不同部分
- 流水线并行 (PP):将模型不同层分配到不同 GPU,流水线执行
- 序列并行 (SP):将长序列拆分到多 GPU 处理
- ZeRO / FSDP:将优化器状态、梯度、参数分片到各 GPU,节省显存
关键变体 / 系统
| 系统 | 范式 | 核心特点 | 代表论文/年份 |
|---|---|---|---|
| Megatron-LM | 手动并行 | 高性能,需深层修改模型代码 | NVIDIA, 2019+ |
| DeepSpeed ZeRO | 元素级分片 | 内存高效,AllGather 碎片化 | Microsoft, 2020 |
| PyTorch FSDP2 | 行级分片 | 易用,Copy-Out/In 开销 5-23ms | Meta, 2023 |
| PyTorch DTensor | SPMD | 单 GPU 代码,一致性差/性能差 | Meta |
| TorchTitan | SPMD | PyTorch 官方 3D 并行方案 | Meta, 2024 |
| JAX / Alpa | 编译式 SPMD | 自动优化,难以调试 | Google, 2021+ |
| veScale | 即时 SPMD | 单机语义一致性 + 零 DTensor 开销 | ByteDance, 2025 |
最新进展
- 2026-06-04 | veScale-FSDP 提出 RaggedShard 打破二元分片困境,支持块量化和 Muon 优化器,8K GPU 线性扩展 | 来源: 解读
- 2026-06-04 | veScale 通过 Thread-based RNG + 四层优化实现单机语义 SPMD,2.2x 加速 vs Megatron-LM | 来源: 解读
相关概念
- fsdp — FSDP / ZeRO 是数据并行的进阶形式
- mixture-of-experts — MoE 引入专家并行 (EP),对分布式训练提出额外挑战
相关实体
- bytedance — veScale 框架
- nvidia — Megatron-LM, H100 GPU 硬件
- meta — PyTorch, TorchTitan
- microsoft — DeepSpeed ZeRO
来源引用
| 日期 | 报告 | 关键发现 |
|---|---|---|
| 2026-06-04 | veScale 深度解读 | SPMD 单机语义,2.2x 加速 |
| 2026-06-04 | veScale-FSDP 深度解读 | RaggedShard, 8K GPU 线性扩展 |