图神经网络(GraphNeuralNetwork,GNN)是近年来兴起的一种利用深度学习直接学习图结构数据的方法。通过在图中的节点和边上制定聚合策略,GNN可以学习图结构数据中节点和边的内在规则和更深层次的语义特征。图神经网络不仅成为学术界的研究热点,而且在工业界也得到了广泛的应用。特别是在搜索、推荐、地图等领域,利用大规模分布式图引擎对异构图结构进行建模已成为技术发展的新趋势。目前,分布式图学习框架通常在CPU集群上部署分??布式图服务和参数服务器,以支持大规模图结构的存储和特征更新。然而,基于CPU算力的图学习框架在构建成本、训练速度、稳定性、复杂算法支持等方面存在不足。为此,百度飞桨推出了PGLBox,一款可以同时支持复杂图学习算法+超大图+超大离散模型的GPU大规模图学习训练框架。该框架结合百度移动生态模型团队对大规模业务技术的深耕,凝聚了PGL丰富的算法能力和应用经验借鉴飞桨图,依托飞桨的通用训练框架能力和灵活组网能力桨叶深度学习平台。继承了FlyingPaddle早期开源的Graph4Rec[1]超大规模、灵活易用、适用性广等优点,在训练性能和图算法能力支持。01超高性能GPU分布式图学习训练框架随着图数据规模的不断增大,基于CPU的分布式方案需要大量的跨机通信,导致训练速度慢,稳定性差。为了解决这个问题,PGLBox将图的存储、行走、采样、训练的整个过程都转换到GPU上,并实现了流水线架构,大大提高了异构硬件的效率,大大提高了图学习算法的训练速度。同时,为解决NVLink拓扑与网卡拓扑的非全互联问题,实现智能转接通信,进一步提升训练能力。与基于MPICPU分配的传统方案相比,训练速度提升了27倍。PGLBox实现了多级存储体系,对图、节点属性、图模型进行差异化存储,即图结构全内存、节点属性二级存储、图模型三级存储,增加了图的规模一个数量级。PGLBox为了平衡磁盘、内存、显存的占用,实现均衡训练,平滑passsize,削峰填谷,降低显存峰值,使得支持的图规模在一台机器。02全面升级预设图表示学习算法。图节点的属性是多种多样的,可以是文本、图像、用户画像、地理位置等,如何更好地对节点特征进行建模是图表示学习最重要的方面之一。重要的挑战。随着预训练模型横扫NLP、CV等领域,预训练Transformer是节点属性建模不可或缺的一部分。但是引入Transformer等结构复杂的预训练模型,增加了计算量,这在以往的CPU分布式图表示学习框架中是无法接受的。得益于PGLBox结合GPU算力和大规模图支持,我们可以同时实现大规模预训练模型+大规模图结构信息+大规模离散特征的端到端统一建模。通过三级存储加载大规模图数据后,我们可以通过加载不同的大规模预训练模型(如ERNIE语言大模型、ERNIE-ViL跨模态大模型等)来建模更丰富的节点信息。对于用户ID、商品ID等大规模的离散特征,我们也可以使用PGLBox提供的GPU参数服务器能力进行建模。最后通过图信息聚合的GraphTransformer图神经网络模块完成信息聚合,得到图的最终表示,并结合下游实现跨模态异构图的端到端优化任务。基于PGLBox的GNN技术获得NeurIPS2022Large-ScaleGNNChallenge[3],入选百度Create2022十大黑科技之一,并作为最重要的新框架之一发布于WAVESUMMIT+2022Paddle2.4的特点。PGLBox凭借其超高性能、超大规模、超强大的图学习算法、灵活易用等特点,在百度大量业务场景得到广泛应用,取得了显着的商业效益,比如百度推荐系统、百度APP、百度搜索、百度网盘、小度平台等等,哪里可以找到我们呢~看到这里,相信大家已经迫不及待想开箱试用啦!PGLBox已经完全开源,欢迎大家试用或推荐。详细代码库链接请点击下方链接或点击阅读原文!??欢迎STAR收藏??https://github.com/PaddlePadd...更多交流,请邮件联系pglbox@baidu.com,感谢您的支持!参考文献[1]https://arxiv.org/abs/2112.01035[2]推荐效果不理想,不如试试飞桨图学习[3]https://ogb.stanford.edu/neur...
