知了AI学习平台Logo知了
算法动画 · 梯度

数据并行动画

展示数据并行训练如何将大批量数据切分到多个 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 影响泛化和收敛,需配合学习率调整。