关于分布式模型并行的分正式评论
关于 Data Parallel(DP
- 模型分片:模型大小远超单节点存储上来,需要多节点分片存储和计算担;
- 并行训练:提高单位时间内的算力密度,进而降低整体训练时间;
分布式并行训练几乎总是会引入昂贵的成本,比如增加了昂贵的多节点通信、引入了额外的多机稳定性问题、以及额外的开发与调试成本等,因此我们应该尽量避免引入分布式并行训练。而不得不引入分布式训练的场景中,也应充分考虑通信开销,尽量降低并行的规模。
3D 模型并行
根据切分维度的不同,并行策略主要分为如下几类:
- Data Parallel(DP
) :将数据切分成 N 份,每个 instance 采用完全相同的配置,在计算梯度后通过 all reduce 全局同步梯度,并分别更新; - Tensor Parallel(TP
) :将每个 tensor 切分成 N 份,在矩阵乘法等计算时进行同步;也称为横切 - Pipeline Parallel (PP
) :将模型按执行前后顺序切分多分(通常按 layer 切分) ,并根据顺序依次执行; - Zero Redundancy Optimizer(ZeRO
) :同样将 tensor 切分成 N 份,但是在前向与后向计算时在每个分布式节点重建原始 Tensor; - Sequence Parallel(SP
) :在超长序列上进行训练时,将计算切分至多个节点;

