提升12倍!香港浸会大学与MassGrid发布低带宽高效AI训练新算法
副标题[/!--empirenews.page--]
本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。 随着训练数据量的增加和深度神经网络(DNN)的日益复杂,分布式计算环境(如GPU集群)被广泛采用,以加速DNN的训练。分布式计算网络在机器学习方面的瓶颈在于节点之间的数据传输效率,那如何在这一网络下高效地进行AI训练? 2018年,香港浸会大学异构计算实验室与MassGrid合作,通过研究提出一种可用于低带宽网络的全局Top-k稀疏化的分布式同步SGD算法,并通过实验论证出在低带宽网络下也能高效进行AI训练。目前实验结果及相关论文已被ICDCS workshop收录。 数据并行的分布式同步随机梯度下降(S-SGD)方法是训练大规模神经网络常用的优化器之一。与单节点的SGD相比,S-SGD将工作负载分配给多个计算节点以加速训练,但它也引入了在每次迭代中交换模型参数或梯度的通信开销。 举例说明 假设有P个节点用S-SGD训练DNN模型。在每次迭代中,所有计算节点都会采用不同的小批量(mini-batch)数据来并行计算模型的梯度。然后,对每个节点的梯度进行平均后来更新模型,这便引入较大的通信开销。 由于计算节点的加速器(如GPU和TPU)的计算能力比网络速度的增长快得多,网络通信性能通常成为训练的性能瓶颈,特别是当通信与计算比率很高时。 许多大型IT公司使用昂贵的高速网络(如40 / 100Gbps IB或以太网)来减少通信压力,但仍有许多研究人员和小公司只能使用由1Gig-Ethernet等低带宽网络连接的消费级GPU。 为了克服通信的性能瓶颈,可以通过使用更大的mini-batch来增加工作负载从而降低通信与计算比,或者减少每次通信过程中所需的通信量:
在模型/梯度压缩技术中,Top-k稀疏化是关键方法之一,它可以将每个节点梯度稀疏到约为原来的千分之一(即 99.9%的梯度置为零而无需传输这些零值)。 Top-k稀疏化是一种较有效的梯度压缩方法,相关研究已做进行了实验和理论论证。 Top-k稀疏化的S-SGD在每次迭代中只需传输少量的梯度进行平均也不影响模型收敛或精度。然而,稀疏化后的非零值梯度所在的索引位置在不同的计算节点是不一致的,这使得高效的稀疏化梯度聚合成为一项挑战。 在稠密梯度上使用基于环形的AllReduce方法(DenseAllReduce)的通信复杂度为 O(P + m),其中 P为计算节点个数,m为参数/梯度的数量。而在Top-k稀疏化中,假设每个节点的梯度稠密度为ρ,即 k = ρ×m ,因为每个节点非零值的对应的索引在不同节点是不一致的。 因此,每次通信需要传输 2k个值(梯度值和索引)。采用AllGather对这2k个值进行聚合(简称TopKAllReduce)则需要O(kP)的通信复杂度。当扩展到大规模集群时(即P很大),即使k较小也仍会产生显着的通信开销。 Top-k稀疏化的主要思想是基于这样一个事实,即具有较大绝对值的梯度可以为模型收敛做出更多贡献。因为在Top-k算法中,即使P个计算节点在聚合后最大可生成 k×P个非零值梯度,但最高绝对值最大的 k个梯度值对于模型更新则更重要。 基于这一观察,香港浸会大学异构计算实验室与MassGrid的研究人员,提出了一种有效的Top-k稀疏化方法来解决TopKAllReduce的低效问题。 具体而言,根据不同节点的梯度绝对值来选择全局的Top-k(简称gTop-k)梯度。在本文中,研究人员主要讨论使用AllReduce的分布式S-SGD来应用gTop-k稀疏化,但它也适用于基于参数服务器的分布式S-SGD。 gTop-k可以很好地利用树结构从所有节点中选择全局top-k值,并称之为gTopKAllReduce,而通信复杂性从原来的O(kP)减少到O(klogP)。表1中总结了不同梯度聚合方法的通信复杂度。 在实验研究及所发表的论文中主要贡献如下:
训练方法 gTop-k的关键思想 在Top-k S-SGD中,每个节点在本地选出k个梯度值,然后所有节点进行聚合得到。研究人员发现并非所有(其非零元素数量为且)都有助于模型收敛。 具体来说,可以进一步稀疏化为,这样每次模型更新只需要更少数量的非零梯度。换句话说,可以进一步从中选择top-k个最大绝对值的梯度(表示为)来更新模型,同时保证模型的收敛速度。一个4节点的示例如图1所示。 △ 图1 从Top-k算法中的最多k×P个非零值进一步选择k个梯度示例 (编辑:甘孜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |