社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

斩获GitHub 2000+ Star,阿里云开源的 Alink 机器学习平台如何跑赢双11数据“博弈”? | AI 技术生态论

CSDN • 4 年前 • 387 次点击  

嘉宾 | 杨旭,记者 | 郭芮
出品 | CSDN(ID:CSDNnews)
「AI技术生态论」人物访谈栏目是CSDN发起的百万人学AI倡议下的重要组成部分。通过对AI生态顶级大咖、创业者、行业KOL的访谈,反映其对于行业的思考、未来趋势的判断、技术的实践,以及成长的经历。2020年,CSDN将对1000+人物进行访谈,形成系列,从而勾勒出AI生态最具影响力人物图谱及AI产业全景图! 
本文为该系列访谈的第九期,通过和阿里资深算法专家、Alink创始人杨旭的一对一访谈,深入批流一体机器学习平台Alink的“台前幕后”。
百万人学AI你也有份!参与文章评论,评论区留言入选,可获得价值299元的「2020 AI开发者万人大会」在线直播门票一张。
每次购物狂欢都是技术平台的一场数据“博弈”。去年双十一,阿里旗下的电子商务平台天猫就再一次刷新了数据记录,而强大的系统处理性能更是让业界敬佩不已:单日数据处理量达到970PB,每秒处理峰值数据高达25亿条,并帮助天猫产品推荐的点击率提高了4%——这一连串的数据背后,离不开Alink的支撑。
作为业界同时支持批式算法、流式算法的机器学习平台之一,Alink基于Flink开发而来,提供了丰富的算法组件库和便捷的操作框架,且目前已被广泛运用在阿里内部的搜索、推荐、广告等多个核心实时在线业务中,以及支持Kafka、HDFS和HBase等一系列开源数据存储平台。
在本文中,CSDN有幸采访到了Alink创杨旭,他将从一线开发的视角,带我们了解这个开源机器学习平台的技术路径、型应用案例及发展规划等内容。
杨旭,机器学习Alink创始人,阿里巴巴集团计算平台事业部的资深算法专家,阿里云机器学习算法平台PAI中基础机器学习算法的负责人。


Alink衍生背景:算法工程师的开发诉求

随着大数据时代的到来和人工智能的崛起,机器学习所能处理的场景更加广泛和多样。构建的模型需要对批量数据进行处理,为了达到实时性的要求还需要直接对流式数据进行实时预测,还要具备将模型应用在企业应用和微服务上能力。为了取得更好的业务效果,算法工程师们需要尝试更多更复杂的模型,需要处理更大的数据集,使用分布式集群已经成为常态;为了及时对市场的变化进行反应,越来越多的业务选用在线学习方式直接处理流式数据、实时更新模型。
杨旭解释道,“我们团队一直从事算法平台的研发工作,感受到了高效能的算法组件和便捷操作平台对开发者的帮助。”针对正在兴起的机器学习广泛而多样的应用场景,他和所带领的团队在2017年开始基于Flink研发新一代的机器学习算法平台,使得数据分析和应用开发人员能够轻松搭建端到端的业务流程。

Alink究竟是什么?

Alink 是阿里巴巴计算平台事业部PAI团队从2017年开始基于实时计算引擎 Flink 研发的新一代机器学习算法平台,提供丰富的算法组件库和便捷的操作框架,开发者可以一键搭建覆盖数据处理、特征工程、模型训练、模型预测的算法模型开发全流程。项目之所以定为Alink,是取自相关名称(Alibaba, Algorithm, AI, Flink, Blink)的公共部分。
借助Flink在批流一体化方面的优势,Alink能够为批流任务提供一致性的操作。杨旭提到,在2017年初,他们通过调研团队看到了Flink在批流一体化方面的优势及底层引擎的优秀性能,于是基于Flink重新设计研发了机器学习算法库,即Alink平台。该平台于2018年在阿里集团内部上线,随后不断改进完善,在阿里内部错综复杂的业务场景中锻炼成长。
“作为业界首个同时支持批式算法、流式算法的机器学习平台,Alink 提供了 Python 接口,开发者无需 Flink 技术背景也可以轻松构建算法模型。”
据杨旭介绍,Alink 已被广泛运用在阿里巴巴搜索、推荐、广告等多个核心实时在线业务中。在此前落幕的天猫双 11 中,单日数据处理量达到 970PB,每秒处理峰值数据高达 25 亿条。Alink 成功经受住了超大规模实时数据训练的检验,并帮助提升 4% CTR(商品点击转化率)。

Alink功能简介

1、丰富的算法库
Alink拥有丰富的批式算法和流式算法,帮助数据分析和应用开发人员能够从数据处理、特征工程、模型训练、预测,端到端地完成整个流程。如下图所示,Alink提供的开源算法模块中,每一个模块都包含流式和批式算法。比如线性回归,包含批式线性回归训练、流式线性回归预测和批式线性回归预测。

2、友好的使用体验
“为了提供更好的交互式和可视化体验,我们在开源的同时推出了PyAlink,用户可以通过PyAlink的Python包以notebook的方式使用Alink。”杨旭表示,PyAlink不仅支持单机运行,也支持集群提交,并且打通了Operator(Alink算子)和DataFrame的接口,从而使得Alink整个算法流程无缝融入Python。PyAlink也提供使用Python函数来调用UDF或者UDTF。PyAlink在notebook中使用如下图,展示了一个模型训练预测,并打印出预测结果的过程。

3、与Spark对比
在离线学习算法方面,Alink 跟 SparkML 性能对比基本相当,下图给出的是一些经典算法的性能对比:

通过上图可以看出,Alink在大部分算法性能优于Spark,个别算法性能比Spark弱,整体是一个相当的水平。
但是,“在功能的完备性方面,Alink更有优势”,Alink除了覆盖Spark的算法,还包含流式算法、流批混跑、在线学习、中文分词等。

阿里和Alink的开源之路

在2018年,GitHub新增活跃用户数量超过了前六年的总和,相较于2017年新增了40%的组织机构和30%的代码仓库。从全球趋势来看,开源无疑是软件发展的大势所趋。目前在国内,阿里是贡献开源最出色的企业。GitHub上有大量的开源项目由阿里创建,据阿里经济体GitHub开源生态报告统计,国内Top10的开源项目中,阿里的开源项目有6个。
在谈Alink开源之前,杨旭首先介绍了与之相关的Flink与FlinkML。“Flink是一个面向数据流处理和批量数据处理的可分布式的开源计算框架,我们看好Flink引擎的优秀性能,希望基于Flink解决流程机器学习场景的问题。”FlinkML为Flink自带的机器学习算法库,分为旧的版本和新的版本。“在做Alink前,我们首先认真调研了当时的FlinkML(即旧版本FlinkML)的情况,其仅支持10余种算法,支持的数据结构也不够通用,在算法性能方面做的优化也比较少,而且其代码也很久没有更新。所以,我们放弃了基于旧版FlinkML进行改进、升级的想法,决定基于Flink重新设计研发机器学习算法库,随后发展为现在的Alink。”
Alink在发展的过程中一直与Flink社区紧密关联,在每年的Flink Forward大会上,团队一直有汇报项目的进展,共同探讨技术问题,获取反馈和建议。随着Alink功能的不断增强和完善,“社区中欢迎Alink进行开源的呼声日益高涨,我们也开始和Flink社区更紧密联系,推动开源Alink的代码进入FlinkML。”
与此同时,社区中更多的人意识到旧版FlinkML的问题,决定整个废弃掉旧版FlinkML,建设新版FlinkML。“我们积极参加新版FlinkML API的设计,分享Alink API设计的经验;Alink的Params等概念被社区采纳;之后开始为新版FlinkML贡献算法实现代码,已提交了40余个PR,包括算法基础框架、基础工具类及若干算法实现。”
Alink包含了非常多的机器学习算法,在向FlinkML贡献的过程中,需要社区commiter的讨论设计与审查代码,这个过程有助于代码的精益求精,但由于社区commiter的资源有限,代码完全贡献到FlinkML的过程会持续很长时间。“这时,我们不得不考虑是否有其他方式,可以让用户先用起来”,“Alink单独开源是个很好的解决方式”,它与向FlinkML继续贡献算法实现,可以同时进行。用户的使用反馈也有助于更好的改进算法实现。
此想法获得了社区的支持,获得了阿里内部的支持,在Flink Forword Asia 2019大会上,Alink正式宣布开源。
目前,Alink开源已经四个多月,在这段时间里Alink在开源社区的声望越来越高,Alink在Github上已经有2000多颗Star,400多次fork。杨旭感叹道,“目前为止,我们的开源用户群已经将近1000人,并且已经有多位社区开发者向Alink提交算法code,有几十位社区的Alink用户向我们提出Alink算法bug或者算法改进需求。Alink开发团队也积极和社区互动,共同推进Alink平台的发展。”一方面,Alink团队积极支持社区用使用Alink,帮助数百位社区用户解决他们在使用Alink算法遇到的困难。另一方面,针对社区用户提出的算法bug和算法改进需求,Alink团队第一时间作出响应,对这些bug和改进需求进行排期,并在开发完成后及时开源到社区,解决社区用户的需求。
“虽然Alink的开源已经取得了阶段性成果,我们仍然在积极向FlinkML贡献代码”,杨旭最后表示,他希望将更多优秀的机器学习算法贡献给Flink项目,也希望和社区一起努力,共同促进Flink社区机器学习生态的发展和繁荣。

【END】

更多精彩推荐
智能穿戴市场群雄逐鹿,OPPO入局能没有杀手锏?

安卓应用开发顶级框架大盘点,总有一款适合你

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!

程序员为什么应该旗帜鲜明地反对“最佳实践”?

半小时训练亿级规模知识图谱,亚马逊AI开源知识图谱嵌入表示框架DGL-KE

“出道” 5 年采用率达 78%,Kubernetes 的成功秘诀是什么?

警惕!新骗术出现:这些虚假二维码生成器已成功盗取 4.6 万美元!

今日福利:评论区留言入选,可获得价值299元的「2020 AI开发者万人大会」在线直播门票一张。  快来动动手指,写下你想说的话吧。

点击阅读原文,精彩继续!

你点的每个“在看”,我都认真当成了喜欢
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/59996
 
387 次点击