查看原文
其他

那个分分钟处理10亿节点图计算的Plato,现在怎么样了?

夕颜 AI科技大本营 2020-10-29
「AI 技术生态论」 人物访谈栏目是 CSDN 发起的百万人学 AI 倡议下的重要组成部分。通过对 AI 生态顶级大咖、创业者、行业 KOL 的访谈,反映其对于行业的思考、未来趋势的判断、技术的实践,以及成长的经历。

本文为 「AI 技术生态论」系列访谈的第十八期,将对腾讯大规模开源图计算框架Plato进行详细解读,并预测图计算框架未来发展趋势。

百万人学 AI 你也有份!今日起点击阅读原文报名「2020 AI开发者万人大会」,使用优惠码“AIP211”,即可免费获得价值299元的大会在线直播门票一张。限量100张,先到先得!


作者 | 夕颜
来源 | CSDN(ID:CSDNnews)


2019 年 11 月,腾讯一口气宣布开源五个重磅项目,其中就包括图计算框架 Plato。图计算火了有一段时间了,随着 5G、IoT 等技术的发展,图计算的热度预计将只增不减。今天,我们将以腾讯开源的这款图计算框架 Plato为例,通过微信Plato高性能计算团队负责人于东海,剖析图计算框架构建的技术和未来发展趋势,希望为相关开发者提供参考。
 
何为图计算?
 
首先来了解一下图计算的概念。实际上,图计算与我们平常所说的图像识别、图像处理等技术不同,它所指并非普通的图像和照片,而是用于表示对象之间关联关系的一种抽象数据结构,使用顶点(Vertex)和边(Edge)进行描述:顶点表示对象,边表示对象之间的关系,可抽象成用图描述的数据即为图数据。图计算,便是以图作为数据模型来表达问题并予以解决的这一过程。
 
简单来讲,图计算就是研究如何高效计算、存储并管理大量图数据等问题的方法。
 
由于传统的关系型数据本身存在建模缺陷、水平伸缩等问题,而图数据具有更强大的表达能力,且可以将不同来源、不同类型的数据融合到同一个图里进行分析,得到原本独立分析难以发现的结果,因此,图计算受到业界的重视,尤其是在社交网络、推荐系统、网络安全、文本检索和生物医疗等领域,更是应用广泛。
 
腾讯图计算框架 Plato 诞生始末
 
图计算开源框架其实不少,比如图计算的鼻祖Pregel,Spark GraphX,Hadoop Giraph等,为什么腾讯决定要造一个自己的图计算框架呢?
 
于东海接受采访时说到腾讯做 Plato 的初衷,原来,这是因为原有的主流图计算开源框架的如果要完成腾讯数据量级的超大规模图计算,需要花费超长的时间或者需要大量的计算资源,这都是无法接受的。腾讯的业务场景要求超大规模图计算必须在有限时间和有限资源内完成。于是,在来自加州大学、清华大学、北京大学等世界知名学府组成的高性能计算团队的努力下,号称能够进行 10 亿节点图计算的 Plato 高性能分布式图计算框架就此诞生,给国产图计算框架又添一员“大将”。
 
关于 Plato 框架,这些你不一定知道


关于 Plato,早在发布之初就已经有过各种解读,但 CSDN 今天将回顾并补充拓展一下 Plato 的技术解读,查漏补缺。
 
Plato 是腾讯开源的高性能分布式图计算框架,提供超大规模图数据的离线图计算和图表示学习两大核心能力。
 
 
  • 图计算引擎支持新的计算通信模式

 
Plato 的核心是图计算引擎,包含了图划分、图表示以及多层级计算通信协同调度等模块,并设计了多层次接口支持接入新的计算通信模式,从底层的 API,到图算法库,再到为具体业务量身打造的图工具集。通过这些应用层的接口和工具,Plato 还可以把离线计算结果与其他机器学习算法相结合,共同支撑顶层的不同业务。
 
  • 计算模型借鉴Gemini、KnightKing、Cyclops 等图计算系统设计

 
据于东海介绍,在计算模型上,Plato 借鉴了包括Gemini[1]、KnightKing[2]和Cyclops[3]在内的多个学术界提出的图计算系统设计。Plato 图计算引擎提供了稀疏稠密自适应计算模式、共享内存计算模式和流水线计算模式等。因为不同类型的图算法,算法执行过程差别很大,单一计算模式不能使所有算法的性能达到最优,于是 Plato 对不同类型图算法执行过程加以归纳和提炼,经过计算模式逐步增加和抽象,不断迭代,得到一系列最优的计算模式。
 
  • 10 亿节点图计算几分钟搞定的秘诀

 
Plato 最吸引人特点之一,无非是可以处理 10 亿节点图计算,如此大的处理规模,正是业界所需要的。Plato是如何保证提升数据处理的吞吐量和规模的同时保持速度的?另外,与Giraph/GraphLab/GraphX/Gelly 等主流图计算开源框架相比,Plato 的两大核心能力是腾讯数据量级下的离线图计算和腾讯数据量级下的图表示学习,这两大能力具体是如何实现的?
 
于东海解释道,这是因为 Plato 作为高性能分布式图计算框架,有着很好的平行扩展能力,也就是说,随着数据规模的增加,Plato 计算集群可以平行加入更多的服务器来分担数据的存储和计算。
 
在原有的主流图计算开源框架下,如果要完成 10 亿节点规模的图计算,需要花费数天时间和大量计算资源。而 Plato 通过存储、计算、通信和调度等各方面精巧的设计和优化,压缩数据存储、提升计算效率、优化通信调度,使得 Plato 内存消耗比 GraphX 降低了 1-2 个数量级,同时计算性能也提升了 1-2 个数量级,这意味着,只需中小规模的集群(10台服务器左右)即可在分钟级完成腾讯数据量级的超大规模图计算。
 
  • 自适应图计算引擎进行自动匹配算法的机制

 
CSDN 好奇的另一个点,是 Plato 的自适应图计算引擎是如何进行自动匹配算法的。
 
据于东海解释,Plato 自适应图计算引擎指的是稀疏稠密自适应的计算模式(该方法由 Ligra[4] 首次提出),Plato 会根据算法执行过程中活跃顶点的数量变化来自动选择是执行稠密计算模式还是稀疏计算模式,由此完成自动匹配算法。
 
Plato 落地难点和痛点在哪?
 
图计算作为一种表示和分析大数据的有效方法,已成为社交网络、推荐系统、网络安全、文本检索、金融和医疗等领域至关重要的数据分析和挖掘工具。例如,定期对网页进行影响力排序以提升用户的搜索体验;基于图的认知分析用于提升金融风控能力;通过子图匹配等方式了解蛋白质间的相互作用从而研制更有效的临床医药,等等。
 
然而,任何新兴的技术在落地时难免会遇到困境,图计算也不例外,比如 Plato 离线图计算作为整个数据处理链条的一部分,需要和其他框架结合在一起使用,这样就需要数据衔接,由此会产生数据流转效率的问题。
 
对于这个问题,Plato 有应对的办法,通过分析各个上下游框架的执行过程,优化它们和 Plato 之间的数据衔接,减少数据落地和拷贝,就可以实现高效的数据处理。 
 
当然,图计算落地的难点还有很多,需要在底层技术和应用、市场等各个层面继续完善。
 
自 2019 年 11 月开源以来,Plato 已经集成到腾讯云,通过腾讯云大数据套件、智能钛、腾讯云知识图谱等解决方案对外提供服务能力,已有很多业界著名的互联网公司和高校在使用。
 
目前,Plato已支持图特征、图表示学习等算法,未来将开源更多的算法,比如Network Embedding 和 GNN 算法,同时会持续进行维护和更新,探索和其他框架的结合使用。
 
关于 Plato 的讲解到这里就结束了,接下来是解答一下关于图计算框架大家会有的几个常见疑问,以及对图计算技术发展趋势做出预测。
 
图计算框架与通用计算引擎一定要结合才好用吗?
 
第一个疑问,是关于图计算框架与计算引擎的结合问题,比如Giraph是基于Hadoop做的,GraphX基于Spark,那么大家可能会有疑问,图计算框架与通用计算引擎结合起来是否全是优点?未来是否所有的图计算框架都这样做才是最好的选择?
 
于东海告诉 CSDN,图计算框架与通用计算引擎的结合有好处,但也有劣势,好处是方便和通用,可以在一处完成数据处理、数据挖掘、数据应用的整个过程,但是缺陷也很明显,那就是通用计算引擎没有针对图算法做特定优化,超大规模图数据处理的性能较差。
 
他认为,这其实这就是性能和通用的平衡问题,如果对性能要求不高,从通用的角度来看可以选择通用计算引擎,如果对性能要求较高,那么高性能图计算框架才是最好的选择。
 
图计算技术热点有哪些?图计算框架有哪些发展趋势?


第二个疑问,是在未来,整个图计算领域有哪些值得期待和关注的技术点呢?以及就图计算框架来说,未来还有有哪些发展趋势?
 
他表示,GNN 目前是图计算领域的热点方向,业界著名的互联网企业和高校都相继推出了自研的 GNN 计算框架经网络框架 TF-GNN,阿里开源的 Graph-Learn 等。
 
GNN 即图神经网络(Graph Neural Network),这是一种直接在图结构上运行的神经网络,因为在对图形中节点间的依赖关系进行建模方面能力强大,使得图分析相关的研究领域取得了突破性进展,为学界和业界关注的重点技术。
 
另外,当前已经有些框架可以与深度学习框架结合使用,这也许是图深度学习框架的一个发展方向。

推荐阅读

    你点的每个“在看”,我都认真当成了AI

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存