ZeRO:用来优化万亿参数模型训练的内存
ZeRO:是Zero Redundancy Optimizer的简写,零冗余优化器。
大型深度学习模型带来了显著的准确率提升,同时也带来了训练几十亿到几万亿的参数的挑战。现存的解决方案比如数据和模型并行化,虽然能有效的处理计算、通讯和开发,但显而易见的基础限制就是如何将这些模型加载进有限的设备内存。ZeRO是一个新颖的解决方案,用来优化内存,大大提高了训练速度,同时增加了可以有效训练的模型大小。ZeRO在数据和模型并行保持低通信量和高计算粒度的训练时消除内存冗余,允许我们根据设备的数量来等比例的缩小模型的尺寸以保持高效训练。
通过对内存需求和通信量的分析表明:在当前的硬件条件下,ZeRO有潜力扩展到超过一万亿参数。实现并验证了ZeRO:它在400个GPU上以超线性加速训练参数超过100B的大型模型,并实现了15Petaflops的吞吐量。这意味着与最先进的技术相比,模型尺寸增加了8倍,可实现的性能增加了10倍。
在可用性方面,ZeRO在没有模型并行机制下可以训练高达13B参数的大型模型(超过 Megatron GPT 8.3B 和T5 11B),这对科学家来说都非常困难。
最后但并非最不重要的一点是,研究人员利用ZeRO,以破纪录的准确性创建了世界上最大的语言模型 (Turing-NLG, 17B parameters)。