1. 分布式训练概述
随着语言模型参数量和所需训练数据量的急速增长,单个机器上有限的资源已无法满足大语言模型训练的要求。因此,设计分布式训练(Distributed Training)系统来解决海量的计算和内存资源需求问题变得至关重要。
分布式训练是指将机器学习或深度学习模型训练任务分解成多个子任务,并将子任务分发给多个计算设备并行地进行训练。这些计算设备可以是中央处理器(CPU)、图形处理器(GPU)、张量处理器(TPU)或神经网络处理器(NPU)。
1.1 原理
- 任务拆分与分发
- 一个模型训练任务往往会有大量的训练样本作为输入,可以利用一个计算设备完成,也可以将整个模型的训练任务拆分成子任务,分发给不同的计算设备,实现并行计算。
- 输出合并
- 对每个计算设备的输出进行合并,最终得到与单个计算设备等价的计算结果。由于每个计算设备只需要负责子任务