通过 1 位 Adam 实现高达 5 倍的通信量减少和 3.4 倍的训练速度提升
Adam 是一种有效的优化器,可能是训练许多大型深度学习模型最常用的优化器。然而,Adam 通常与通信效率高的优化算法不兼容,因此在分布式设备上进行扩展时,通信成本可能会成为瓶颈。我们介绍了一种新的算法 - 1 位 Adam - 以及它在 DeepSpeed 中的有效实现。1 位 Adam 提供了与 Adam 相同的收敛性,但通信量减少了高达 5 倍,这使得在带宽受限的集群上,BERT-Large 预训练的吞吐量提高了高达 3.5 倍,SQuAD 微调的吞吐量提高了高达 2.7 倍。
- 简要概述,请参阅我们的 新闻稿。
- 详细的技术深入分析,请参阅我们的 博客文章。
- 有关如何重现结果的教程,请参阅我们的 1 位 Adam 教程。
- 1 位 Adam 的源代码可以在 DeepSpeed 仓库 中找到。1 位 Adam 的实现位于 onebit_adam.py 中,而针对 1 位 Adam 的 CUDA 感知通信位于 custom_collectives.py 中。示例代码可在 DeepSpeedExamples 仓库 中找到,如 教程 中所示。