流批一体机器学习算法平台

55次阅读

共计 1985 个字符,预计需要花费 5 分钟才能阅读完成。

针对正在兴起的机器学习广泛而多样的应用场景,阿里巴巴计算平台基础算法团队在 2017 年开始基于 Flink 研发新一代的机器学习算法平台。该项目名称定为 Alink,取自相关名称(Alibaba, Algorithm, AI, Flink, Blink)的公共部分。经过三年的投入研发,Alink 在算法性能、算法规模、算法易用性等方面取得了不错的成果,并实现了产品化。这使得数据分析和应用开发人员能够轻松搭建端到端的业务流程。

在后面的篇幅中,我们将从算法功能、算法性能、用户界面、可视化等方面对 Alink 做一个系统的介绍。

  • 算法功能

Alink 拥有丰富的批式算法和流式算法,能够帮助数据分析和应用开发人员能够从数据处理、特征工程、模型训练、预测,端到端地完成整个流程。如下图所示,Alink 提供的功能算法模块中,每一个模块都包含流式和批式算法。比如线性回归,包含批式线性回归训练,流式线性回归预测和批式线性回归预测。另外,Alink 算法覆盖分类、回归、聚类、评估、统计分析、特征工程、异常检测、文本、在线学习、关联分析等经典领域,是一个通用的机器学习算法平台。

目前,Alink 已经被阿里巴巴集团内部多个 BU 使用,并取得了不错的业务提升。特别是在 2019 年天猫双 11 中,单日数据处理量达到 970PB,每秒处理峰值数据高达 25 亿条。Alink 成功经受住了超大规模实时数据训练的检验,并帮助天猫产品推荐的点击率提高了 4%。

  • 算法性能

下图给出的是一些经典算法与 Spark 的性能对比,通过该图可以看出,Alink 在大部分算法性能优于 Spark,个别算法性能比 Spark 弱,整体是一个相当的水平。

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

  • 用户使用界面

为了提供更好的交互式体验,我们提供两种用户使用界面:webPyAlink

首先我们介绍一下 web 界面。Web 界面提供拖拽的方式创建试验,通过对每一个组件进行配置完成整个试验的参数配置。下图给出的是 web 界面创建的批式、流式、流批混合的试验。

并且 Alink 可以支持节点的级别实验运行状态显示。在各个算法节点旁,我们用闪烁的小灯泡表示“运行中”的状态,用对勾表示“运行完成”的状态。一般情况下,只有批式(batch)组件才有可能运行结束。基于各个组件的运行状态,可以十分方便地判断当前实验运行到了什么程度。并且,如果实验运行中出现了报错或者长时间不结束的情况,也能根据组件运行状态更加方便地定位潜在出问题的组件。除了简单的运行状态以外,Alink 还提供了查看组件输入、输出数据量指标的功能。对于不同类型的组件,Alink 提供了不同的指标展现方式:对于流式(stream)组件来说,在组件运行时,可以接近实时地看到组件的输出 BPS 和 RPS 数值。而对于批式(batch)组件,在组件运行完成后,会展示总的输出数据条数和字节数。这些指标的展示对于判断实验 / 业务是否正常运行可以提供很多的参考,尤其对于一些线上实时的业务,通过这些指标就能直观地看到是否正常运行。

下面我们继续介绍 PyAlink。为了满足脚本用户的需求,我们提供了 PyAlink on notebook,用户可以通过 PyAlink 的 python 包使用 Alink。PyAlink 支持单机运行,也支持集群提交。并且打通 Operator(Alink 算子) 和 DataFrame 的接口,从而使得 Alink 整个算法流程无缝融入 python。PyAlink 也提供使用 Python 函数来调用 UDF 或者 UDTF。PyAlink 在 notebook 中使用如下图,展示了一个模型训练预测,并打印出预测结果的过程:

  • 可视化

Alink 中的可视化包括统计相关的可视化、模型类可视化以及评估可视化等,当前能进行大屏可视化的组件包括:统计分析类组件,直接展示的统计算法的结果;机器学习模型类组件,展示训练好的模型的信息;评估类组件,展示评估接口。
下图给出的是统计可视化,通过下图可以看到我们的统计可视化支持窗口统计和累计统计,并且支持曲线、柱状图、统计表、矩阵图等多种展示方式。

同样,下面两幅图给出的是模型的可视化和评估的可视化。

  • 总结展望

经过三年的发展,Alink 已经成为一个功能完备的机器学习算法平台,而且已经在 2019 年 FFA19 将代码开源到社区,让更多的人能够使用这个平台解决业务问题。虽然 Alink 开源已经取得了阶段性成果,但是我们将继续积极向 FlinkML 贡献代码,我们希望将更多优秀的机器学习算法贡献给 Flink 项目,也希望和社区一起努力,共同促进 Flink 社区机器学习生态的发展和繁荣。

上云就看云栖号:更多云资讯,上云案例,最佳实践,产品入门,访问:https://yqh.aliyun.com/
本文为阿里云原创内容,未经允许不得转载

正文完
 0