分布式训练(Distributed Training)
AI TERM术语词条Distributed Training
术语释义
把放不进单卡的大模型拆到成百上千张 GPU 上协同训练的技术,通过多种并行策略与高速互联配合,是万卡集群能训出大模型的前提。
分布式训练(Distributed Training)指把一次模型训练任务拆分到多张 GPU、多台机器上并行执行。单卡显存与算力远不足以训练千亿参数级模型,参数、梯度与优化器状态叠加往往需要数百 GB 显存。它本质是「拼图」——把装不下的拼图切开分给许多人同时拼,再用高速网络频繁对齐结果,让集群在逻辑上像一张超大显卡。
为什么单卡一定训不动
训练时的显存占用不只是「参数量」。以常见的混合精度训练为例,每 10 亿参数大约需要十几 GB 的显存来存放参数、梯度和优化器状态,还要额外预留激活值空间。这意味着一个千亿参数模型光是把状态放进去就要上千 GB 显存,而单卡显存通常只有几十到一百多 GB。与此同时,算力也成为瓶颈:即使显存够用,串行训练的时间成本也无法接受,所以必须同时解决「装得下」和「算得快」两个问题。
五大并行策略
- 数据并行(DP,Data Parallelism):每张卡放一份完整模型副本,各自吃不同批次的数据,反向传播后同步梯度。实现最简单、最常用,但显存没有省下来,只加速了计算。
- 张量并行(TP,Tensor Parallelism):把单层的权重矩阵按行或列切开,多卡合力算完一层再做通信合并。切得细、通信频繁,因此一般限制在机内,依赖 NVLink 等高带宽互联。
- 流水线并行(PP,Pipeline Parallelism):按层切分模型,不同卡负责不同层段,像流水线一样接力传递中间结果。它降低单卡显存压力,但要靠微批次填充来减少「气泡」等待。
- 专家并行(EP,Expert Parallelism):面向 MoE(Mixture of Experts,混合专家)模型,把不同专家分布到不同卡上,每个词元只激活少数专家,从而在参数量巨大时保持实际计算量可控。
- ZeRO / FSDP:把优化器状态、梯度、参数分片到各卡,需要时临时聚合,算是用通信换显存的分片式数据并行,能大幅降低单卡显存需求。
现实中的组合方式
真实的大规模训练几乎不会只用一种策略,而是「多维混合并行」:机内做张量并行,跨机做流水线并行,全局再叠一层数据并行,必要时配合专家并行。这样组合的原因在于每种策略消耗的资源不同——张量并行吃带宽、流水线并行吃调度、数据并行吃通信量,混搭才能让显存、算力和网络三者都不被浪费。支撑它的是 InfiniBand 等高速互联与专用通信库,训练效率往往取决于通信能否与计算重叠。
实践要点
- 先定位瓶颈:显存不够优先考虑分片与重计算,算力不够优先考虑扩大数据并行规模,不要盲目堆卡。
- 并行维度要匹配拓扑:通信最密集的并行维度放在带宽最高的互联域内,跨机通信尽量留给通信量较小的维度。
- 让通信与计算重叠:梯度同步可以与反向传播交错进行,通信一旦串行化,扩展效率会迅速下降。
- 关注扩展效率而非绝对速度:卡数翻倍但吞吐只涨三成,说明通信或调度已成瓶颈,加卡只会更浪费。
- 做好容错与断点续训:规模越大,单点故障越常见,检查点策略要和训练时长一起规划。
常见误区
- 以为卡越多越快:超出互联能力后,新增算力大量耗在等待通信上,整体吞吐可能不升反降。
- 把数据并行当成省显存手段:数据并行只加速计算,每张卡仍要放下完整模型状态,省显存要靠张量并行、流水线并行或分片。
- 忽略数值一致性:不同并行切分方式会改变归约顺序,进而影响浮点结果,调试时容易误判为训练不稳定。
- 只看理论峰值算力:集群实际可用吞吐受互联带宽、调度开销和故障率共同影响,标称算力参考价值有限。
延伸:推理侧与训练侧的差别
推理侧也有对应的分布式技术,例如多卡推理和 PD 分离(Prefill-Decode Disaggregation,把预填充与解码两个阶段放到不同资源池)。但推理的瓶颈与训练相反:训练受限于显存与通信,推理更受限于显存带宽和请求调度。理解这一点,就能明白为什么同一套并行策略不能直接照搬到推理服务上。