PGLBox全面解决图训练速度、成本、稳定性、复杂算法四大问题!

news2024/9/27 15:27:56

bd1130e19ee188255582481801c73629.gif

图神经网络(Graph Neural Network,GNN)是近年来出现的一种利用深度学习直接对图结构数据进行学习的方法,通过在图中的节点和边上制定聚合的策略,GNN能够学习到图结构数据中节点以及边内在规律和更加深层次的语义特征。图神经网络不仅成为学术界研究热点,而且已经在工业界广泛应用落地。特别在搜索、推荐、地图等领域,采用大规模分布式图引擎对异构图结构进行建模,已经成为技术发展的新趋势。

目前,分布式图学习框架通常在CPU集群上部署分布式图服务以及参数服务器,来支持大规模图结构的存储以及特征的更新。然而,基于CPU算力的图学习框架在建设成本、训练速度、稳定性以及复杂算法支持等方面都存在不足。

因此,百度飞桨推出了能够同时支持复杂图学习算法+超大图+超大离散模型的GPU大规模图学习训练框架PGLBox。该框架结合了百度移动生态模型团队在大规模业务技术的深耕,凝聚飞桨图学习PGL丰富的算法能力与应用经验,并依托飞桨深度学习平台通用的训练框架能力与灵活组网能力,不仅继承了飞桨前期开源的Graph4Rec[1]超大规模、灵活易用和适用性广的优点[2],更是在训练性能、图算法能力支持方面获得了显著提升。

e94345e0eea4b45af9a7f5bd14fbfd1d.png超高性能的GPU分布式图学习训练框架

ad410bbc117e00c3a134ab5ca60bd1c8.jpeg

随着图数据规模的不断增大,基于CPU分布式的解决方案需要大量的跨机器通讯,导致训练速度慢且稳定性差。为了解决这个问题,PGLBox将图存储、游走、采样、训练全流程GPU化,并实现流水线架构,极致提升异构硬件效率,大幅提升了图学习算法的训练速度。同时,针对NVLink拓扑、网卡拓扑非全互联问题,实现智能化中转通信,进一步提升训练能力。相比基于MPI CPU分布式的传统方案,训练速度提升27倍。PGLBox实现了多级存储体系,对图、节点属性和图模型进行差异化存储,即图结构全显存、节点属性二级存储和图模型三级存储,将图规模提升了一个数量级。为了平衡磁盘、内存、显存之间的占用,PGLBox实现了均衡训练,对Pass大小平滑处理,削峰填谷,降低峰值显存,使得在单机情况下,可支持的图规模得到大幅提升。

78736091afad448036eae92226e365c3.png全面升级预置的图表示学习算法

2e30a4714008002aba7ba05a62818b0a.png

图节点的属性是多种多样的,可以是文本、图像,也可以是用户画像、地理位置等,如何更好地建模节点特征是图表示学习的一个重要挑战。随着预训练模型席卷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在百度内大量业务场景实现广泛应用并取得显著业务收益,如百度推荐系统、百度APP、百度搜索、百度网盘、小度平台

在哪里可以找到我们~

看到这里相信大家已经迫不及待想要开箱试用了吧!PGLBox已全面开源,欢迎大家试用或转发推荐,详细代码库链接请戳下方链接或者点击阅读原文!

⭐️欢迎STAR收藏⭐️

https://github.com/PaddlePaddle/PGL/tree/main/apps/PGLBox

更多交流欢迎通过邮件pglbox@baidu.com与我们联系,感谢支持!

参考文献

[1]https://arxiv.org/abs/2112.01035

[2]推荐效果不如意,不如试试飞桨图学习

[3]https://ogb.stanford.edu/neurips2022/results/

deabeef93235149f2d46bab858f09bfe.gif

关注【飞桨PaddlePaddle】公众号

获取更多技术内容~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/354341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Dubbo学习笔记2

Dubbo学习笔记(二) Dubbo常用配置 覆盖策略 规则: 1、精确优先(方法级优先,接口次之,全局配置再次之) 2、消费者设置优先(如果级别一样,则消费方优先,提供…

网络安全-信息收集- 谷歌浏览器插件收集信息,谷歌hacking搜索语法-带你玩不一样的搜索引擎

网络安全-信息收集- 谷歌浏览器插件收集信息,谷歌hacking搜索语法-带你玩不一样的搜索引擎 前言 一,我也是初学者记录的笔记 二,可能有错误的地方,请谨慎 三,欢迎各路大神指教 四,任何文章仅作为学习使用 …

图解LeetCode——剑指 Offer 28. 对称的二叉树

一、题目 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 二、示例 2.1> 示例 1: 【输入】root [1,2,2,3,4,4,3] 【输出】true 2.2> 示例 2: 【输入】root [1,2,2,nul…

quartz使用及原理解析

quartz简介 ​ Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能: 持久性作业 - 就是保持调度…

瑞典军事研究:从认知心理学的视角探讨军事创新进程

来源:Military Innovation as the Result of Mental Models of Technology 《摘要》 政治紧张局势的加剧和技术发展的进步促使Scandinavian 国家(斯堪的纳维亚半岛,欧洲最大的半岛,有挪威、瑞典两国以及芬兰北端的一小部分。&am…

SpringBoot3集成TDengine自适应裂变存储

前言 首先很遗憾的告诉大家,今天这篇分享要关注才可以看了。原因是穷啊,现在基本都是要人民币玩家了,就比如chatGPT、copilot,这些AI虽然都是可以很好的辅助编码,但是都是要钱。入驻CSDN有些年头了,中间有几…

Python没有指针怎么实现链表?

Python没有指针怎么实现链表? 学习数据结构的的链表和树时,会遇到节点(node)这个词,节点是处理数据结构的链表和树的基础。节点是一种数据元素,包括两个部分:一个是实际需要用到的数据&#xff…

考研复试机试 | C++ | 尽量不要用python,很多学校不支持

目录1.1打印日期 (清华大学上机题)题目:代码:1.2改一改:上一题反过来问题代码:2.Day of Week (上交&&清华机试题)题目:代码:3.剩下的树(清…

sni第三种模式复现、幽灵猫网络抓包方式复现、所有漏洞复现

sni第三种模式复现 搭建环境 [rootlocalhost nginx]# mkdir certificate [rootlocalhost nginx]# cd certificate/[rootlocalhost certificate]# openssl genrsa -des3 -out ssl.key 4096 [rootlocalhost certificate]# openssl req -new -key ssl.key -out aaa.csr [rootlo…

Django框架之模型视图-URLconf

URLconf 浏览者通过在浏览器的地址栏中输入网址请求网站对于Django开发的网站,由哪一个视图进行处理请求,是由url匹配找到的 配置URLconf 1.settings.py中 指定url配置 ROOT_URLCONF 项目.urls2.项目中urls.py 匹配成功后,包含到应用的urls…

ChatGPT时代,别再折腾孩子了

今天这篇完全是从两件事儿有感而发。昨天在文印店,在复印机上看到装订好的几页纸,我瞥了一眼,是历史知识点:隋朝大运河分为四段,分别是___ ___ ___ ___,连接了五大河___ ___ ___ ___ ______ 年&#xff…

开源云真机平台——Sonic应用实践

前言 Sonic是一款开源、支持分布式部署、在线自动化测试的私有云真机平台。想着写一篇总结分享。 一、云真机平台 1.云真机平台对比 目前市面上常见的云真机平台有两种,一种是各大服务商如阿里、腾讯、百度推出的公共云真机平台,如:WeTes…

2月18日绿健简报,星期六,农历正月廿八

2月18日绿健简报,星期六,农历正月廿八坚持阅读,静待花开1. 中国证监会发布全面实行股票发行注册制相关制度规则,即日起施行。2. 返回地面75天后神舟十四号乘组航天员首次与媒体和公众正式见面。3. 银保监会查处5家金融机构违法违规…

C语言结构体复习总结

目录 一、结构体引入 1.1 为什么要用结构体: 1.2 定义一个结构体: 1.3 结构体在声明的时候不要定义变量: 1.4 根据业务需求定义不同的结构体: 二、定义结构体和使用变量 2.1 最好不要在声明结构体时定义变量: …

找工作必看,用Python爬取数据分析岗位信息并可视化分析

导读: 最近经常收到人事小姐姐和猎头小哥哥的面试邀请,想想最近也不是招聘旺季呀。但又想到许多小伙伴们有找工作这方面的需求,今天就来分享一篇简单的爬虫案例,旨在跟大家一起分析一下部分招聘市场。以"数据分析"为例。…

Linux之Xshell工具使用

shell简介Xshell是一个远程工具,可以远程连接linux系统 ,SSH,远程管理 Xshell来远程访问Linux系统的终端 。shell的英文含义是“壳”;它是相对于内核来说的,因为它是建立在内核的基础上,面向于用户的一种表…

Eclipse下Maven的集成

Eclipse下Maven的集成 2.1指定本地maven环境 参考:Eclipse的Maven创建_叶书文的博客-CSDN博客_eclipse创建maven项目 指定用本地maven指定maven仓库设置和地址2.2创建maven项目 1.新建 2.目录设置 3.坐标设置(随便写就行) 4.目录结构 2.3配置…

事件驱动型架构

事件驱动型架构是一种软件设计模式,其中微服务会对状态变化(称为“事件”)作出反应。事件可以携带状态(例如商品价格或收货地址),或者事件也可以是标识符(例如,订单送达或发货通知&a…

【看表情包学Linux】进程地址空间 | 区域和页表 | 虚拟地址空间 | 初识写时拷贝

🤣 爆笑教程 👉 《看表情包学Linux》👈 猛戳订阅 🔥 💭 写在前面:本章核心主题为 "进程地址空间",会通过验证 Linux 进程的地址空间来开头,抛出 "同一个值能有不同内…

【IOS逆向】dumpdecrypted砸壳

【IOS逆向】dumpdecrypted砸壳 前面简单尝试了下frida-trace,发现可以追踪对应pid动态运行时的各种函数,但是对于一个完整APP应用,我们如何得到关键的运行函数,这里就需要对IPA进行一个逆向拆解,找代码逻辑,然后结合f…