Skip to content

分布式训练

内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。

一、为什么需要分布式训练?

挑战说明
显存效率175B 的 GPT-3 参数需 700GB 显存,梯度 700GB,Adam 优化器状态 1400GB,共需 2.8TB
计算效率单卡 A100 训练 GPT-3 约需 288 年

二、并行策略

2.1 数据并行(Data Parallelism, DP)

  • 做法:数据集切分为多份,每张 GPU 分配到不同数据,每个进程有完整模型副本
  • 关键:确保所有 GPU 上的梯度相同(AllReduce 规约操作)
  • 优化:梯度分桶、计算与通信重叠、梯度累积跳过同步
优势劣势
计算效率高,实现简单显存效率低(每卡存完整模型)
近乎线性扩展梯度规约通信开销与模型大小正相关

2.2 流水线并行(Pipeline Parallelism, PP)

  • 做法:层间划分,不同层分配到不同 GPU(前 3 层 GPU-0,后 3 层 GPU-1)
  • 通信:点对点通信(P2P),成本最低
优势劣势
通信成本最低不减少单层中间激活的显存
单卡显存占用通常随 PP 度下降(显存效率提升)GPU 利用率存在空闲气泡

2.3 张量并行(Tensor Parallelism, TP)

  • 做法:层内划分,单层切分到不同 GPU 上分别计算不同部分
  • 分类:行并行、列并行(按权重矩阵 A 的分块方式)
优势劣势
成比例减少显存占用通信频繁,计算效率低
减少单层中间激活的唯一方法对 NVLINK 依赖强

2.4 三种并行对比总结

维度数据并行张量并行流水线并行
显存效率
通信效率
实现难度
切分方式数据切分层内纵向切分层间横向切分

2.5 3D 并行

DP + TP + PP 的组合。例如 Megatron-Turing NLG 530B:4 路 TP + 4 路 PP + 2 路 DP = 32 workers。

策略优先级:TP=8 充分利用 NVLINK → 优先 PP → 最后 DP


三、ZeRO 系列与 FSDP

ZeRO(零冗余优化器)

在执行逻辑上是数据并行,但可以达到模型并行的显存优化效果。

阶段分片内容每卡显存
ZeRO-1优化器状态4× 降低
ZeRO-2优化器状态 + 梯度8× 降低
ZeRO-3优化器状态 + 梯度 + 模型参数与 DP 度线性降低

为什么还需要 3D 并行?

  • 张量并行的通信量太高,只能限于节点内(有 NVLINK)
  • 节点间张量并行 → GPU 利用率低至 5%
  • 显卡数量增加到千量级时,ZeRO-3 明显不如 3D 并行

四、显存优化技术

技术原理
重计算(Recomputation)Activation Checkpointing / Gradient Checkpointing,时间换空间
卸载(Offload)参数/激活在 CPU 内存和 GPU 显存间动态转移,通信换显存
混合精度(BF16/FP16)降低 50% 显存,速度提升 2-4 倍;BF16 可避免计算溢出

五、训练框架选型

主流框架

框架特点
Megatron-LM张量并行,NVIDIA 出品
DeepSpeedZeRO-DP,Microsoft 出品
Colossal-AI高维模型并行(2D/2.5D/3D)
Alpa自动并行
FSDP(PyTorch)类似 ZeRO-3,PyTorch 原生支持

选型建议

场景推荐方案
大规模训练Megatron-LM + DeepSpeed(Megatron-Turing NLG 参考方案)
7B 小模型DeepSpeed ZeRO(参考 Open-Llama 项目)
TPU 环境TPU + XLA + TensorFlow/JAX
GPU 环境GPU + PyTorch + Megatron-LM + DeepSpeed

硬件条件与策略

条件策略
单卡显存够直接用
单卡显存不够Offload 到 CPU
多卡显存够(模型能装进单卡)DDP 或 ZeRO
多卡显存不够TP 或 ZeRO 或 PP
有 NVLINKTP + PP + DP(3D 并行)
无 NVLINK(穷人模式)PP 为主,辅以 ZeRO-1

六、多机训练实践

常见问题与解决

问题解决方案
多机训练效率不如单机检查网络带宽(万兆网不够),提升至 800Gbps
多机 NCCL 不通配置 .deepspeed_envNCCL_IB_DISABLE=1, NCCL_SOCKET_IFNAME=eth0
DeepSpeed 找不到主机Hostfile 使用 IP 而非 hostname

训练效率

  • 多机训练效率与机器数成线性关系
  • 多机训练的 loss 下降趋势与单机基本一致