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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 「AI技术生态论」人物访谈栏目是CSDN发起的百万人学AI倡议下的重要组成部分。通过对AI生态顶级大咖、创业者、行业KOL的访谈,反映其对于行业的思考、未来趋势的判断、技术的实践,以及成长的经历。2020年,CSDN将对1000+人物进行访谈,形成系列,从而勾勒出AI生态最具影响力人物图谱及AI产业...

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

image

「AI技术生态论」人物访谈栏目是CSDN发起的百万人学AI倡议下的重要组成部分。通过对AI生态顶级大咖、创业者、行业KOL的访谈,反映其对于行业的思考、未来趋势的判断、技术的实践,以及成长的经历。2020年,CSDN将对1000+人物进行访谈,形成系列,从而勾勒出AI生态最具影响力人物图谱及AI产业全景图!

每次购物狂欢都是技术平台的一场数据“博弈”。去年双十一,阿里旗下的电子商务平台天猫就再一次刷新了数据记录,而强大的系统处理性能更是让业界敬佩不已:单日数据处理量达到970PB,每秒处理峰值数据高达25亿条,并帮助天猫产品推荐的点击率提高了4%——这一连串的数据背后,离不开Alink的支撑。

作为业界同时支持批式算法、流式算法的机器学习平台之一,Alink基于Flink开发而来,提供了丰富的算法组件库和便捷的操作框架,且目前已被广泛运用在阿里内部的搜索、推荐、广告等多个核心实时在线业务中,以及支持Kafka、HDFS和HBase等一系列开源数据存储平台。
在本文中,CSDN有幸采访到了Alink创始人杨旭,他将从一线开发的视角,带我们了解这个开源机器学习平台的技术路径、典型应用案例及发展规划等内容。

杨旭,机器学习Alink创始人,阿里巴巴集团计算平台事业部的资深算法专家,阿里云机器学习算法平台PAI中基础机器学习算法的负责人。

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

随着大数据时代的到来和人工智能的崛起,机器学习所能处理的场景更加广泛和多样。构建的模型需要对批量数据进行处理,为了达到实时性的要求还需要直接对流式数据进行实时预测,还要具备将模型应用在企业应用和微服务上能力。为了取得更好的业务效果,算法工程师们需要尝试更多更复杂的模型,需要处理更大的数据集,使用分布式集群已经成为常态;为了及时对市场的变化进行反应,越来越多的业务选用在线学习方式直接处理流式数据、实时更新模型。

杨旭解释道,“我们团队一直从事算法平台的研发工作,感受到了高效能的算法组件和便捷操作平台对开发者的帮助。”针对正在兴起的机器学习广泛而多样的应用场景,他和所带领的团队在2017年开始基于Flink研发新一代的机器学习算法平台,使得数据分析和应用开发人员能够轻松搭建端到端的业务流程。

2.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(商品点击转化率)。

3.Alink功能简介

1、丰富的算法库

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

image

2、友好的使用体验

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

image

3、与Spark对比

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

image

通过上图可以看出,Alink在大部分算法性能优于Spark,个别算法性能比Spark弱,整体是一个相当的水平。

但是,“在功能的完备性方面,Alink更有优势”,Alink除了覆盖Spark的算法,还包含流式算法、流批混跑、在线学习、中文分词等。

4.阿里和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社区机器学习生态的发展和繁荣。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-04-07
本文作者:CSDN App
本文来自:“CSDN”,了解相关信息可以关注“CSDN

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
29天前
|
机器学习/深度学习 数据采集 数据处理
谷歌提出视觉记忆方法,让大模型训练数据更灵活
谷歌研究人员提出了一种名为“视觉记忆”的方法,结合了深度神经网络的表示能力和数据库的灵活性。该方法将图像分类任务分为图像相似性和搜索两部分,支持灵活添加和删除数据、可解释的决策机制以及大规模数据处理能力。实验结果显示,该方法在多个数据集上取得了优异的性能,如在ImageNet上实现88.5%的top-1准确率。尽管有依赖预训练模型等限制,但视觉记忆为深度学习提供了新的思路。
27 2
|
2月前
|
机器学习/深度学习 存储 人工智能
揭秘机器学习背后的神秘力量:如何高效收集数据,让AI更懂你?
【10月更文挑战第12天】在数据驱动的时代,机器学习广泛应用,从智能推荐到自动驾驶。本文以电商平台个性化推荐系统为例,探讨数据收集方法,包括明确数据需求、选择数据来源、编写代码自动化收集、数据清洗与预处理及特征工程,最终完成数据的训练集和测试集划分,为模型训练奠定基础。
58 3
|
2月前
|
机器学习/深度学习 算法 Python
“探秘机器学习的幕后英雄:梯度下降——如何在数据的海洋中寻找那枚失落的钥匙?”
【10月更文挑战第11天】梯度下降是机器学习和深度学习中的核心优化算法,用于最小化损失函数,找到最优参数。通过计算损失函数的梯度,算法沿着负梯度方向更新参数,逐步逼近最小值。常见的变种包括批量梯度下降、随机梯度下降和小批量梯度下降,各有优缺点。示例代码展示了如何用Python和NumPy实现简单的线性回归模型训练。掌握梯度下降有助于深入理解模型优化机制。
30 2
|
3月前
|
机器学习/深度学习 数据采集 监控
探索机器学习:从数据到决策
【9月更文挑战第18天】在这篇文章中,我们将一起踏上一段激动人心的旅程,穿越机器学习的世界。我们将探讨如何通过收集和处理数据,利用算法的力量来预测未来的趋势,并做出更加明智的决策。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和思考方式。
|
2月前
|
机器学习/深度学习 算法 数据处理
EM算法对人脸数据降维(机器学习作业06)
本文介绍了使用EM算法对人脸数据进行降维的机器学习作业。首先通过加载ORL人脸数据库,然后分别应用SVD_PCA、MLE_PCA及EM_PCA三种方法实现数据降维,并输出降维后的数据形状。此作业展示了不同PCA变种在人脸数据处理中的应用效果。
35 0
|
3月前
|
机器学习/深度学习 数据采集 算法
利用未标记数据的半监督学习在模型训练中的效果评估
本文将介绍三种适用于不同类型数据和任务的半监督学习方法。我们还将在一个实际数据集上评估这些方法的性能,并与仅使用标记数据的基准进行比较。
264 8
|
2月前
|
机器学习/深度学习 算法 数据建模
【机器学习】类别不平衡数据的处理
【机器学习】类别不平衡数据的处理
|
4月前
|
缓存 开发者 测试技术
跨平台应用开发必备秘籍:运用 Uno Platform 打造高性能与优雅设计兼备的多平台应用,全面解析从代码共享到最佳实践的每一个细节
【8月更文挑战第31天】Uno Platform 是一种强大的工具,允许开发者使用 C# 和 XAML 构建跨平台应用。本文探讨了 Uno Platform 中实现跨平台应用的最佳实践,包括代码共享、平台特定功能、性能优化及测试等方面。通过共享代码、采用 MVVM 模式、使用条件编译指令以及优化性能,开发者可以高效构建高质量应用。Uno Platform 支持多种测试方法,确保应用在各平台上的稳定性和可靠性。这使得 Uno Platform 成为个人项目和企业应用的理想选择。
73 0
|
4月前
|
机器学习/深度学习 缓存 TensorFlow
TensorFlow 数据管道优化超重要!掌握这些关键技巧,大幅提升模型训练效率!
【8月更文挑战第31天】在机器学习领域,高效的数据处理对构建优秀模型至关重要。TensorFlow作为深度学习框架,其数据管道优化能显著提升模型训练效率。数据管道如同模型生命线,负责将原始数据转化为可理解形式。低效的数据管道会限制模型性能,即便模型架构先进。优化方法包括:合理利用数据加载与预处理功能,使用`tf.data.Dataset` API并行读取文件;使用`tf.image`进行图像数据增强;缓存数据避免重复读取,使用`cache`和`prefetch`方法提高效率。通过这些方法,可以大幅提升数据管道效率,加快模型训练速度。
52 0
|
4月前
|
机器学习/深度学习 SQL 数据采集
"解锁机器学习数据预处理新姿势!SQL,你的数据金矿挖掘神器,从清洗到转换,再到特征工程,一网打尽,让数据纯净如金,模型性能飙升!"
【8月更文挑战第31天】在机器学习项目中,数据质量至关重要,而SQL作为数据预处理的强大工具,助力数据科学家高效清洗、转换和分析数据。通过去除重复记录、处理缺失值和异常值,SQL确保数据纯净;利用数据类型转换和字符串操作,SQL重塑数据结构;通过复杂查询生成新特征,SQL提升模型性能。掌握SQL,就如同拥有了开启数据金矿的钥匙,为机器学习项目奠定坚实基础。
40 0