阿里重磅开源全球首个批流一体机器学习平台Alink,Blink功能已全部贡献至Flink

作者|蔡芳芳采访嘉宾|王峰(花名莫问)

11月28日,FlinkForwardAsia2019在北京国家会议中心召开,阿里在会上发布Flink1.10版本功能前瞻,同时宣布基于Flink的机器学习算法平台Alink正式开源,这也是全球首个批流一体的算法平台,旨在降低算法开发门槛,帮助开发者掌握机器学习的生命全周期。在去年的FlinkForwardChina峰会上,阿里宣布将开源Flink的内部分支Blink,把阿里内部对Flink的优化工作全部开放给开源社区,在业内引发热烈讨论,其中有期待也有怀疑。一年后的今天,阿里是否兑现了去年所作的承诺?Blink的合并工作进展如何?刚刚开源的Alink算法平台有哪些独特之处?AI前线在会上对阿里巴巴资深技术专家、实时计算负责人王峰(花名莫问)进行了独家专访,让我们一起来看看Flink的最新变化,以及阿里基于Flink又有哪些新的工作成果。

自2019年1月起,阿里巴巴逐步将内部维护的Blink回馈给Flink开源社区,目前贡献代码数量已超过100万行。国内包括腾讯、百度、字节跳动等公司,国外包括Uber、Lyft、Netflix等公司都是Flink的使用者。

今年8月发布的Flink1.9.0是阿里内部版本Blink合并入Flink后的首次发版,在今天的FlinkForward2019大会上,阿里发布了Flink1.10版本功能前瞻,正式版本预计于2020年1月发布。

据介绍,Flink1.10版本可以看作一个比较重要的里程碑式版本,至此,Blink全部功能都已经进入Flink,包括Blink中比较关键的设计和通用的优化。以下是该版本将包含的主要功能和技术亮点前瞻:

1.完成Blink/Flinkmerge

(1)更加强大的BlinkQueryProcessor

(3)更完善,更细粒度,更灵活的资源管理

2.Hive兼容性生产可用

(1)Meta兼容,支持直接读取Hivecatalog,版本覆盖1.x,2.x到3.x(2)数据格式兼容,支持直接读取Hive表,同时也支持写成Hive表的格式(3)UDF兼容,支持在FlinkSQL内直接调用Hive的UDF,UDTF,UDAF

3.更加强大的Python支持

4.支持原生K8S集成

(1)原生的资源管理,可以根据作业的资源需求动态去申请TaskManager,不需要依赖外部系统或组件(2)更加方便的任务提交,不需要安装kubectl等工具,可以达到和Yarn相似的体验

5.新增多个主流机器学习算法库

(1)包括逻辑回归,随机森林,KMeans等

提问:整个过程中有没有遇到什么比较棘手的问题?莫问:社区是一个相对开放透明的场景,不像自己的项目可以比较随意地改动,而是要走一个民主的过程,包括要经过社区的讨论、大家的认可,要保证代码的质量等。我们既要做到快速推进,还要保证质量和社区的公平性,这个挑战还是很大的。

提问:所以你们怎么平衡这两件事情?

莫问:整个Flink社区的合作模式是比较高效的,社区不同模块的负责人每周都会有视频会议,可能是不同国家的社区讨论,这些都做得非常高效,项目管理做得非常好。在这种机制的保证下,我们可以让代码快速进入同时保证迭代的速度。其实这对工程效率的开发也是非常大的挑战。说白了,我们投入了很多技术人员做这件事,但也不是只看数量。我们投入的很多人手本身就是Apache项目的PMC和Committer,而不完全是普通的工程师,这些人本身对于Apache项目的工作机制和流程都比较熟悉,他们的效率和作战能力不能按一个人这么算。社区就是这样,不是人多的问题,还需要合适的人。

提问:您上午在演讲中提到Flink正在成为一个真正的UnifiedEngine。有趣的是,我们近期已经不止一次听到不同的计算引擎提出类似的说法,比如Spark的核心理念也是成为“统一数据分析平台”,能否请您谈谈Flink的设计理念?二者的统一有什么相同点和不同点?

莫问:Flink的核心理念我们强调过很多次,它的本质计算思想是流处理核心。流处理核心就是所有的都是基于Stream来处理,批可以看作是一个有限的流。像今天提到的在线的StatefulFunction也是EventDriven,所有的Event不停地进入做函数计算,做在线有状态的计算,然后把结果给用户,再不停地迭代。其实在线服务也是无限的,也是不会停止的处理,不停地有人访问,有人处理。Flink的核心是基于流计算的Core,去覆盖Offline和Online,这样它跟Spark还是不太一样的。Spark认为所有东西都是基于Batch的,而流是无数个Batch凑在一起,这一点不太一样。

但大家在宏观上的愿景都是类似的,用一套计算引擎技术或大数据处理的技术,来解决尽量多的场景,这样从用户的角度来说学习成本更低、开发效率更高、运维成本也更低。所以大家的目标和理念是一致的,只不过在实现这个目标的方法上的选择是不一样的。

**提问:下面这个问题我们之前问过Databricks的工程师,今天也想问问您,如果我要做统一的平台,你也要做统一平台,那会不会存在最后到底谁能真正统一谁的问题?

**莫问:我觉得大家并不是说做什么,什么就一定会赢,一定会好。从我个人态度来说,技术还是需要有一定良性的竞争,这样才能相互学习,同时条条大路通罗马,不一定哪一个绝对正确,可能不同场景有不同的偏好或不同的特定区域的需求,或适应的场景不一样。解决类似问题有两三家公司共存,这种状态是比较健康的,就像数据库领域有MySQL、PostgreSQL等,在线服务也类似,起码得有两家大公司在一起竞争,是比较合适的。但最终哪个做得更好,还是取决于是否能把自己的理论做到极致。因为理论是理论,你的理论和我的理论听起来各有千秋,但是谁最后能赢看的是细节,包括用户体验。你是否按照正确的方法在做,细节做得够不够好,而不是大家听起来思路一样就没有区别了。细节和社区生态的发展、推进过程都很重要。

提问:能否先介绍一下FlinkML和Alink的概况,以及二者的关系?

莫问:FlinkML是Flink社区现存的一套机器学习算法库,这一套算法库已经存在很久而且更新比较缓慢。Alink是基于新一代的Flink,完全重新写了一套,跟FlinkML没有代码上的关系。Alink由阿里巴巴大数据团队开发,开发出来以后在阿里巴巴内部也用了,然后现在正式开源出来。

未来我们希望Alink的算法逐渐替换掉FlinkML的算法,可能Alink就会成为新一代版本的FlinkML,当然替换还需要一个比较漫长的过程。Alink包含了非常多的机器学习算法,往Flink贡献或发布的时候也需要比较大的带宽,我们担心整个过程耗时会比较长,所以先把Alink单独开源出来,大家如果有需要的可以先用起来。后面贡献进展比较顺利的情况下,Alink应该能完全合并到FlinkML,也就是直接进入Flink生态的主干,这对于Alink来说是最好的归宿,到这个时候FlinkML就可以跟SparkML完全对应起来了。

提问:除了Alink以外,Flink当前在机器学习领域的工作还有哪些进展?和其他计算引擎相比,您如何评价当前Flink在机器学习和AI领域的工作,它的竞争力足够强吗?

莫问:其实我们还有很多正在进行的工作。机器学习的核心是迭代计算,机器学习训练就是不停地对数据进行迭代训练,训练出来一个模型然后上线。在核心训练的基础上,Flink正在设计新的迭代计算,因为Flink是基于流式计算,所以它的迭代计算可以转化为mini-batch的迭代计算,可以根据数据条目数也可以根据数据段的时长,在流上打出很多细粒度的数据段。

Flink的好处是在流上打细粒度的数据段可行性上没有问题,因为它本来就是纯流式的,截成一段一段没有问题。而Spark的迭代是把一个数据集做一次迭代,再做一次迭代,这个数据集很难切得特别细,切出来一段就是一次任务的运行,细粒度的挑战比较大。Flink的好处是本身可以把粒度截得很细,所以重构原有的迭代计算是可行的。

同时它还可以解决在线训练的问题,比如说互联网的日志流、用户行为是不停产生的,Flink流式迭代可以不间断地处理用户产生的实时数据,可以在线迭代更新,模型可以每隔5分钟更新一次,也可以每隔1分钟更新一次。这样它的模型上线是一个7×24小时环状的更新,这样一套在线学习的体系会给用户带来很大的变化,这个变化不是简单的30%的提升或者是工程上的优化,而是在使用机器学习的理念上会有优化。

这是我们当前正在做的工作,社区里也已经开始讨论了,可能会作为Flink明年1-2个版本的重点。你可以这么认为,Flink去年还是UnifiedEngine,今年开始拥抱AI了,2019年我们做的很多工作是偏SQL的优化,明年我们会更多地切入到AI,就是FlinkML和AI场景的方向上。

**提问:阿里是什么时候决定开源Alink的?**莫问:去年Blink开源的时候,我们就在考虑是否把Alink一起开源了。但是后来觉得,第一个开源还没做,不敢一下子步子迈得这么大,要一步步来,而且Blink开源也要准备很多东西。当时我们没有办法做到两个大的项目同时开源,所以就先把Blink开源做好。

开源是一个很慎重的过程,不能随意想开就开一个。孩子不能管生不管养,要发东西就要有一个长期的计划,要负责任的,得给大家一个很明确的信号,这是有长期计划的,不是放了开源就结束了,以后肯定会有用户问你们放上去以后管不管?如果我们不想好这些问题,对用户来说就适得其反,大家觉得你并没有给大家一个清晰的信号,大家也不敢用。

提问:相比SparkML,Alink的亮点是什么?对于开发者来说在哪些方面会比较有吸引力?

莫问:Alink一是依赖于Flink计算引擎层;第二Flink框架中有UDF的算子,Alink本身对算法做了很多优化,包括在算法实现上做了细节的优化,比如通信、数据访问、迭代数据处理的流程等多方面的优化。基于这些优化可以让算法运行的效率更高,同时我们还做了很多配套工具,让易用性更好。同时Alink还有一个核心技术,就是做了很多FTRL的算法,是天然针对在线学习的。在线学习需要高频快速更新的迭代算法,这种情况下Alink有天然的优势,像今日头条、微博的信息流都会经常遇到这样的在线场景。

在离线学习上Alink跟SparkML对比基本上差不多,只要大家工程化都做得足够好,离线学习无法打出代差,真正的代差一定是设计上的理念不一样。设计上、产品形态、技术形态不一样才会有代差明显的优势。

相比SparkML,我们的基调是批式算法基本一致,包括功能和性能,Alink可以支持算法工程师常用的所有算法,包括聚类、分类、回归、数据分析、特征工程等,这些类型的算法是算法工程师常用的。我们开源之前也对标了SparkML所有的算法,做到了100%对标。除此之外,Alink最大的亮点是有流式算法和在线学习,在自己的特色上能做到独树一帜,这样对用户来说没有短板,同时优势又很明显。

Alink支持的机器学习算法

提问:接下来Flink会按照什么样的频率更新版本?能否透露Flink接下来还会有哪些值得期待的新特性或功能?

莫问:3-4个月,基本上会是一个季度更新一个版本,比如2020年1月份会发1.10,4月份会发1.11。现在还说不好什么时候切2.0,2.0应该会是一个非常有里程碑意义的版本。现在Flink社区可以看到非常多的点,不仅有AI、机器学习,还有今天主题演讲StephanEwen提到的StatefulFunction,也是非常有前景的。其实在线场景还有很多有前景的东西可以挖掘,Serverless(Faas)也是Flink后面的方向。Flink社区有一点非常好,它刚刚演进到1.x版本,还有很大的上升空间,社区的生命力和状态都很好,大家有很多想法想放进去。

提问:未来大数据领域还有哪些新的技术方向或趋势是比较重要的?

莫问:大数据和AI的融合可能是一个很好的机会,大家现在纯玩大数据基本上五花八门什么都玩过了,各种项目层出不穷。AI也是百花争鸣,但其实用户想要的不只是AI,数据在哪?AI没有数据怎么玩?得把特征算好、样本算好才能训练出好的模型。这个模型只有经过不断地迭代反馈才能越来越好。这个过程中数据处理和数据分析非常重要,如果没有一套完整的反馈体系,大数据+AI的链路玩不通。有再好的引擎,如果没有闭环的计算路径也无法真正发挥生产或业务上的效果。所以要把大数据+AI整套处理做成非常易用、好用的解决方案,这是大家最需要的。现在可能一个个零散的点大家已经做到了,很多东西都能找到对应的开源项目,但是需要有一个整体的平台把所有技术串起来。

提问:Flink在一定程度上也想做这样的?

莫问:明年我们会开源一个新的项目AIFlow,目前还没有Ready,我们希望AIFlow可以通过一个工作流程把数据处理、预处理,包括模型的训练、模型管理、模型上线、动态更新,更新完拿到反馈,反馈之后怎么反向优化流程,整个系统串起来。其中每个环节都可以使用不同的引擎来实现,用FlinkOK,用Spark也OK,就看最后哪个好用。比如可以用Flink做大数据处理,TensorFlow做深度学习训练,FlinkML做流式训练,把这些都串联起来给用户提供一个端到端的解决方案,这是很有前景的一个项目。

提问:这是不是跟Databricks的MLflow有点类似?

莫问:AIFlow大于MLflow,因为MLflow只定义了数据格式,AIFlow可能跟Kubeflow更像,AIFlow偏工作流程,MLflow偏重于数据格式,没有覆盖特别完整的工作流程,但我们也不排除MLflow将来越做越大。

THE END
1.OpenLMS:全面开源学习管理系统指南简介:OpenLMS 是一个开源的学习和课程内容管理平台,支持在线教学与互动学习环境。其核心优势在于代码开源,允许定制和共享。提供了包括课程管理、学生协作、评估反馈、用户管理、报告统计和扩展集成在内的多项功能。本指南将详细解读 OpenLMS 的架构、开发与更新过程,以及代码和数据目录结构,是教育从业者和技术开发者了解https://blog.csdn.net/weixin_35899324/article/details/144059668
2.百度为何开源深度机器学习平台?5月20日,百度在github上开源了其深度机器学习平台。此番发布的深度机器学习开源平台属于“深盟”的开源组织,其核心开发者来自百度深度学习研究院(IDL),微软亚洲研究院、华盛顿大学、纽约大学、香港科技大学,卡耐基·梅陇大学等知名公司和高校。 5月20日,百度在github上开源了其深度机器学习平台。此番发布的深度机器学习https://www.51cto.com/article/477831.html
3.飞桨PaddlePaddle飞桨致力于让深度学习技术的创新与应用更简单。具有以下特点:同时支持动态图和静态图,兼顾灵活性和效率;精选应用效果最佳算法模型并提供官方支持;真正源于产业实践,提供业界最强的超大规模并行深度学习能力;推理引擎一体化设计,提供训练到多端推理的无缝对接;唯一提https://www.paddlepaddle.org.cn/science
4.开放式在线学习平台edX全部开源开源软件2011年底,麻省理工学院发起一项开放式在线学习项目“MITx”,用于提供该学院的免费在线课程。去年5月份,哈佛大学也加入进来,与麻省理工学院一起推出了“edX”平台,该平台也提供哈佛大学的相关课程。 在edX平台宣布之初,曾承诺以开源软件的形式发布,以 MITx 为基础,其它感兴趣的大学和机构可自行托管其平台,或者帮助改进和https://www.iteye.com/news/27883
5.全国仅两家!曙光深度学习开源平台入列国家AI重大工程美通社PR曙光深度学习开源平台入列国家AI重大工程 曙光联合中科院计算技术研究所、北京市商汤科技开发、云宏信息科技、成都索贝数码科技申报的“面向深度学习应用的开源平台建设及应用”项目成功入选《2018年“互联网+”、人工智能创新发展和数字经济试点重大工程支持项目名单》。https://www.prnasia.com/story/203909-1.shtml
6.教育管理革命:一站式开源学习平台开源日报No.190教育管理革命:一站式开源学习平台 | 开源日报 No.190 ixahmedxi/noodlehttps://github.com/ixahmedxi/noodle Stars:10.4kLicense:AGPL-3.0 picture Noodle 是一个开源的教育平台,旨在重新思考学生的效率问题。 该项目具有以下核心优势和关键特性: 模块/科目管理https://cloud.tencent.com/developer/article/2390883
7.飞桨paddlepaddle开源深度学习平台飞桨PaddlePaddle 031 AI工具集合AI开发框架 开源深度学习平台 标签:AI开发框架 21-1+1+1+ 链接直达手机查看 开源深度学习平台 数据统计 相关导航https://laohouqi.cn/sites/1610.html
8.WLP在线学习平台WLP在线学习平台- WLP在线学习平台-开源版 --- 通过WLP在线学习平台获得线上学习能力,可辅助企业线下培训或将企业培训课件放置在系统中,方便用户随时随地在线学习。 每个课程可包含多个课时课件,课件支持PDF和mp4视频格式。 课程分类支持多级分类,灵活组织不同类型的http://wlp.wcpknow.com/
9.OSCHINAOSCHINA.NET 是目前领先的中文开源技术社区。我们传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台https://www.oschina.net/
10.百度正式宣布推出深度学习开源平台PaddlePaddle芊雅企服百度近日正式对外宣布开放其深度学习开源平台PaddlePaddle,这也是继Google、Facebook、IBM后又一家将人工智能技术开源的公司。 PaddlePaddle的前身是百度于2013年自主研发的深度学习平台Paddle(Parallel Distributed Deep Learning,并行分布式深度学习),且一直为百度内部工程师研发使用。 https://www.kejianet.cn/paddlepaddle/
11.类脑认知智能引擎“智脉”:全脉冲神经网络的新一代人工智能开源平台据类脑认知智能引擎“智脉”开源平台负责人曾毅研究员介绍,脉冲神经网络(Spiking Neural Network, SNN)作为第三代神经网络,从编码方式、学习法则、信息传递和处理机制等多个角度模拟了生物脑,具有更强的生物可解释性,更加适合建模大脑的各项认知功能,另一方面,由于脉冲序列的稀疏表征,也使得脉冲神经网络具有潜在的低能耗https://aidc.shisu.edu.cn/77/db/c11041a161755/page.htm
12.立创开源硬件平台基于嘉立创EDA进行电路设计的硬件开源设计大本营,集嵌入式、电子模块、DIY设计、物联网、智能硬件、电子应用、电工电子等多种电路设计模块为一体的开源硬件平台https://www.oshwhub.com/
13.字节跳动破局联邦学习:开源Fedlearner框架,广告投放增效209%作为分布式的机器学习范式,联邦学习能够有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,挖掘数据价值。 近两年,联邦学习技术发展迅速,阿里、腾讯、百度、京东、蚂蚁金服、微众银行等一众互联网大厂、金融科技公司皆涉足其中。前不久,字节跳动联邦学习技术团队也开源了自研的联邦学习平台 Fedlearner 。 https://maimai.cn/article/detail?fid=1550604028&efid=zqj9rqK7Yf_Us-lu-0Wnmg
14.[开源]教学实训云平台小程序:满足教学实训学习测评于一体一、开源项目简介 教学实训云平台小程序端:满足教学、实训、学习、测评于一体,随时随地开展实训和学习。 二、开源协议 使用Apache-2.0开源协议 三、界面展示 部分功能截图 四、功能概述 功能列表 首页: 我教的课:显示老师的课程(未开始、进行中、已结束) https://code.exmay.com/detail/1351
15.上海人工智能实验室发布开源平台体系OpenXLab开源是推动人工智能技术进步的重要力量。7月8日,上海人工智能实验室在2021世界人工智能大会的开幕式和科学前沿全体会议上发布其开源平台体系OpenXLab,首发阵容包括两大开源平台:新一代OpenMMLab以及全新发布的OpenDILab。 作为深度学习时代计算机视觉领域最具影响力的开源算法平台, OpenMMLab升级后将涵盖更广泛的算法领域和应https://finance.eastmoney.com/a/202107081989632720.html
16.关于本站学习网站这是一个关于learnsite学习的站点,域名是openlearnsite。用意:1、是希望大家开启learnsite学习,用于信息技术学科教学;2、open意味着开源,希望大家能了解learnsite是“温州水乡”老师编写的一个开源的学习平台。正如“温州水乡”在平台说明中描述的:learnsite学习平台为自由免费软件(仅对平台优化有帮助者提供开发源码)。感谢为http://www.openlearnsite.com/about-site/
17.GitHubFastBee开源物联网平台,简单易用,更适合中小企业和个人学习使用。适用于智能家居、智慧办公、智慧社区、农业监测、水利监测、工业控制等。 系统后端采用Spring boot;前端采用Vue;消息服务器采用EMQX;移动端支持微信小程序、安卓、苹果和H5采用Uniapp;数据库采用Mysql、TDengine和Redis;设备端支持ESP32、ESP8266、树莓派、https://github.com/vsrising/FastBee/
18.大模型为什么是深度学习的未来?人工智能蓝海大脑GPU一、开源开发框架,深度学习平台的基础核心 开源开发框架作为深度学习平台的基础核心,结合编程范式、大规模分布式等关键技术,打造易用、高效、可扩展的框架引擎,解决了工业应用中的广泛问题。培训、软件适配和硬件 ,专注于提高人工智能产品以及软硬件解决方案的开发效率和易用性。 https://xie.infoq.cn/article/d2563c7ce0c59b6c51ef774b8
19.自动化所开放“及第”多智能体开源开放平台科研方面,“及第”平台紧跟智能体博弈决策智能前沿学术研究,建设以单智能体、多智能体强化学习算法为主的决策智能开源算法“秘籍”库,并提供算法在不同环境中的可复现结果,方便智能体博弈研究者直接引用,减少重复性的实验。 应用方面,“及第”平台积极对接决策智能领域的实际应用场景,并将实际问题按照统一接口封装,以“https://www.cas.cn/syky/202110/t20211011_4808510.shtml