返回课堂

分担数据,与分担保存责任,是两个动作

本页问题

复制式数据并行让四卡处理不同数据,却每卡保留完整状态。全状态分片可把指定持久小计从每卡 128 GB 降至 32 GB;当前层计算仍需临时取齐参数,反向梯度仍需共同归约,由所属片完成更新。节省长期冗余伴随通信与临时视图。

RC-T2/b0 · 不同数据,完整副本

GPU 0数据 AL₁ → Lₖ → Lₙ同一套完整状态128 GB / 卡GPU 1数据 BL₁ → Lₖ → Lₙ同一套完整状态128 GB / 卡GPU 2数据 CL₁ → Lₖ → Lₙ同一套完整状态128 GB / 卡GPU 3数据 DL₁ → Lₖ → Lₙ同一套完整状态128 GB / 卡汇总梯度 → 各副本执行相同更新四卡总容量很大 ≠ 每卡自动只存四分之一。
不同数据,完整副本

先采用最直接的数据并行:四张卡读取不同样本,但每张都执行完整模型,因此各自保留同一套完整训练状态。在刚才那份账本下,每卡长期小计仍是一百二十八 GB。数据分开处理,不等于模型状态自动分开保存。

教师备课:指图与模拟问答

指图与推进 · 不朗读指四份不同数据、每卡完整层序与128GB状态。

本态来源与条件

8B / 四卡混合精度 Adam 教学构造;ZeRO 机制,非硬件实测

RC-T2/b1 · 只改变长期保管责任

GPU 0数据 A → 全部层L₁ → Lₖ → Lₙ所属 θ0长期状态:32 GBGPU 1数据 B → 全部层L₁ → Lₖ → Lₙ所属 θ1长期状态:32 GBGPU 2数据 C → 全部层L₁ → Lₖ → Lₙ所属 θ2长期状态:32 GBGPU 3数据 D → 全部层L₁ → Lₖ → Lₙ所属 θ3长期状态:32 GB实线框:长期保存责任;每卡数据仍走全部层。32 GB / 卡为持久小计,非运行峰值
只改变长期保管责任

现在只改变长期保存责任。四张卡各保管四分之一参数、梯度与优化器状态,长期小计降到每卡三十二 GB。但每张卡的样本仍需经过所有层;分片保存不是把一条样本永远交给某一张卡独自处理。

进一步解释

本页比较复制式数据并行与参数、梯度、优化器状态均分片的设定。原 ZeRO 1/2/3 的 56/44/32 GB 逐级账本保留于深入材料;主讲只比较两端。

教师备课:指图与模拟问答

指图与推进 · 不朗读对照固定数据路径与四种所属片颜色。

本态来源与条件

8B / 四卡混合精度 Adam 教学构造;ZeRO 机制,非硬件实测

RC-T2/b2 · 当前层临时取齐

GPU 0数据 A → 全部层L₁ → Lₖ → Lₙ所属 θ0长期状态:32 GB当前层 Lₖ 完整视图GPU 1数据 B → 全部层L₁ → Lₖ → Lₙ所属 θ1长期状态:32 GB当前层 Lₖ 完整视图GPU 2数据 C → 全部层L₁ → Lₖ → Lₙ所属 θ2长期状态:32 GB当前层 Lₖ 完整视图GPU 3数据 D → 全部层L₁ → Lₖ → Lₙ所属 θ3长期状态:32 GB当前层 Lₖ 完整视图all-gather:从各卡取齐当前层所需参数32 GB / 卡为持久小计,非运行峰值
当前层临时取齐

轮到当前层时,每张卡临时取齐该层需要的参数,完成计算后可以释放临时完整视图。图里长期小片与当前层完整视图必须分开算:三十二 GB 是长期小计,不是这时刻的峰值。交换缺少的参数还需要通信。

进一步解释

当前层取齐是临时工作视图,通信缓冲、激活与其他临时对象仍需额外空间。张量并行、流水线并行和状态分片不是同一概念。

教师备课:指图与模拟问答

指图与推进 · 不朗读指四卡之间的取齐连接、虚线整层视图与实线所属片。

本态来源与条件

8B / 四卡混合精度 Adam 教学构造;ZeRO 机制,非硬件实测

RC-T2/b3 · 共同梯度,更新同一模型

同一参数的各批贡献 → 归约到负责片 → 更新GPU 0g0:A + B + C + D归约后的 g0Adam 更新主权重与 m/v新 θ0下轮:同一新版本GPU 1g1:A + B + C + D归约后的 g1Adam 更新主权重与 m/v新 θ1下轮:同一新版本GPU 2g2:A + B + C + D归约后的 g2Adam 更新主权重与 m/v新 θ2下轮:同一新版本GPU 3g3:A + B + C + D归约后的 g3Adam 更新主权重与 m/v新 θ3下轮:同一新版本同参数归约;各卡更新所属片;下轮按需取齐当前层
共同梯度,更新同一模型

不同数据产生的梯度必须合成共同的更新依据,再由各状态片的持有者更新。下一轮取齐的是属于同一新版本的参数,不能让四张卡各自走成四台不一致的模型。分片减少重复保存,同时增加通信与临时视图。接着回到单卡:能否减少那张 attention 大表的保存和搬运?

教师备课:指图与模拟问答

指图与推进 · 不朗读沿共同梯度→所属片更新→同一新版本闭环;不混加不同参数。

本态来源与条件

8B / 四卡混合精度 Adam 教学构造;ZeRO 机制,非硬件实测

接下来

回到单卡内部,能否少搬完整注意力大表?

补充推导、边界与来源

进一步阅读

条件与来源

以下从计算对象、条件与原始证据继续展开。

原 N46:四张卡分担数据,为什么仍各存一份?

数据并行中,每张卡处理不同数据,但每批数据都经过整个模型。各卡参数梯度经汇总后执行一致更新,所以模型副本维持一致。本课 DDP 设定下,各卡都长期保存完整工作权重、梯度和优化器状态:每卡128GB,不因四卡总容量而自动除以四。

层用 L₁…Lₙ 表示,参数分片用 θ₀…θ₃ 表示,不能混为各卡分管不同层。TP 切分同一层的张量计算,PP 分配不同层并安排微批流水线,这些与数据并行的身份不同。

DDP、TP、PP与流水气泡;旧四卡图与详细说明。

原 N47:长期分片保存,轮到一层再临时取齐

在本课四卡混合精度账本下,ZeRO-1 仅分片优化器相关状态,每卡 $16+16+96/4=56$ GB;ZeRO-2 再分片梯度,$16+16/4+96/4=44$ GB;ZeRO-3 再分片工作权重,$128/4=32$ GB。上述均是持久状态小计。

实线框保存本卡长期负责的片;当前层计算之前,通过 all-gather 暂时取得该层完整参数视图,虚线框只代表这一层而非整个模型。本卡数据仍走全部层。当前层计算后可释放临时完整视图,再为下一层安排参数。真实 ZeRO/FSDP 实现会选择预取、驻留和通信重叠策略;临时视图、激活与缓冲使运行峰值高于32GB。

七步训练及ZeRO1/2/3完整账本;原展开页。

原 N48:分开保管,也能共同更新同一个模型

同一参数在不同数据批次上产生不同梯度贡献。reduce-scatter 将同一个参数的贡献归约,并把结果交给负责该分片的卡;不把不同参数的梯度混加。若训练目标用批次平均损失,归约时还需要与目标口径一致的缩放。

本卡拿到所属参数的共同梯度后,使用自己保存的主权重和 m/v 更新所属片。下一轮 all-gather 取得这些共同更新后的参数,因此所有数据仍在训练同一个模型。完整闭环是:各卡数据前向→需要时取齐层参数→反向产生梯度→按同参数归约分散→所属卡更新→释放临时量→下一轮取得新参数。

ZeRO §5.2、§7.2,物理p.10、14;保留的七步展开与预取/峰值说明。

本页证据与条件

8B / 四卡混合精度 Adam 教学构造;ZeRO 机制,非硬件实测

进入主题正文