PGLBox 超大规模 GPU 端对端图学习训练框架正式发布
作者 | 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/PaddlePaddle/PGL/tree/main/apps/PGLBox
更多交流欢迎通过邮件 pglbox@baidu.com 与我们联系,感谢支持!
——END——
参考资料:
[1]https://arxiv.org/abs/2112.01035
[2]https://mp.weixin.qq.com/s/aSxFpkyX5MyFYLfZuIagzg
[3]https://ogb.stanford.edu/neurips2022/results/
推荐阅读:
百度工程师带你了解Module Federation
巧用Golang泛型,简化代码编写
Go语言DDD实战初级篇
Diffie-Hellman密钥协商算法探究
贴吧低代码高性能规则引擎设计
浅谈权限系统在多利熊业务应用
相关文章:

PGLBox 超大规模 GPU 端对端图学习训练框架正式发布
作者 | PGLBox项目组 导读 PGLBox是百度研发的基于GPU的大规模图模型训练框架,支持数百亿节点和边的图模型全GPU训练,已在百度广泛部署。相比业界主流的分布式 CPU 解决方案,PGLBox 具有超高性能、超大规模、算法丰富、灵活易用、落地广泛等优…...

sql-labs-Less1
靶场搭建好了,访问题目路径 http://127.0.0.1/sqli-labs-master/Less-1/ 我最开始在做sql-labs靶场的时候很迷茫,不知道最后到底要得到些什么,而现在我很清楚,sql注入可以获取数据库中的信息,而获取信息就是我们的目标…...

又一个国内类ChatGPT模型?【秘塔科技上线自研LLM大模型「对话写作猫」】
又一个国内类ChatGPT模型?【秘塔科技上线自研LLM大模型「对话写作猫」】 说个题外话,今天一大早就收到了Biying的邮件。前段时间不是申请了New Biying的内测吗?下午可以尝试一下玩一会儿。如果体验感还不错或者还有很多bug,那我到…...

卷麻了,00后测试用例写的比我还好,简直无地自容......
经常看到无论是刚入职场的新人,还是工作了一段时间的老人,都会对编写测试用例感到困扰?例如: 如何编写测试用例? 作为一个测试新人,刚开始接触测试,对于怎么写测试用例很是头疼,无法…...

动态网页的核心——JSP
文章目录1,JSP 概述2,JSP 小案例2.1 搭建环境2.2 导入 JSP 依赖2.3 创建 jsp 页面2.4 编写代码2.5 测试3,JSP 原理4,JSP 总结4.1 JSP的 缺点4.2技术的发展历程4.3JSP的必要性最后说一句1,JSP 概述 JSP(全称…...

RK3588平台开发系列讲解(系统篇)init.d介绍
平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、Linux启动简介二、sysvinit配置三、inid.d介绍沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇介绍init.d相关知识。 一、Linux启动简介 Linux用户空间启动时,第一个会启动init进程,用来引导启动其…...

taobao.user.buyer.get( 查询买家信息API )
¥开放平台基础API必须用户授权 查询买家信息API,只能买家类应用调用。 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 请求参数 响应参数 点击获取key和secret 请求示例 TaobaoClient client new…...

python学生信息管理系统
wx供重浩:创享日记 对话框发送:python学生信息 免费获取完整源码源文件配置教程说明等 在IDLE中运行《学生信息管理系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时,有两种方…...

【微信小程序】-- WXML 模板语法 - 条件渲染 -- wx:if hidden (十一)
💌 所属专栏:【微信小程序开发教程】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...

2023上半年软考,广州/东莞/深圳/江苏报班是明智的选择
软考是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资格考试。 系统集成…...

C++修炼之练气期一层——命名空间
目录 1.引例 2.命名空间的定义 3.命名空间的使用 4.命名空间使用注意事项 1.引例 #include <stdio.h> #include <stdlib.h>int rand 10;int main() {printf("%d\n", rand);return 0; } 当我们用C语言写下这样的代码,看着并没有什么语法…...

matplotlib综合学习
1.arange函数arange函数需要三个参数,分别为起始点、终止点、采样间隔。采样间隔默认值为1看例子: import numpy as np #import matplotlib.pyplot as plt xnp.arange(-5,5,1) print(x)2.绘制sin(x)曲线import numpy as np import matplotlib.pyplot as …...

IIS .Net Core 413错误和Request body too large解决办法
错误描述图片比较大时,在前端上传就报413错误。根本到不了后端。在网上看到这个文章比较有用。https://blog.csdn.net/wstever/article/details/1288707421、修改网站Web.config配置文件加入下面这段配置<?xmlversion"1.0" encoding"utf-8"…...
Spring Boot数据访问—(springboot 多数据源)—官方原版
Spring Boot 包含许多用于处理数据源的启动器,本文回答与执行此操作相关的问题。一、配置自定义数据源要配置自己的DataSource,请在配置中定义该类型的Bean。Spring Boot在任何需要的地方重用DataSource,包括数据库初始化。如果需要外部化某些…...

高燃!GitHub上标星75k+超牛的Java面试突击版
前言不论是校招还是社招都避免不了各种面试。笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的,我这个有章可循‘说的意思只是说应对技术面试是可以提前准备。运筹帷幄之后,决胜千里之外!不打毫无准备的仗,我觉得大…...

grid宫格布局新手快捷上手-f
前言 grid 网上有很多,但都是大而全的,感觉新人上手很吃力,本文仅以最快捷的方式进行介绍,如何使用grid宫格布局 本文是新人上手,若想了解更多grid布局,请阅读其他文章 使用 声明布局 display: grid;声…...

面试必刷101 Java题解 -- part 3
part1 – https://blog.csdn.net/qq_41080854/article/details/129204480 part2 – https://blog.csdn.net/qq_41080854/article/details/129224785 面试必刷101 Java题解 -- part 3动规五部曲71、斐波那契数列72、跳台阶73、最小花费爬楼梯74、最长公共子序列(二)75、最长公共…...

干货满满!MES的简介和运用
导读 谈及MES必须先谈生产,生产体系模型如图所示,涉及人、财、物、信息等资源,产、供、销等环节,以及供应商、客户、合作伙伴等。 其中,生产管理是通过对生产系统的战略计划、组织、指挥、实施、协调、控制等活动&…...

【ElasticSearch系列-01】初识以及安装elasticSearch
elasticSearch入门和安装一,elasticSearch入门1,什么是elasticSearch2,elasticSearch的底层优点2.1,全文检索2.2,倒排索引2.2.1,正排索引2.2.2,倒排索引2.2.3,倒排索引解决的问题2.2…...

【Leedcode】栈和队列必备的面试题(第一期)
栈和队列必备的面试题(第一期) 文章目录栈和队列必备的面试题(第一期)一、题目二、思路(图解)三、存在的问题与隐患(报错提示)(1)s中只有右括号,无…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
ArcPy扩展模块的使用(3)
管理工程项目 arcpy.mp模块允许用户管理布局、地图、报表、文件夹连接、视图等工程项目。例如,可以更新、修复或替换图层数据源,修改图层的符号系统,甚至自动在线执行共享要托管在组织中的工程项。 以下代码展示了如何更新图层的数据源&…...

向量几何的二元性:叉乘模长与内积投影的深层联系
在数学与物理的空间世界中,向量运算构成了理解几何结构的基石。叉乘(外积)与点积(内积)作为向量代数的两大支柱,表面上呈现出截然不同的几何意义与代数形式,却在深层次上揭示了向量间相互作用的…...