学习 / AI 基础架构 / 05

AI 基础架构 · 第 05 条 · 集群

并行策略:数据并行、张量并行、流水线并行

当一个模型大到装不下一张卡,「切开」就成了唯一的选择。三种切法各有各的代价,实际训练用的是它们的组合。

难度 入门 → 进阶约 14 分钟前置:1 条更新 2026-09-28

三种切法

策略切什么解决什么问题主要代价
数据并行切数据加速,模型能装下单卡梯度同步的通信量随卡数增长
张量并行切单层内部的矩阵单层太大装不下通信极频繁,必须放机内
流水线并行切层(不同层放不同卡)模型太深装不下有空泡(流水线等待),需要调度
三种切法:切数据、切单层、切层数据并行完整模型完整模型完整模型每张卡算完整模型,只同步梯度通信:低频、大块张量并行1/3 层内1/3 层内1/3 层内把单层的矩阵横切,每卡算一部分通信:高频、小块 → 必须放机内流水线并行第 1 段层第 2 段层第 3 段层按层切开放到不同卡上通信:最小,但有等待(空泡)实际用的是混合:张量并行放机内(要低延迟),流水线放机间(通信少),数据并行放最外层这个安排不是随意选的——是被网络的层级结构逼出来的
三种切法的直观对比。重点看右下角的三个标签:数据并行是「低频大块」、张量并行是「高频小块」、流水线并行通信最少但有等待。这不是随便定的——通信特性决定了它们各自必须放在网络的哪一层。

为什么通信量差一个量级

这是理解并行策略的关键。三种切法的通信特性完全不同:

所以标准做法是分层的:张量并行放在机内(因为要低延迟高带宽),流水线并行放在机间,数据并行放在最外层。这个安排不是随意选的,是被网络的层级结构逼出来的。

流水线的空泡

流水线并行有个固有的低效:第一个微批次进入时,后面的阶段还在等;最后一个微批次离开时,前面的阶段已经空了。这段「没有满负荷」的时间叫空泡。

解决办法是把一个批次切成很多微批次,让流水线尽量填满。但微批次越多,每个的批大小越小,又会影响 GPU 利用率。这是一个需要权衡的参数。

为什么实际配置是核心竞争力

给定同样的硬件和模型,怎么切、切多少份、各切法怎么配比——这些选择会带来数倍的性能差异。

而且这个配置没有通用解:模型结构、卡数、网络拓扑、序列长度任何一项变了,最优配置都可能要重调。所以大模型训练团队里,「并行配置」本身就是一项核心技术积累。

和成本的关系

并行效率直接决定成本。假设理论算力能跑到 50% 的利用率,和能跑到 25%,同样的训练任务成本差一倍。

这就是为什么在讨论 AI 资本开支时,只看「买了多少卡」是不够的——有效利用率才是把硬件换算成产出的那个系数。

要点回顾
← 训练集群怎么连起来:NVLink 与 InfiniBand 训练与推理:两种完全不同的负载 →