提速13倍!百度飞桨发布图学习框架PGL

在「WAVE Summit+」2019 深度学习开发者秋季峰会上,百度对外发布基于飞桨的图学习框架Paddle Graph Learning (PGL)。

 

 

近几年来,深度神经网络的成功推动了人工智能的发展,然而,在实际场景中,有大量的数据是在非欧式空间的,这限制了深度神经网络的应用。而图神经网络在非结构化数据上有着出色的处理能力,使得最近一段时间图神经网络在学界与工业界上大放光彩。

 

 

百度顺应潮流发布的PGL充分利用飞桨独有的Lod Tensor特性,实现了高度并行的图神经网络消息传递机制,在性能上超越了DGL等现有图学习框架13倍。依托于飞桨核心框架以及自研的分布式图引擎,PGL可支持十亿节点百亿边的巨图训练。此外,PGL原生支持异构图Meta Path采样以及Message Passing双模式,预置了13种业界主流图学习算法,方便开发者熟悉和使用图神经网络领域模型。下面我们逐一揭秘PGL的技术特色。

 

 

1. 高效:通用消息聚合性能超越业内主流框架DGL 13倍

 

图神经网络模型的独特优势在于充分捕捉数据中的结构信息。PGL采用消息传递范式(Message Passing)构建图神经网络的接口,用户只需要简单地编写send和recv函数就能够轻松的实现一个简单的GCN网络:其中send函数被定义在节点之间的边上,负责将消息从源点发送到目标节点;recv函数则负责将这些消息聚合起来。

 

目前,PGL提供两套聚合方式,一套是Scatter-Gather用于解决常见如求和聚合的方式,而另外一套则是基于飞桨Lod Tensor特性实现的并行通用的消息聚合方法。

 

如下图左所示,为了适配用户通用聚合函数,其他主流框架如DGL是串行地进行消息聚合,效率较慢;而下图右所示的PGL则将消息队列看作一组变长的序列Lod Tensor,然后利用飞桨的Lod Tensor Layers进行快速并行的消息聚合。

 

 

下表为使用LSTM作为聚合函数下GraphSAGE性能对比,得益于并行的消息聚合能力,PGL的速度能够达到DGL的13倍。

 

 

2.  规模:支持十亿节点百亿边的超大规模图训练

 

依托于分布式图引擎以及大规模参数服务器Paddle Fleet,PGL可以轻松在MPI集群上搭建分布式超大规模图学习算法。

 

 

如上图所示,超大规模图会以切分形式在分布式图引擎中存储,此外还提供诸如图信息访问、子图采样、游走等操作算子。在此之上则是PGL构建的分布式图训练模块,该模块会与参数服务器Paddle Fleet进行联动训练,满足用户数十亿节点Embedding学习需求。

 

3.  易用:轻松搭建异构图学习算法

 

在工业应用中,许多的图网络是异构。PGL针对异构图包含多种节点类型和多种边类型的特点进行建模,旨在为用户提供方便易用的异构图框架,让用户可以快速构建自定义的异构图模型。目前,PGL支持异构图的Meta Path采样以及异构图的Message Passing机制。

 

 

上图展示了“用户与商品”的异构图——节点和边存在不同的类型。PGL为用户提供了简单易用的元路径采样接口来处理这样的异构图,如指定路径为UPU(user-product-user),PGL即可采样出类似图中右边的采样序列。

 

Message Passing消息传递

 

异构图存在不同类型的节点和边,为了融入Message Passing机制,PGL可以在异构图中分别对不同类型的边进行消息传递。最后将同一个节点在不同边类型的表示融合在一起。下图展示了PGL异构图Message Passing的过程。

 

 

4.  丰富:预置13种业界主流图学习模型

 

为了便于用户熟悉和使用图神经网络领域的模型,PGL预置了13种主流的图学习模型。这些模型涵盖了同构与异构、图表示学习与图神经网络、分布式训练等样例,可以赋能推荐系统、知识图谱、用户画像、金融风控、智能地图等多个场景。用户可以方便地根据自己的需要选择不同的样例进行复现、修改、上线等。

 

 

综合来看,图学习框架PGL依托于飞桨,在高效、规模、易用、丰富等方面具有独特优势。基于此,PGL已在百度内部与外部企业落地多个项目,赋能各行各业,为人工智能产业化大生产贡献力量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: pgl22g是一款基于Python的形库,它允许开发人员通过简单的代码快速创建各种类型的形。pgl22g的demo提供了一些示例程序,这些程序演示了如何使用pgl22g创建不同类型的形。 例如,pgl22g的demo中提供了一个简单的程序,该程序通过使用pgl22g生成一个矩形。代码非常简单,只需要一行代码即可创建一个矩形对象。此外,pgl22g的demo还包含了一些更复杂的例子,如创建多边形,绘制曲线等。 通过使用pgl22g的demo,开发人员可以了解pgl22g的各种功能,了解如何创建基本的形对象,并学习如何通过pgl22g创建复杂的形。此外,pgl22g的demo还提供了一些示例程序的代码,这些代码可以用作开发人员自己的项目的基础。 总的来说,pgl22g的demo为开发人员提供了一个很好的学习资源,使开发人员能够快速上手使用pgl22g创建各种类型的形。 ### 回答2: pgl22g是一种用于形处理器单元(GPU)的软件开发工具包(SDK),包含了许多可用于深度学习的常用功能,例如神经网络模型、数据集处理、优化器算法等。pgl22g的demo即为该软件开发工具包所提供的示范程序,以此为基础可帮助开发者更好地了解pgl22g提供的功能和使用方法。 pgl22g的demo主要包含以下几个方面的示例: 1.基本神经网络模型的训练和推断示例。演示如何使用pgl22g来构建和训练简单的神经网络模型,并使用该模型对测试数据进行推断。 2.像分类示例。展示了如何使用pgl22g进行像分类,并使用数据增强等技术提高模型的分类准确率。 3.目标检测示例。展示了如何使用pgl22g实现目标检测,并使用数据增强等技术提高模型的准确率。 4.语义分割示例。演示如何使用pgl22g进行语义分割,并使用数据增强等技术提高模型的准确率。 总之,pgl22g的demo可帮助开发者更好地了解pgl22g这个软件开发工具包所提供的功能和使用方法,对开发者在进行GPU深度学习方面的开发具有很大的帮助作用。 ### 回答3: pgl22g是一个开源的Python库,它提供了一个简便的方法来可视化和分析 Gene Ontology (GO) 数据集。它包含了预处理的 GO 层次结构数据以及一些基本的绘函数,例如绘制GOpgl22g还包含了一些有用的功能,例如计算GO的领域特异性指数和GO的基因组覆盖率,这些功能有助于研究者理解GO在生物学中的功能和重要性。这个库不仅可以在科研工作中使用,同样也可以帮助生物信息学教育工作者对GO及其结构的组织和调查进行更深入的理解。总之,pgl22g提供了一个方便而又实用的工具箱,有助于生物研究员更好地探索和解读GO数据集。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值