ZeRO:用于训练万亿参数模型的内存优化

 ✒️ @halomaster 📅 05 Apr 2023, 12:21 GMT⋮ 【AI】 

大型深度学习模型提供了显着的准确性提高,但训练 数十亿到数万亿个参数具有挑战性。现有解决方案,例如 数据和模型并行性在拟合这些模型方面表现出根本限制 进入有限的设备存储器,同时获得计算、通信和 开发效率。我们开发了一种新颖的解决方案,零冗余优化器 (ZeRO),优化内存,大大提高训练速度,同时增加 可以有效训练的模型大小。ZeRO 消除了内存 数据和模型并行训练中的冗余,同时保持低 通信量和高计算粒度,使我们能够扩展 模型大小与具有持续高的设备数量成正比 效率。我们对内存需求和通信量的分析 证明:ZeRO有可能扩展到超过1万亿个参数 使用当今的硬件。 我们实施和评估ZeRO:它训练超过100B参数的大型模型 在 400 个 GPU 上实现超线性加速,实现 15 Petaflops 的吞吐量。 这意味着模型尺寸增加了 8 倍,可实现的尺寸增加了 10 倍 性能超过最先进的性能。在可用性方面,ZeRO可以训练大 高达 13B 参数的型号(例如,大于Megatron GPT 8.3B 和 T5 11B) 不需要模型并行性,这对科学家来说更难应用。 最后但并非最不重要的一点是,研究人员使用了ZeRO的系统突破 创建世界上最大的语言模型(图灵-NLG,17B 参数) 破纪录的准确性。 https://arxiv.org/abs/1910.02054


[1] @halomaster • 05 Apr 2023, 12:25 GMT 
序列并行性:从系统角度进行长序列训练 Transformer在各种任务中取得了很好的结果。然而,自注意力机制在序列长度方面存在二次存储器需求的问题。现有的工作集中于从算法角度减少时间和空间复杂度。在本研究中,我们提出了一种序列并行方法,这是一种内存高效的并行方法,可以帮助我们打破输入序列长度限制,并在GPU上有效地训练更长的序列。我们的方法与大多数现有的并行方法(例如数据并行、流水线并行和张量并行)兼容,这意味着我们的序列并行使4D并行变得可能。更重要的是,我们不再需要一个设备来容纳整个序列。也就是说,通过稀疏注意力,我们的序列并行使我们能够训练无限长的序列。具体地,我们将输入序列分成多个块,并将每个块馈送到其对应的设备(即GPU)中。为了计算注意力输出,我们将环形通信与自注意力计算集成在一起,并提出了Ring Self-Attention (RSA)。实验证明,当批大小和序列长度扩展时,序列并行表现良好。与张量并行相比,在扩展到64个NVIDIA P100 GPU时,我们的方法实现了13.7倍和3.0倍的最大批大小和序列长度。通过稀疏注意力,序列可以处理超过114K个记号的序列,这比现有的将整个序列存储在单个设备上的稀疏注意力负载多了27倍。


1 of 1 pages  1 replies