大模型理论基础07

[第8章 分布式训练]

在分布式训练中,常见的并行策略包括数据并行和模型并行。

  1. 数据并行:数据并行是指将训练数据分成多个批次,每个批次分配给不同的设备进行处理,。每个设备都有一份完整的模型副本,并且在本地计算梯度。然后,通过一定的机制(例如全局同步)将各设备上的梯度汇总,更新模型参数。数据并行适用于大规模数据集,但是需要处理设备间的通信和同步,尤其是在参数更新时需要谨慎处理。

    • 数据并行是将训练数据切分并分配给多个设备进行处理。
    • 每个设备有一份完整的模型副本,处理部分数据,计算梯度。
    • 需要对设备间的梯度进行AllReduce,以确保模型保持一致。
    • 适用于大规模数据集和相对较小的模型。
    • 通常用于视觉分类模型等场景。
  2. 模型并行:模型并行是指将模型分解为多个部分,每个部分分配给不同的设备进行处理。这种方法适用于大型模型,其中某些层或部分可能无法完全放入单个设备的内存中。每个设备负责计算其分配的部分,并且需要确保不同部分之间的信息交换和同步。模型并行的关键是合理地划分模型,以最大程度地减少设备间的通信和同步开销。

    • 模型并行是将模型切分为多个部分,每个部分分配给不同的设备。

    • 每个设备拥有完整的数据输入,负责计算部分模型的输出。

    • 模型参数被切分到各个设备,需要在设备间进行拼接以得到完整的模型。

    • 不需要梯度AllReduce,但需要在设备间进行数据的广播。

    • 适用于大型模型和需要跨多个设备分布的情况,如语言模型(BERT)。

  3. 流水并行

  • 流水并行将网络切分为多个阶段,分配到不同的设备上。
  • 设备之间以“接力”的方式完成网络的训练。
  • 适用于巨大的神经网络,无法在一个设备上存放的情况。
  1. 混合并行
  • 可以将多种并行策略混用,根据具体情况选择最优的方案。
  • 例如,GPT-3采用流水并行和数据并行的结合,充分利用了多台主机和多张GPU的资源。
posted @ 2024-01-28 00:58  wuhaoliu  阅读(13)  评论(0)    收藏  举报  来源