3D并行(3D Parallelism)

参考文献: Narayanan D, Shoeybi M, Casper J, et al. Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM: SC’ 21, November 14-19, 2021, St. Louis, MO, USA \[C\], 2021. ACM, 2021-01-01. 单一的MP或DP无法硬度继续增长的大模型算力需求,面对成千上万的GPU集群规模增长,结合TP、PP、DP等多种方式组成3D Parallelism的并行方式逐渐成为了主流的并行计算框架。 1. 基于Megatron-LM 1.1 研究背景 单一的DP、TP、PP方法无法满足日益增长的模型参数量,因此提出一种基于多种并行方法的PTD-P并行技术。 1.2 实现方法 图. 默认的Pipeline调度(上)和插值的Pipeline调度(下) 对每个设备上运行的网络层进行进一步拆分,每个子集称为一个Chunk,在图(下)中用深色和浅色两种颜色表示 假设一共4个Device,每个Device可以分为4层(例如:在Device 1上运行1~4层,Device 2上运行5-8),则可以将每个设备的计算过程分为两个Chunk(每个Chunk需要计算两层网络)例如:Device 1对应1,2,9,10四层,Device 2对应3,4,11,12四层。 以Device 3为例,为什么运行完Chunk 2的Batch2后需要Wait,而不是直接运行Batch 3?只是为了展示插值的概念? 1.3 实验结论 提出一种插值Pipeline调度算法,实现在3072个GPU上训练1T参数的训练,总体算力达到502PFLOPS,单个GPU的算力达到了理论峰值的52%。 相比较ZeRO-3(不带MP),因为减少了通信量,在175B和530B规模的大模型上效果要好70% 插值Pipeline调度算法可以增加计算密集度,但是对通信的开销也会增加 PP在较大的模型上效率更高,效果更好,TP的并行方式会增加不同设备之间的通信量 重算技术只是一个为了平衡内存与算力之间可选的技术,会降低内存消耗,但同时也会增加1/3的算力消耗 高度的MP可能会导致较小的矩阵乘运算,降低GPU的利用率 1.4 实验数据 本文对PTD-P模型中,GPU数量、全局Batch Size、Microbatch Size、Bubble Time、Throughput等多个参量进行多角度多变量讨论 ...

2024年4月1日 · 1 分钟

流水线并行(Pipeline Parallelism)

参考文献: Huang Y, Cheng Y, Chen D, et al. GPipe: Efficient Training of Giant Neural Networks using Pipeline Parallelism: 33rd Conference on Neural Information Processing Systems (NeurIPS 2019), \[C\], Vancouver, Canada, 2018. Harlap A, Narayanan D, Phanishayee A, et al. PipeDream: Fast and Efficient Pipeline Parallel DNN Training \[J\]. ArXiv, 2018,abs/1806.03377. Kim T, Kim H, Yu G, et al. BPipe: Memory-Balanced Pipeline Parallelism for Training Large Language Models: Proceedings of the 40th International Conference on Machine Learning ...

2024年4月1日 · 2 分钟

张量并行(Tensor Parallelism)

参考文献: Shoeybi M, Patwary M, Puri R, et al. Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism \[J\]. ArXiv, 2020 张量并行(Tensor Parallelism,TP)属于模型并行(Model Parallelism,MP)中的一种,通过对Tensor的拆分,将一次Tensor计算拆分到多台设备上进行并行的计算,并将计算结果最终合并为目标张量。 1. Megatron-LM Megatron-LM是Nvidia提出的一种Tensor Parallelism方式,它的核心思想是将模型进行纵向分割(假定模型为由下向上的传递方式),Megatron-LM的TP主要针对基于Transformer,通过对Transformer中的Self-Attention和MLP进行拆分并行。 1.1 研究背景 在研究MP技术时,从数学上对矩阵计算的角度上发现针对Transformer可以进行纵向分割,从而在纵向分割上实现并行加速,由于这种方法将一个张量分割为多个张量并行计算,因此该方法属于Tensor Parallelism。 1.2 实现方法 图. Tensor Parallelism对Transformer中两部分的并行过程 针对Transformer中的MLP单元 MLP在并行之前的运算过程可以表示为:Z=Dropout(GeLU(XA) B),其中X为输入数据,Z为输出数据,A和B分别为神经网络的参数 在并行时,可以将A矩阵按照列拆分为A= \[A_1, A_2\]两部分,并将其分别放置到两个设备中分别对输入的X进行计算,并分别获得结果Y_1=GeLU(X A_1)和Y_2=GeLU(X A_2) 对矩阵B按照行拆分成两部分,并分别放置到两个设备中B= \[B_1; B_2\] 假设输入的X矩阵的维度为m x n大小的,则可用如下公式描述输入矩阵A $$X=\left[ \begin{matrix} x_{1,1} & \cdots & x_{1,n} \\ \vdots & \ddots & \vdots \\ x_{m,1} & \cdots & x_{m,n} \\ \end{matrix} \right] =\left[ \begin{matrix} X_1\\X_2 \end{matrix} \right]$$ 假设MLP中的矩阵A的维度为n x k,且定义h=k/2,则定义矩阵A如下: ...

2024年4月1日 · 1 分钟