每次购物狂欢都是技术平台的一场数据“博弈”。去年双十一,阿里旗下的电子商务平台天猫就再一次刷新了数据记录,而强大的系统处理性能更是让业界敬佩不已:单日数据处理量达到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社区机器学习生态的发展和繁荣。
氢氧化锂需求量爆增 未来市场竞争将越发激烈
单身汪也能“晒恩爱?这样的自拍黑科技你一定没见过
一周爆料!盘点无人机十大风云事件
现代Genesis GV80 SUV将发布,能搭载氢燃料电池动力系统吗?
编译SDK新绝招快速赋能产品语音交互能力
Alink衍生背景:算法工程师的开发诉求
广汽本田电动轿车将挂上国产车标
哪个国产车企有资格杀进欧美市场?
iPhone7将支持2A充电 充电速度明显提升
北汽新能源登陆二级市场,资本寒冬正深刻影响新能源板块
定华雷达知识讲堂:雷达液位计的测量原理、特点与应用
三星Note21渲染图疑似曝光
模糊图像处理技术在安防行业的应用与未来发展趋势
芯闻精选:松下推出首款透明商用OLED显示器
水下无人机如何开发以及怎样来应用
新能源汽车骗补:粗放的补贴和误判的市场
爱国者F20000充电宝,充电性能更持久
在越来越多的并购案中,并非所有的并购都能往预期的方向发展
中国移动正式发布了2020-2021年SPN设备集中采购公告
搭载麒麟970的手机有哪些