作者 | PGLBox 项目组
导读
PGLBox 是百度研发的基于 GPU 的大规模图模型训练框架,反对数百亿节点和边的图模型全 GPU 训练,已在百度宽泛部署。相比业界支流的分布式 CPU 解决方案,PGLBox 具备超高性能、超大规模、算法丰盛、灵便易用、落地宽泛等劣势。与传统的基于 GPU 的分布式解决方案相比,PGLBox 能够在雷同的老本下晋升 27 倍的训练速度。
全文 2232 字,预计浏览工夫 6 分钟。
图神经网络(Graph Neural Network,GNN)是近年来呈现的一种利用深度学习间接对图构造数据进行学习的办法。通过在图的节点和边上制订聚合的策略,GNN 可能学习到图构造数据中节点以及边外在法则和更加深层次的语义特色。图神经网络不仅成为学术界钻研热点,而且曾经在工业界广泛应用落地。特地在搜寻、举荐、地图等畛域,采纳大规模分布式图引擎对异构图构造进行建模,这曾经成为技术倒退的新趋势。目前,分布式图学习框架通常在 CPU 集群上部署分布式图服务以及参数服务器,来反对大规模图构造的存储以及特色的更新。然而,基于 CPU 算力的图学习框架在建设老本、训练速度、稳定性以及简单算法反对等方面都存在有余。
因而,百度飞桨推出了 可能同时反对简单图学习算法 + 超大图 + 超大离散模型的 GPU 大规模图学习训练框架 PGLBox。该框架联合了百度挪动生态模型团队在大规模业务技术的深耕,凝聚飞桨图学习 PGL 丰盛的算法能力与利用教训,并依靠飞桨深度学习平台通用的训练框架能力与灵便组网能力。不仅继承了飞桨后期开源的 Graph4Rec[1]的超大规模、灵便易用和适用性广的长处[2],而且训练性能取得了显著晋升,图算法能力反对更宽泛。
01 超高性能 GPU 分布式图学习训练框架
随着图数据规模的一直增大,基于 CPU 分布式的解决方案须要大量的跨机器通信,导致训练速度慢且稳定性差。为了解决这个问题,PGLBox 将图存储、游走、采样、训练全流程 GPU 化,并实现流水线架构,极致晋升异构硬件效率,大幅晋升了图学习算法的训练速度。同时,针对 NVLink 拓扑、网卡拓扑非全互联问题,实现智能化直达通信,进一步晋升训练能力。相比基于 MPI CPU 分布式的传统计划,训练速度晋升 27 倍。PGLBox 实现了多级存储体系,对图、节点属性和图模型进行差异化存储,即图构造全显存、节点属性二级存储和图模型三级存储,将图规模晋升了一个数量级。为了均衡磁盘、内存、显存之间的占用,PGLBox 实现了平衡训练,对 Pass 大小平滑解决,削峰填谷,升高峰值显存,使得在单机状况下,可反对的图规模失去大幅晋升。
02 全面降级预置的图示意学习算法
图节点的属性是多种多样的,能够是文本、图像,也能够是用户画像、地理位置等,如何更好地建模节点特色是图示意学习的一个重要挑战。随着预训练模型席卷 NLP、CV 等畛域,预训练 Transformer 是节点属性建模不可或缺的一部分。而简单构造的 Transformer 等预训练模型的引入所减少的大量计算量,是以往 CPU 分布式图示意学习框架不可承受的。得益于 PGLBox 同时兼备 GPU 的运算能力和大规模图的反对,让咱们可能同时实现大规模预训练模型 + 大规模图构造信息 + 大规模离散特色的端对端对立建模。在大规模图数据,通过三级存储加载之后,咱们能够通过加载不同的大规模预训练模型(例如 ERNIE 语言大模型、ERNIE-ViL 跨模态大模型等)来建模更丰盛的节点信息。对于大规模离散特色如用户 ID、商品 ID 等,咱们能够同时利用到 PGLBox 提供的 GPU 参数服务器能力来建模。最初通过图信息汇聚的 Graph Transformer 图神经网络模块实现信息聚合,失去图的最终示意,并配合上游工作实现跨模态异构图端对端优化。
基于 PGLBox 的 GNN 技术取得了 NeurIPS 2022 大规模 GNN 挑战赛冠军 [3],同时入选了 百度 Create2022 十大黑科技,并在 WAVE SUMMIT 2022 上作为飞桨 2.4 版本最重要的框架新个性之一公布。凭借其超高性能、超大规模、超强图学习算法、灵便易用等个性,PGLBox 在百度内大量业务场景实现广泛应用并获得显著业务收益,如广告举荐、信息流举荐、百度搜寻、百度网盘、小度平台等。
03 在哪里能够找到咱们
看到这里置信大家曾经急不可待想要开箱试用了吧!PGLBox 已全面开源,欢送大家试用或转发举荐,具体代码库链接请戳下方链接!
⭐️ 欢送 STAR 珍藏 ⭐
https://github.com/PaddlePadd…
更多交换欢送通过邮件 pglbox@baidu.com 与咱们分割,感激反对!
——END——
参考资料:
[1]https://arxiv.org/abs/2112.01035
[2]https://mp.weixin.qq.com/s/aSxFpkyX5MyFYLfZuIagzg
[3]https://ogb.stanford.edu/neur…
举荐浏览:
百度工程师带你理解 Module Federation
巧用 Golang 泛型,简化代码编写
Go 语言 DDD 实战高级篇
Diffie-Hellman 密钥协商算法探索
贴吧低代码高性能规定引擎设计
浅谈权限零碎在多利熊业务利用