算法动画 · 梯度
数据并行动画
展示数据并行训练如何将大批量数据切分到多个 GPU 上并行计算梯度,再聚合更新。
Data Parallelism
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
未激活·当前高亮(7 个元素)
1
单个 GPU 训练速度受限,数据并行将同一模型复制到每个 GPU 上,每个 GPU 处理不同数据批次。
第 1 步 / 共 714%
对比实验室
分布式训练策略对比:DDP vs Model Parallel vs Pipeline Parallel
三种主要的分布式训练并行策略,适用于不同规模和类型的模型训练。
| 对比项 | 数据并行 (DDP) | 模型并行 | 流水线并行 |
|---|---|---|---|
| 切分对象 | 数据 | 模型参数 | 模型层(按阶段) |
| 每个GPU上的模型 | 完整模型副本 | 模型的一部分 | 连续的若干层 |
| GPU通信 | AllReduce(梯度同步) | 前向/反向激活值 | 阶段间传递激活值 |
| 通信开销 | 中等(梯度同步) | 高(每层通信) | 低(仅阶段边界)⭐ |
| GPU利用率 | 高⭐ | 低(等待通信) | 中(气泡问题) |
| 实现复杂度 | 低 | 高 | 中 |
| 适用模型规模 | 单卡可放下 | 单卡放不下 | 超大模型 |
| 扩展性 | 好 | 有限 | 好 |
🧠AI 冷知识
你知道吗?
这些有趣的 AI 小知识可能让你大吃一惊
💡
环形通信的数学之美数据并行是最简单的分布式策略:每个GPU持有完整的模型副本,各处理不同的数据批次,然后同步梯度。瓶颈在于梯度同步——朴素的"主从"方案中主节点会成为通信瓶颈。Ring All-Reduce巧妙地让GPU排成一个环,每个GPU只与相邻两个GPU通信,总通信量与GPU数量无关,始终是2×模型大小。这意味着从4卡扩到64卡,每张卡的通信量不变——这是数据并行能够大规模扩展的数学基础。
来源:Patarasuk & Yuan, "Bandwidth Optimal All-reduce Algorithms", 2009
一句话总结
💡
DDP 将数据分片到各 GPU 各自前向反向,通过 AllReduce 同步梯度,保证各卡参数一致。
常见误区
这些坑别踩
✗
误区 1
DDP 每张卡训练不同模型。
✓
正确理解
各卡模型相同,只是数据不同,梯度同步后参数保持一致。
✗
误区 2
AllReduce 把梯度汇总到一个节点更新。
✓
正确理解
AllReduce 使每卡得到相同平均梯度,各自本地更新。
✗
误区 3
batch size 越大越好。
✓
正确理解
过大 batch 影响泛化和收敛,需配合学习率调整。