其他
摘要随着各个领域数据的不断积累和规范化,越来越多的研究者开始着手解决更大规模的问题,不可避免地会提出或使用更多大规模的模型,分布式训练几乎成为了一个必选项。分布式系统面临的一大挑战是通信问题,特别是对于AI训练任务,使用的是高算力的设备,如果互联是低速的,那么多台设备组成的分布式系统性能甚至会低于单台设备。随着越来越多的大规模训练需求的产生,如何更好地应对分布式训练系统的通信问题已成为研究热点。本文首先介绍分布式训练中的通信问题,然后从减少用于同步的通信和采用更利于通信的拓扑结构两个方面介绍应对大规模训练中通信问题的方法。背景OpenAI在2018年的分析报告[1]中就已提出最大的AI训练任务所需算力每3.4个月翻一番的趋势,从2012年到2018年,人们对于算力需求的增长超过了300,000倍。充足的算力支持可以大大缩短AI研究的进程,比如BERT在16个TPUv3上的预训练时间为81.4个小时,约3天,而在1024个TPUv3上预训练时间可以缩短到76分钟[9]。另一方面,从图1展示的大模型参数量变化趋势可以看出,AI训练任务对存储容量的需求也呈指数增长。此外,随着计算机视觉、自然语言处理、自动驾驶、生物医学等各个领域数据的不断积累和规范化,越来越多的研究者开始着手解决更大规模的问题,不可避免地会提出或使用更多大规模的模型,分布式训练几乎成为了一个必选项。图1