Page 212 - 《软件学报》2026年第1期
P. 212
高彦杰 等: 大语言模型预训练系统关键技术综述 209
表 3 开源大语言模型预训练系统所包含的并行策略对比 (续)
预训练系统 数据并行 全切片数据并行 张量并行 流水线并行 序列并行 多并行自动搜索
MaxText √ √ √ × √ ×
nnScaler √ √ √ √ √ √
如图 6 所示, 现有的并行训练方式包含多种模式, 其中灰色表示 GPU 0 上部署的张量, 白色表示 GPU 1 上部
署的张量, 不同的行列区分表示不同的行列切分, 箭头代表数据流, 矩阵乘表示发生的矩阵乘计算, X 代表输入数
据, W 代表权重. 图 6(a)–(d) 分别表示数据并行、全分区数据并行、张量并行和流水线并行的模型及数据分区方案.
W W
W W
X 矩阵乘 矩阵乘 X 矩阵乘 矩阵乘
(a) 数据并行 (b) 全分区数据并行
W
时间=0 时间=1 时间=2
W X
W1 矩阵乘 矩阵乘 矩阵乘
矩阵乘 W2 矩阵乘 矩阵乘
X 矩阵乘
(c) 张量并行 (d) 流水线并行
GPU0 GPU1 行分区 列分区
图 6 不同的并行切片模式 [28]
3.2.1.1 数据并行
在深度学习模型训练中, 数据并行是一种常见的多 GPU 或分布式训练方式. 从概念上来说, 数据并行分布式
训练范式非常直观. 整个训练程序会运行多个训练脚本的副本, 每个副本执行以下流程: (a) 读取数据的一部分;
(b) 将其通过模型前向传播; (c) 计算模型更新 (梯度); (d) 在多个副本之间同步平均梯度; (e) 更新模型, 并不断重复
以上步骤. 数据并行方案不仅用于语言模型, 还广泛应用于其他模型, 如视觉模型的训练. 由于其简单易部署且容
易提升批尺寸的特点, 数据并行策略在大语言模型训练中仍被广泛沿用. 数据并行的实现通常有两种方式: 一种是
框架无关方式, 可支持多种框架 (如 PyTorch、TensorFlow); 另一种是框架注册钩子方式, 针对特定框架在运行时
通过注册钩子拦截执行, 以实现跨 GPU 的张量通信与聚合.
框架无关方式: Horovod 采用数据并行策略进行训练, 使用环状 All-Reduce 以减少峰值通信量, 并很好地适配
2×(N −1) 次通信. 在通信过程中, 节点
底层硬件环状通信拓扑. 在每个 N 个节点中, 节点与其两个对等节点进行
发送和接收数据缓冲区的数据块. 在前 N −1 次迭代中, 接收到的值被加到节点缓冲区中的值上. 在接下来的 N −1
次迭代中, 接收到的值替换节点缓冲区中的值. Patarasuk 等人 [47] 曾经分析过, 如果缓冲区足够大, 环状 All-Reduce
算法是带宽最优的.
框架注册钩子方式: PyTorch DDP 通过在反向传播过程中交错通信与计算, 进一步提高性能. 它通过将梯度张

