DNN之LNN:训练大型神经网络的核心技术(数据并行+管道并行+张量并行+专家混合MoE+内存优化策略【CheckPoint梯度检查点/AMP混合精度训练/Offloading数据卸载/优化器内存优化/压缩技术)之详细攻略
导读:大型神经网络的训练是一项复杂的任务,需要利用多个GPU进行并行计算。数据并行、管道并行、张量并行和专家混合等并行化技术将训练过程切片处理,提高了训练效率。此外,还有其他内存节省设计,如梯度检查点、混合精度训练、数据卸载、内存高效优化器和压缩等,进一步优化了大型神经网络的训练过程。
这篇文章介绍了一些训练大型神经网络的核心技术:>>数据并行(Data Parallelism):将不同部分的数据集分配给不同GPU进行训练,需要集中计算平均梯度来同步参数更新。
>>管线并行(Pipeline Parallelism):将神经网络分解为多个模块,不同模块分布在不同GPU上训练,需要处理模块间运行瓶颈问题。
>>张量并行(Tensor Parallelism):将单层操作如矩阵乘法水平拆分到多个GPU上计算,然后汇总结果。
>>专家混合(Mixture of Experts):输入样本只通过网络中的一小部分专家层进行处理,增加模型规模而不增加计算量。
>>混合策略:如PTD-P结合数据并行、管线并行和张量并行。Megatron-LM和Switch Transformer采用张量并行和专家混合策略。
>>内存优化策略:如CheckPoint重计算activations以节省内存、混合精度训练、参数与梯度的在设备与CPU之间交换等。
>>优化器内存优化:如Adafactor降低运行状态内存开销。
>>压缩技术内存优化:如中间结果压缩传输从而减少通信开销。
总之,这篇文章系统论述了目前主流的一些规模化训练模型的重要并行化和内存优化策略,为大规模神经网络训练提供了指导。
DNN之LNN:《Techniques for training large neural networks训练大型神经网络的技术》训练大型神经网络的核心技术(数据并行+管道并行+张量并行+专家混合MoE+内存优化策略【CheckPoint梯度检查点/AMP混合精度训练/Offloading数据卸载/优化器内存优化/压缩技术)之详细攻略
目录
《Techniques for training large neural networks》翻译与解读
No parallelism没有并行性:训练NN是一个迭代过程,基于并行技术的四个维度(数据/管道/张量/专家混合)
这是一个三层模型上各种并行策略的说明。每种颜色指代一层,虚线分隔不同的GPU。
Various Parallelism techniques各种并行技术
混合专家层(MoE)的说明。由门控网络从n个专家中选择2个。(图像改编自:Shazeer等人,2017年)
Other memory saving designs其他节省内存的设计
(1)、CheckPoint(或激活重计算)技术(节省内存):通过权衡计算成本和内存成本+采用重计算中间激活可节省大量内存(因计算成本相对较低)
(2)、MP混合精度训练技术(节省内存):采用低精度(FP16)训练模型
(3)、Offloading技术(节省内存):未使用的数据临时卸载到CPU+需要时再读取,比如ZeRO技术(参数/梯度/优化器状态)