2022云栖精选—云栖大会-图计算及其应用论坛

简介: 摘要:本文整理自达摩院的资深技术专家与图计算团队的负责人于文渊老师,在云栖大会“图计算及其应用”分论坛的分享。本篇内容主要分为六个部分:1. 实时离线一体图计算引擎2. 全新的图交互查询/模式匹配IR与引擎3. 图分析引擎的全新升级4. 图学习引擎的全新升级5. 图可视化解决方案6. 用户友好型与易用性提升

lQLPJxbcF2cqNBvMiM0FeLCMz4ifcSGHeANpqgFLAEAA_1400_136.png

image.png

 

目前存在各种各样的图数据类型,如上图所示:网页链接图、生物结构图、社交网络图等。

 

image.png

 

现实中的图计算任务是非常复杂的工作流程,不是仅仅靠一个简单的算法就能实现的。如上图示例:第一,欺诈检测的工作流首先要通过ETL抽取数据,建模以后储存管理,并进行格式转换;第二,开展图挖掘获取有效信息;第三,利用图学习,即机器算法寻找共性特征;第四,展开图分析,通过标签扩散;最后,交互式分析与结果可视化。

 

image.png

 

但是,在真实的应用场景中问题复杂,计算模式多样,解决方案碎片化;同时用户的门槛很高,学习难度也很大;海量数据的计算复杂度高且效率低。因此,解决图计算大规模应用的挑战是我们GraphScope系统开发的重要目标。

 

image.png

 

GraphScope的构建,始于2020年底。两年的时间里,我们结合了阿里的海量数据场景以及以达摩院团队和业界专家学者的合作成果,将各个团队的图计算工作整合在一起,最终形成了GraphScope系统。

 

image.png

 

具体来说, GraphScope的基本架构如上图所示。底层现在是Vineyard分布式内部存储,同时支持其他类型的存储。中间层为一系列高性能图计算引擎,并且用Python语言把各种各样的图计算的负载串联在一起,提供了一个统一的图模型和算法库。同时本系统可以和上下游的其他生态环节打通,使用户可以在使用系统的时候,能以很低的成本同时拷贝上下游的数据。

 image.png


团队目标是希望GraphScope成为用户开发图计算应用的第一站,通过开源努力打造一个业界图计算的标准。第一,为用户建立简单、通用、灵活的编程模型,拓展GremlinPython;第二,支持丰富的图计算任务的类型,比如说图分析、图交互式查询、图模式匹配、图学习等;第三,达到业界领先的性能;第四,有一个开放、易用的Notebook的环境;最后,与上下游的业务做深度结合,形成一个全生命周期的一个设计。

 

image.png

 

12月开源以来,GraphScope入库了中国科协“科创中国”平台,在今年的OSCAR开源产业大会上得到了“尖峰开源社区和开源项目”奖。两年时间里系统积攒了2000+ Github stars,上百个各种各样的图分析和学习算法库,在阿里每天大概完成近5万的日常任务支持。同时,系统支持复杂的图模型,单个图的规模大小在阿里内部也超过了50 TB。总体开发效率对于工程师来说也是从几周加速到几个小时的时间。

 

关于GraphScope平台,用户有很多问题,如下图所示:支不支持JAVA?是否可以把算法放进来?支持Spark吗?数据怎么更新?如何支持在线推理?怎么直观管理生命周期?如何编辑交互式的图查询?不用Python可以吗?等等。

 

因为我们要打造的是一个人人可用的图计算系统,如果大家还有新的问题与建议,也欢迎大家多给我们一些反馈。

 

image.png

 

一、实时离线一体图计算引擎

 

首先,讲一讲GraphScope如何实现离线一体图计算引擎。关于GraphScope究竟是不是图数据库,这是一个常见的问题。杭州有很多关于图数据库的创业公司,大家也很容易联系到我们是否也是图数据库。但我们不是一个图数据库,GraphScope其实是一个图计算引擎。

 

在真实的用户场景中,用户首先有一个实时的数据源会被处理,比如说互联网的用户日志,或者说银行的用户交易。这个数据会沉淀到一个主数据库,即OLTP的主数据库。

 

image.png

 

举个例子,用户从银行ATM机取款,这笔操作一定是一个transaction,就是存在事务的一个数据库里。随后这个数据库里会定期周期性地同步到一个数据仓或数据库里。这些数据包括一些实时的数据,例如日志等行为:在某应用中点了一个商品、点了一个链接、看了某个帖子。日志同样会被沉淀到数据库里。那么这些分析与查询,在传统意义上都叫OLAP请求。

 

image.png

 

那么图处理在现实中是什么呢?一些模式learning的计算,数据从这个端口到那个端口可能要很长时间,比如在阿里最典型的场景里可能要一天或者两天的时间。但是这样会让freshness下降,fresh是新鲜度数据,意思是数据传递从这里到那里经过两天的时间,数据可能就不这么新鲜了。

 

目前解决这个问题最好的办法是做图数据库。换言之,数据都存在数据仓库里和数据库里,如果不想经过很长的链路加载,这时候就需要图数据库,即graph database。但是,如果数据一旦涉及双写的问题,跨系统的ACID即数据的一致性很难保证。

 

因此,GraphScope是一个图计算引擎,可以从关系数据库中实时地把一个关系数据库的表投影成一张图,而用户的增删改查还是在关系数据库里来实现。GraphScope系统本身不处理数据的增删改查,但是它可以通过LOG同步的方式永远和外部数据源的图保持一致;同时支持服务化能力、交互式查询、图分析、图学习。

 

未来,我们希望GraphScopecapability,即处理计算的类型可以更加丰富,这个是我们的下一部分的工作,预计2023年的第一个季度可以完成正式开源,大家敬请期待。

 

image.png

 

二、全新的图交互查询/模式匹配IR与引擎

 

很多用户关心,GraphScope支持图模式匹配吗?为什么查询这么慢?怎么调优?在偏数据图查询的场景里,我希望做一些解答,这也是我们下一步的工作。

 

image.png

 

我们第一个想解决的问题是,如何更好的支持更多的图查询语言。我们的目标是解决用户的需要,用户增加一种图查询语言,需要一百多种不同的算子。那么如果引擎把这一百多种算子各自实现一遍,基本上是无法正常运行的。

 

第二,是否能支持图模式匹配?第三,如何支持更好的系统的自动查询优化,即系统自动匹配一条最优路线?最后,如何支持更多类型的图查询,是采用高查询吞吐还是并行加速?

 

image.png

 

那么如何在一个系统里让交互式查询引擎支持这么多能力呢?首先,我们在关系数据库的查询算子上做了一些和图相关的扩展,发现绝大多数现有的图查询语言的语义,其实都可以用非常有限的算子来实现。因此算子的空间从几百个甚至大几百个优化精简到几十个。并且这几十个的表达能力足够强到,把所有现在最常见的查询全都覆盖掉。

 

第二,我们需要做一层更通用的查询优化器,预计是明年的第三季度。我们认为在这层查询只有算子的组合,可以自动基于图上的特征来做查询优化。优化之后我们分为两个路径,第一个叫High QPS,目标是让这个系统在单位时间内能处理更多的图查询。另一条链路是data parallelplan,目标是单个查询的延时尽量小。

 

第三,我们会构建一个通用的存储,预计明年的年终完成。它可以支持动态图、静态图、内存、外存。

 

三、图分析引擎的全新升级

 

那么还有一些问题怎么解决呢?

 

image.png

 

如图所示,如何高效地开发并让用户能执行更多种多样的复杂图分析的问题,以及如何适配已经有的JAVA等图算法;还有如何更好的融入像Spark为代表的大数据的这种处理生态。这个就是我们要解决的问题。

 

image.png

 

对于这些问题,我们提供FLASH框架。真正的图计算系统中面临的分析问题非常多样化,不一定所有都是固定点计算,一些有非常复杂的控制流。那么我们的目标其实不仅仅是要达到一个很好的性能,同时我们还要让这个开发变得简单。

 

所以我们提出了FLASH,它不仅是让开发简单,使得大家的代码行数可以都减少了,最多的情况下减少了92%。大概只有不到10%的代码行数,可以最高加速两个数量级。同时,基于FLASH我们提供了72个常见的各种全新的图算法,可以直接在GraphScope里使用。

 

image.png

 

我们现在有很多的图引擎,尤其计算引擎。除了GraphScope以外,很多的生产中用的引擎是在大数据套件中使用的,但是往往性能会比较差。是否能把Sprak上的一些应用运行在GraphScope上,并充分发挥GraphScope的性能,将这个生态打通呢?

 

image.png

 

要解决这个问题,首先要解决如图所示的一些问题。即如何在GraphScope上通过各种JAR来实现Java的高效运行。

 

image.png

 

如果不考虑性能,那么JAVAC++c语言、原生代码的调用都翻译成了一次跨语言的调用,但这中间就会有数倍的性能的磨损。那我们能不能解决这个问题呢?

 

image.png

 

其实是可以的,我们和阿里云的编译器团队做了一套开源的Fast FFI的解决方案。自动地把JAVAC++之间的数据类型和方法对接,生成胶水代码。可以让JAVA代码很容易地去调用C++里边的代码,保证它的安全性和易用性。同时,把C++中的代码通过LLVM可以直接翻译到JVM上的byte code,打通了native codeJAVA code之间的屏障。通过这一系列的工作,我们的性能基本上达到C++JAVA实现的性能与JAVAC++类似的能力。

 

image.png

目前的支持主要是通过两条路径,一条是GraphScope Java SDK 实现了性能提高;另一条是GraphScope for Giraph降低图计算任务的运行时间。

 

image.png

 

同时我们也做了Spark支持,核心的一点是Spark是现在最广泛使用的大数据处理套件。它本身自带的图计算GraphX非常低效,基于GraphScope的跨语言能力赋能GraphX加速。同时更好的一点是内部的存储是直接作为RDDSpark的下游任务直接使用,而不需要把这个数据载入到一个中间文件中。所以通过整体的方案实现了和Spark的对接。流程图如下所示:

 

image.png

image.png

达到效果Spark的性能提升大概是4.8倍,端到端的性能提升大概是两倍。其中,端到端的意思是一个数据的转换、转码和重新加载的速度。就用户体验来说,和基本的Spark没有区别。

 

四、图学习引擎的全新升级

 

image.png

 

GNN的训练框架其实越来越多,各种类型的学术界和工业界都已经开发出来了。那么它没有一个很好的支持工业界的在线推理的方式,而我们能不能利用各种各样的像GPU这样的新兴的硬件呢?

 

这些答案都是肯定的。首先我们做了一个升级,增加了高吞吐的采样引擎,这部分已经进入了主分支。同时,我们也已经完成了一个动态图推理的采样服务。使得我们在GraphScope上开发的模型可以很容易地服务客户。

 

image.png

 

工业级分布式GNN训练中的挑战主要是计算与资源利用需求不对等。模型训练是在稠密的数据集上做计算,图采样是在很稀疏的图上做计算,对内存的要求会比较高。两边的不对等使得我们GPU要么内存带宽,要么GPU的计算能力使用效率不高。通信、存储等也是同样道理。

 

image.png

 

为了解决这些问题,我们使用采样训练解耦、异构硬件加速和兼容PyG生态。

 

image.png

 

采样训练解耦在逻辑上把图的采样过程和图的训练过程分为两个角色来分别执行,中间用一个渠道可以让他们通信,这个渠道可以是共享内存,比如说共享显卡的内存和共享主机的内存;也可以通过网络,也可以通过高速互联网络。通过这样一个解耦的方法实现它能灵活部署、独立伸缩,同时又能利用各种部署模式,使得高并发采样和采样训练异步的能力得以实现。

 

image.png

 

我们也实现了异构硬件加速。比如说GPU上采样的支持,通过把特征做缓存,把图结构做切分等,充分利用GPU间的互联的特征,加速采样过程。

 

image.png

 

兼容PyG生态是指,用户可以在没有任何修改的情况下,可以直接使用PyG上的现有的模型。

 

五、图可视化解决方案

 

这部分工作是我们和来自蚂蚁集团的AntV团队一起来合作完成的。

 

image.png

 

比如有一张图,图数据很大,怎么把它展示出来?如何进行探索?怎么让用户能交互式地把查询给表达出来,直观地把图的整个生命周期管理起来?

 

image.png

 

image.png

 

比如可以管理图,建一个图的模型,导入图,进而分析图的数据。那么想做到这样,用户需要有一个类似于整个图的bi工具。在整个站点中实现一个zero code的对接到GraphScope上,然后让用户来实现上述功能。然后它也支持Gremlin的查询,pattern的绘制,对pattern进行查询,点边条件过滤,扩展节点,在这个结果上进行探查。

 

六、用户友好性与易用性提升

 

最后我们希望能实现对用户的友好性和易用性的提升,关键不在于我们的技术怎么样,而在于我们怎么样才能服务好用户。

image.png

 lQLPJxbcF2cqM2TM-M0CnrCgW_7LDpyh1wNpqgFKAPsA_670_248.png

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
8月前
|
人工智能 Serverless 云栖大会
2023云栖大会 | 技术人的独白:重生之“我在云栖”(文末赠8个clouder认证授权码)
作为一个技术人,笔者在9月去上海参加了华为云的2023全联结大会,今天也有幸来到杭州参加了阿里云举办的云栖大会,这篇文章不聊技术和实践,主要想就今天的行程谈谈自己的感想,随便聊一聊。(本人文中提到皆属实,均是个人真实感受,并无故意褒扬或贬低)
2023云栖大会 | 技术人的独白:重生之“我在云栖”(文末赠8个clouder认证授权码)
|
云栖大会
2022云栖大会 | ModelScope模型社区分论坛即将重磅发布(11月3日)
2022云栖大会 | ModelScope模型社区分论坛即将重磅发布(11月3日)
243 0
2022云栖大会 | ModelScope模型社区分论坛即将重磅发布(11月3日)
|
消息中间件 城市大脑 达摩院
【活动已结束】这届云栖大会不一样:打卡这四地儿,玩转云原生应用
两场重磅主论坛,60+峰会和论坛,三大展馆全景式科技展,上千位院士、科学家、学者、行业领军者,尽在2022杭州·云栖大会“计算·进化·未来”。
187 1
【活动已结束】这届云栖大会不一样:打卡这四地儿,玩转云原生应用
|
存储 人工智能 Cloud Native
2022云栖精选—2022云栖大会云原生数据库峰会 开场致辞
致辞嘉宾:李飞飞,阿里巴巴集团副总裁,阿里云数据库产品事业部负责人,ACM和IEEE会士(FELLOW)
2022云栖精选—2022云栖大会云原生数据库峰会 开场致辞
|
云栖大会
《2018广东云栖大会——地产行业分论坛-易行》电子版地址
2018广东云栖大会——地产行业分论坛-易行
45 0
《2018广东云栖大会——地产行业分论坛-易行》电子版地址
|
云栖大会
《2018广东云栖大会——广东云栖-极“智”生活-智能人居》电子版地址
2018广东云栖大会——广东云栖-极“智”生活-智能人居
70 0
《2018广东云栖大会——广东云栖-极“智”生活-智能人居》电子版地址
|
网络协议 Cloud Native 安全
云栖精选第二弹:最全2022云栖大会内容大放送!为精彩技术打call!
2022云栖大会最全资料就在阿里云开发者社区,多场数字技术、产业与生态峰会/论坛的精彩合集倾情奉上!阿里云开发者社区特为大家整理了各专场的精彩内容合集电子书,带领大家再次“云”回峰会现场,探讨数字产品,感受顶尖科技趋势~
云栖精选第二弹:最全2022云栖大会内容大放送!为精彩技术打call!
|
云栖大会
《2020云栖大会分论坛 - 面向未来的智慧办公与企业协同》电子版地址
《2020云栖大会分论坛 - 面向未来的智慧办公与企业协同》PPT
255 0
《2020云栖大会分论坛 - 面向未来的智慧办公与企业协同》电子版地址
|
1月前
|
人工智能 Cloud Native 关系型数据库
阿里云瑶池数据库训练营权益:2022-2023云栖大会主题资料开放下载!
阿里云瑶池数据库训练营权益:2022-2023云栖大会主题资料开放下载!
|
7月前
|
人工智能 自然语言处理 搜索推荐
2023云栖大会 | 阿里云发布通义千问2.0
今天,阿里云正式发布千亿级参数大模型通义千问2.0。在10个权威测评中,通义千问2.0多方面性能超过GPT-3.5,正在加速追赶GPT-4。 此外,通义千问APP在各大手机应用市场正式上线,所有人都可通过APP直接体验最新模型能力。 过去6个月,通义千问2.0在性能上取得巨大飞跃,相比4月发布的1.0版本,通义千问2.0在复杂指令理解、文学创作、通用数学、知识记忆、幻觉抵御等能力上均有显著提升。目前,通义千问的多方面性能已经超过GPT-3.5,加速追赶GPT-4。
2270 0
2023云栖大会 | 阿里云发布通义千问2.0

热门文章

最新文章