datawhale 大模型学习 第八章-分布式训练

近年来,随着Transformer、MOE架构的提出,使得深度学习模型轻松突破上万亿规模参数,传统的单机单卡模式已经无法满足超大模型进行训练的要求。因此,需要基于单机多卡、甚至是多机多卡进行分布式大模型的训练。

对于训练任务来说,“大”体现在两个方面:模型大和训练数据大。
模型大:需要把模型拆成多个部分,并分布到不同的机器上训练,即模型并行;
训练数据大:需要把数据拆成多个小的数据片,并分布到不同的机器上,即数据并行。

一、数据并行(Dara parallelism)

每个 GPU 复制一份模型,将一个 batch 的样本平均分为多份,分别输入到不同的卡上做并行计算。

datawhale 大模型学习 第八章-分布式训练_第1张图片

二、模型并行(Model parallelism)

当我们的模型过大,不能放在一个GPU中,那么需要将模型分成多个部分,在各个worker 中。

datawhale 大模型学习 第八章-分布式训练_第2张图片

如图所示,是每个设备上的数据是完整的、一致的,而模型的某一些部分被切分到了各个设备上,每个设备只拥有模型的一部分,所有计算设备上的模型拼在一起,才是完整的模型。、

优点:不需要多个设备之间的梯度 AllReduce

缺点:数据会在多个设备之间进行广播,产生通信代价,因此限制了加速比

三、流水并行

 流水并行指将网络切为多个阶段,并分发到不同的计算设备上,各个计算设备之间以“接力”的方式完成训练。

如下图,展示了一个逻辑上的4层网络(T1至T4)是如何做流水并行的。 4层网络被切分到2个计算设备上,其中GPU0上进行T1与T2的运算,GPU1上进行T3与T4的计算。 GPU0上完成前两层的计算后,它的输出被当作GPU1的输入,继续进行后两层的计算。

datawhale 大模型学习 第八章-分布式训练_第3张图片

四、混合并行

网络的训练中,也可以将多种并行策略混用

以 GPT-3 为例,以下是它训练时的设备并行方案:

  • 它首先被分为 64 个阶段,进行流水并行。
  • 每个阶段都运行在 6 台 DGX-A100 主机上。
  • 在6台主机之间,进行的是数据并行训练;
  • 每台主机有 8 张 GPU 显卡,同一台机器上的8张 GPU 显卡之间是进行模型并行训练。

datawhale 大模型学习 第八章-分布式训练_第4张图片


           

你可能感兴趣的:(学习)