来自计算所发布的研究分布式GNN训练中使用的各种优化技术,提供了分布式GNN训练的全面综述。
图神经网络(GNNs)在图学习方面的有效性已被证明是广泛应用领域的一种强大的算法模型。为了扩大GNN训练以适应大规模和不断增长的图,最有前途的解决方案是分布式训练,它将训练工作量分布到多个计算节点。然而,对分布式GNN训练的工作流程、计算模式、通信模式和优化技术仍有初步了解。在本文中,我们通过研究分布式GNN训练中使用的各种优化技术,提供了分布式GNN训练的全面综述。首先,根据分布式GNN训练的工作流程将其分为几类;此外,还介绍了它们的计算模式和通信模式,以及最新工作提出的优化技术。其次,介绍了分布式GNN训练的软件框架和硬件平台,以加深对分布式GNN训练的了解。第三,将分布式GNN训练与深度神经网络的分布式训练进行了比较,强调了分布式GNN训练的唯一性。最后,讨论了该领域的研究热点和发展机遇。
https://www.zhuanzhi.ai/paper/e85caecb1c45f7412fc38a4f681097ab
1. 概述
图具有强大的数据表示能力,特别是在表示对象之间的关联[1],[2]等方面有着广泛的应用。许多真实世界的数据可以自然地表示为由一组顶点和边组成的图。以社交网络为例[3],[4],图中的顶点表示人,边表示人在Facebook上的互动[5]。如图1 (a)所示,圆圈代表顶点,箭头代表边。另一个众所周知的例子是知识图[6]、[7],其中顶点表示实体,而边表示实体之间的关系[8]。图神经网络(GNNs)在图[9]-[11]的学习中表现出优于其他算法模型的性能。深度神经网络(DNNs)已广泛应用于分析图像[12]等欧几里德数据。然而,由于图[13]的任意大小和复杂的拓扑结构,非欧氏域的图数据对它们提出了挑战。此外,工业界识别的深度学习范式的一个主要弱点是不能有效地进行因果推理,这大大降低了智能系统[14]的认知能力。为此,GNN已成为图学习的主要范式,并赋予智能系统认知能力。如图1 (b)所示。GNN在获取图数据作为输入后,使用前向传播和后向传播来更新模型参数。然后将训练好的模型应用于图任务,包括顶点预测15,链接预测16,图预测17,如图1 (c)所示。
由于GNN的优越性,它们在许多关键领域的各种实际应用中得到了广泛的应用。这些实际应用包括知识推理[18]、自然语言处理[19]、[20]、机器翻译[21]、推荐系统[22]-[24]、视觉推理[25]、芯片设计[26]-[28]、交通预测[29]-[31]、网约车需求预测[32]、垃圾邮件评论检测[33]、分子属性预测[34]等等。GNN在处理广泛的现实应用时增强了机器的智能,例如在谷歌地图[29]中为>实时ETAs提高50%的准确率,在Pinterest[22]中生成>40%更高质量的推荐,在滴滴[32]中实现了>10%的网约车需求预测提高,在阿里巴巴[33]中以90%的准确率提高>66.90%的召回率。然而,工业界和学术界仍然热切期待GNN训练的加速,原因如下[35]- [38]:
图数据的规模迅速扩大,消耗了GNN训练大量的时间。随着互联网上信息的爆炸,新的图表数据不断产生和变化,比如社交中人际关系的建立和消亡,人们在网络购物中对商品偏好的变化。图中的顶点和边的规模分别接近甚至超过数十亿和万亿的数量级,[39]-[42]。图形规模的增长速度也是惊人的。例如,Facebook社交网络的顶点(即用户)数量正以每年17%的速度增长[43]。因此,随着图数据规模的不断增长,GNN的训练时间急剧增加。
新型GNN模型的快速开发和部署涉及到重复训练,大量的训练时间是不可避免的。由于[9]-[11]需要反复训练,因此要建立高精度的GNN模型还需要大量的实验工作。此外,将GNN模型的使用扩展到新的应用领域也需要大量的时间来用真实数据训练模型。如此庞大的计算负担需要更快的训练方法。
分布式训练是加速GNN训练[35]-[38],[40],[44]-[58]的流行解决方案。它试图通过向计算系统添加更多的计算资源或“节点”,并采用并行执行策略来加速整个计算过程,如图1 (d)所示。2019年提出的NeuGraph[44]是分布式GNN训练的第一篇发表作品。从那以后,近年来,人们不断尝试提高分布式GNN训练的效率,使用了各种各样的优化技术,包括工作负载分区[44]-[47],传输规划[37],[44]-[46],缓存策略[35],[51],[52]等。尽管做出了上述努力,但仍然缺乏对分布式GNN训练的综述。多个计算节点之间的管理和合作需要导致不同的工作流程,导致复杂的计算和通信模式,并使优化分布式GNN训练成为一个挑战。然而,尽管在这方面已经或正在做出大量的努力,但几乎没有任何关于这些挑战和解决方案的调研。目前的研究主要集中在GNN模型和硬件加速器[9]-[11],[59]-[62],但并不打算对GNN的分布式训练进行仔细的分类和总体概述,特别是从工作流、计算模式、通信模式和优化技术的角度。
介绍分布式GNN训练的基本概念。 分析分布式GNN训练的工作流程、计算模式和通信模式,总结优化技术。 强调分布式GNN训练与分布式DNN训练的区别 讨论分布式GNN训练领域的有趣问题和机遇。
2. GNN分布式训练
****GNN是一种很有前途的从图数据中学习知识的算法模型[63]-[68]。它将图数据作为输入,并学习图中每个顶点的表示向量。学习到的表示可以用于下游任务,如顶点预测[15],链接预测[16]和图预测[17]。如图3所示,GNN模型由一个或多个层组成,包括邻居聚合和神经网络操作,分别称为aggregation步骤和Combination步骤。在Aggregation步骤中,使用Aggregate函数Aggregate()为每个目标顶点聚合来自上一GNN层的传入相邻顶点的特征向量。例如,在图3中,顶点4将使用Aggregate函数收集自身及其传入邻近顶点(即顶点2,5,8)的特征向量。在Combine步骤中,Combine函数Combine()使用神经网络操作转换每个顶点的聚合特征向量。C.图神经网络的训练方法在本小节中,我们介绍了GNN的训练方法,包括全批训练[69],[70]和小批训练[13],[71]-[74]两种方法。神经网络(GNN)的典型训练过程包括前向传播和后向传播。在正向传播中,输入数据通过神经网络层传递到输出。神经网络通过将前向传播的输出与预先定义的标签进行比较,产生输出的差异。然后在反向传播中,将这些差异沿相反方向在神经网络层中传播,生成梯度来更新模型参数。如图4所示,根据每轮是否涉及整个图,GNN的训练方法可分为全批训练[69]、[70]和小批训练[13]、[71]-[74]。这里,我们定义了一轮全批训练,包括模型计算阶段(包括前向和后向传播)和参数更新阶段。另一方面,小批处理训练中的一轮额外包含一个采样阶段,该阶段对后续模型计算所需的小型工作负载进行采样,因此定位在其他两个阶段之前。因此,一个epoch被定义为数据的整个传递过程,相当于一轮全批训练,而小批训练通常包含几轮。下面将详细介绍这两种方法。
3 分布式GNN训练分类
本节介绍分布式GNN训练的分类。如图5所示,我们首先根据第II-C节介绍的训练方法,即每轮是否涉及整个图,将其分为分布式全批训练和分布式小批训练,并显示两种类型的关键区别。通过分析这两种类型的工作流程,将它们分别划分为两个详细的类型。本节介绍了第一级类别,即分布式全批训练和分布式小批训练,并对它们进行了比较。这两种类型的第二级类别稍后将分别在第四节和第五节介绍。