腾讯开源进化 8 年,进入爆发期!继刚刚连续开源 TubeMQ
、Tencent Kona JDK
、TBase
、TKEStack
四款重点开源项目后。腾讯开源近日再次迎来重磅项目,宣布正式开源高性能图计算框架 Plato
,这是在短短一周之内,腾讯开源的第五个重大项目。
据腾讯官方介绍,Plato
是腾讯内部图计算 TGraph
团队整合内部资源自主研发的一款高性能图计算框架,取名 Plato
是为了致敬伟大的数学家柏拉图。
Plato
可满足十亿级节点的超大规模图计算需求,将算法计算时间从「天」级缩短到「分钟」级,性能全面领先于其它主流分布式图计算框架,并且打破了原本动辄需要数百台服务器的资源瓶颈。
腾讯 Plato
团队负责人于东海表示:“ Plato
已经赋能腾讯内部包括微信在内的众多核心业务,尤其是为腾讯超大规模社交网络图数据的各类计算提供支撑,解决了现有其他计算框架无法在有限资源和有限时间内完成计算的难点。Plato
不仅为腾讯创造了巨大的业务价值,开源后还将持续推动图计算技术和行业的协同发展,加速创新。”
最强性能的图计算框架 Plato
伴随着人工智能领域技术的发展,「图计算」的应用场景也越来越广泛。熟悉的人都知道,图计算的「图」并不是指普通的图像和照片,而是用于表示对象之间关联关系的一种抽象数据结构。
图计算可以将不同来源、不同类型的数据融合到同一个图里进行分析,得到原本独立分析难以发现的结果,因此成为社交网络、推荐系统、网络安全、文本检索和生物医疗等领域至关重要的数据分析和挖掘工具。Plato
在计算性能方面极其强悍,主要有以下贡献:
Plato
能高效地支撑腾讯超大规模社交网络图数据的各类计算,且性能达到了学术界和工业界的顶尖水平,比Spark GraphX
高出1-2
个数量级,使得许多按天计算的算法可在小时甚至分钟级别完成,也意味着腾讯图计算全面进入了分钟级时代;Plato
的内存消耗比Spark GraphX
减少了1-2
个数量级,意味着只需中小规模的集群(10 台服务器左右)即可完成腾讯数据量级的超大规模图计算,打破了动辄需要上百台服务器的资源瓶颈,同时也极大地节约了计算成本;Plato
隶属腾讯图计算TGraph
,起源于超大规模社交网络图数据,但可以完美适配其他类型的图数据。同时,Plato
作为高性能、可扩展、易插拔的工业级图计算框架,推动了业界超大规模图计算框架的技术进步。
Plato 两大核心能力
目前,Plato
主要提供两大核心能力:腾讯数据量级下的离线图计算和腾讯数据量级下的图表示学习。同时,Plato
可运行在通用的 X86
集群,如 Kubernetes
集群、Yarn
集群等。在文件系统层面,Plato
提供了多种接口支持主流的文件系统,如 HDFS
、Ceph
等。
腾讯 Plato 整体架构图
在架构设计上,Plato
框架的核心是自适应图计算引擎,它能够根据不同类型的图算法,提供多种计算模式供开发者灵活选择,包括自适应计算模式、共享内存计算模式和流水线计算模式等。另外,还设计了良好的接口支持接入新的计算通信模式。
在计算引擎之上,Plato
为算法设计者或具体的业务提供多层次接口:从底层的 API
,到图算法库,再到为具体业务量身打造的「解决方案」——图工具集。通过这些应用层的接口和工具,Plato
还可以把离线计算结果与其他机器学习算法相结合,共同支撑顶层的不同业务。
值得一提的是,目前 Plato
的算法库中的图特征、节点中心性指标、连通图和社团识别等多种算法都已经开源,未来还将进一步开源更多的算法。目前已经开源的算法包括:
- 图特征
- 树深度/宽度
- 图特征打包计算:节点数/边数/密度/节点度分布
- N-阶度
- HyperANF
- 节点中心性指标
- KCore
- Pagerank
- Closeness
- Betweenness
- 连通图 & 社团识别
- Connected-Component
- LPA
- HANP
- 图表示学习
- Node2Vec-Randomwalk
- Metapath-Randomwalk
- 聚类/分圈算法
- LDA
- FastUnfolding
- 其他图相关算法
- BFS
- 共同类计算
- 即将开源的算法
- Network Embedding
- LINE
- Word2Vec
- GraphVite
- GNN
- GCN
- GraphSage
性能对比
下图选取了 Plato
与 Spark GraphX
在 PageRank
和 LPA
这两个 benchmark
算法中的性能对比。从下图可以看到,Plato
的性能比 Spark GraphX
高出 1-2
个数量级。
Plato
不仅在 benchmark
算法中独树一帜,在真实的业务算法中也同样成效卓著。在腾讯数据量级下,Plato
的计算性能也非常优秀。下图给出了 Plato
在腾讯数据量级下的共同类计算、Node2Vec
、LINE
、GraphSage
等典型业务算法的性能。
腾讯开源蓝图
Plato
高性能、可扩展、易插拔的特性在社交网络、推荐系统、生物医疗等领域应用前景广阔,例如:定期对网页进行影响力排序以提升用户的搜索体验、分析庞大的社交网络结构以便精准地为用户推荐服务、通过子图匹配等方式了解蛋白质间的相互作用从而研制更有效的临床医药等。