基于Flink的机器学习平台Alink

简介: PAI平台参加“周二开源日”活动,本期分享核心内容摘要:一、Alink是什么;二、Alink如何使用;三、Alink进阶。

一、Alink是什么
1.1 Alink介绍
-Alink是基于Flink的机器学习算法平台
1) 由阿里巴巴计算平台事业部PAI团队研发;
2) 同时支持批式/流式算法,提供丰富的算法库;
3) 帮助数据分析和应用开发人员能够从数据处理、特征工程、模型训练、预测,端到端地完成整个流程。
-相关名称的公共部分
Alibaba,Algorithm,AI,Flink,Blink

1.2 Alink开源
Alink自2019年11月开源至今,共发布以下4大版本:
-Alink v1.0
1) 2019年11月 Alink v1.0.0
Flink Forword Asia大会上宣布开源;
支持Java接口和Python接口(PyAlink)。
2) 2019年12月 Alink v1.0.1
解决一些场景下PyAlink的安装问题;
更新算法文档。

-Alink v1.1
1) 2020年2月 Alink v1.1.0;
支持发布到Maven中央仓库和PyPI;
PyAlink兼容PyFlink,改进UDF / UDTF功能;
支持多版本的Kafka数据源。
2) 2020年4月 Alink v1.1.1
提升使用体验,在参数检查方面更加智能。
3) 2020年6月 Alink v1.1.2
新增30余个数据格式转化组件;
支持多版本Hive数据源;
Pipeline和LocalPredictor支持SQLSelect操作。

-Alink v1.2
2020年7月 Alink v1.2.0
支持多文件系统;
CSV格式读取、导出组件支持各文件系统;
推出AK格式读取、导出组件,简化文件 数据的操作;
支持模型信息摘要、输出;
增加FM分类、回归算法。

-Alink v1.3
2020年12月 Alink v1.3.0
增加ItemCF、UserCF等推荐算法;
增加向量和文本相似度算法;
插件化catalog和文件系统;
丰富model info功能;
改进Pipeline存储和导入;
增加测试工具模块,优化测试体验。
image.png
丰富的数据库

1.3 开源Alink与SparkML对比
image.png
上图为开源Alink与SparkML算法运行时间对比图。纵坐标为各类算法,横坐标为运行同一算法时,SparkML相较开源Alink所花费的时间倍数。由上图可看出,在大多数情况下,开源Alink比SparkML效率更高。

二、Alink如何使用
2.1 Alink使用方式
有两种使用方式:Link与Pipeline。
下面通过一个例子展现两种使用方式的区别。

Link
Link是批式/流式算法通用的串联方式。
image.png
如上图所示,当得到训练数据后,训练数据进行了一次VectorAssembler,将多个列合成一列Vector.
数据处理完成后进行PCA的训练,训练结束后做PCA预测。预测数据做PCA预测时同时做Assembler,目的在于与训练数据保持一致,PCA预测结束后打印出结果。上述例子通过Link与Pipeline实现具体过程如下:
image.png
Link
image.png
Pipeline

2.2 Alink支持多种数据源
image.png
Alink还有一个优势是支持多种数据源。
它支持文件系统数据源与Catalog数据源,文件系统数据源包含HDFS、OSS、Local等,Catalog数据源包含Hive、Mysql、Derby等。这里需重点注意Local。Lcal为本地数据文件系统,如果在本地运行时,就可以使用它去进行测试。
Alink支持多种数据源的优势在于,当用户在使用时,面对不同的数据源不需要将数据导来导去,直接在Alink中区别对应数据源,然后将相应数据写到对应的Sink中去。

2.3 Alink运行
当算法与数据源准备完毕后,可以开始运行代码。运行代码可分为开发与部署,相当于本地运行与集群运行。在开发阶段,可以先用一个小数据集进行本地运行测试,快速验证过程与效果是否正确无误。
当本地运行测试无误后,可以提交到集群,运行大规模数据。
本地运行与集群运行的代码只有些许差异,具体代码如下。
image.png
本地运行:useLocalEnv
image.png
集群运行:useRemoteEnv

2.4 LocalPredictor
集群运行之后,需要进行线上推理,流程图如下图所示。
image.png
数据会在分布式集群系统中进行模型训练,然后将模型存储到文件存储系统或其他Sink里,接着将模型推到线上服务系统进行线上服务,该过程在Alink实现过程如下:
image.png
Alink使用LocalPredictor有个显著的优势,当用户在开发过程中,它使训练过程、线上预测与线下预测等数据保持一致。

三、Alink进阶
上面介绍了Alink的算法、数据源、运行与部署,那如何进行开发?开发的过程中有哪些技巧可以使用呢?
3.1 利用提示和报错信息
-利用提示查看算法相关Op, 可以查看Op和Pipeline。
image.png
举个例子,Alink支持6种数据格式,包括Vector、Triple、Json、Columns、Kv以及Csv,这六种格式可以根据实际需求相互转换。
如果要去做数据转换的时候,该如何找这个名字?
例如要将Columns转换成Csv,就输入Columns,那么跟Columns相关的所有算法都会出现,直接选择想要转换的算法即可,如下图所示。
image.png
这种方式提升了转换算法的效率,解决了用户在数百个算法中寻找的困扰。

-利用提示查看算法支持的参数。
每个算法拥有不同的参数,该如何设置参数?
Alink里的参数均以Set开头,举例如下图所示:
image.png
先将算法名字OneHotEncoder写上,然后写上set,那么相关的这种参数则会罗列出来供用户选择。

-枚举变量,使用JAVA,有枚举值的提示。
image.png
如果 Python的话,也可以通过下图的报错信息来看这个值到底应该怎么填。
image.png
image.png
以之前为例,ChiSqSelectorBatchOp里面有一个变量是SelectorType表示筛选类型,因为用户不清楚所以输入“aaa”,运行之后算法抛出来异常,表示“aaa”并不是SelectorType里的成员。它可能的值为NumTopFeatures、PERCENTILE、FPR、FDR、FWE,此时用户可以选择自己需要用的方法填入相应的值即可。

Alink对列名异常也做了一些优化。
如果列名输错了,行为是怎么样的?
image.png
image.png
如上所示,这个数据里面列是ID跟Test,当用户添了一个“text 1”,运行之后系统报错表示“text 1”无法找到,并提示“do you mean : text ?”,使得用户可以去查找相似列名。

3.2 查看训练信息
接下来介绍如何查看训练信息、模型信息,评估信息等,有些算法有丰富的训练信息可以帮助进行正确性验证,可能会输出每一轮的Loss、学习率,特征重要性、权重等等。
-Loss、学习率,特征重要性、权重
image.png
以上面为例,先定义逻辑回归算法Op,设置参数,使用lazyPrintTrainInfo可以将打出训练过程信息,lazyCollectTrainInfo可以在中间函数选择需要打印的信息。
image.png
上图为运行结果,显示了Loss、GradNorm、learnRate相应信息。
下方的train importance info包含模型的特征重要性,用户可以根据实际需求打印。

-通过训练流程得到的模型,不只是用于推理服务,也可以帮助诊断流程。
image.png
image.png
以上面为例,与之前的TrainInfo非常相似,在后面PrintModelInfo之后系统会打印model信息,在这里可以查看选择列、label值、categorical变量、gaussian变量以及模型等相关信息。还有一些其他的这种信息。

-对于复杂的模型,还可以提供更形象化的模型展示。
image.png
复杂的模型信息较多,例如树型结构。这种情况可以用lazyCollectModelInfo将图saveTreeAsImage,则会得到一个清晰的树状图,用户一目了然。

3.3 查看模型评估结果
-模型评估涉及到复杂的计算;
-信息量大
-需要繁琐的处理
image.png
image.png
image.png

3.4 Op和DataFrame互转
PyAlink提供了与pandas DataFrame的互转操作,能够方便的使用python生态中已有的工具。
image.png

3.5与PyFlink一同使用
-PyAlink新增了getMLEnv的接口,直接获取PyFlink的执行环境;
-Table和Op互转。
image.png

(分享人:品一)

欢迎加入机器学习PAI钉钉群交流!
image.png

云原生场景中的 AI任务调度
基于Flink的机器学习算法平台 Alink(二)推荐算法介绍

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
6月前
|
存储 消息中间件 人工智能
Lazada 如何用实时计算 Flink + Hologres 构建实时商品选品平台
本文整理自 Lazada Group EVP 及供应链技术负责人陈立群在 Flink Forward Asia 2025 新加坡实时分析专场的分享。作为东南亚领先的电商平台,Lazada 面临在六国管理数十亿商品 SKU 的挑战。为实现毫秒级数据驱动决策,Lazada 基于阿里云实时计算 Flink 和 Hologres 打造端到端实时商品选品平台,支撑日常运营与大促期间分钟级响应。本文深入解析该平台如何通过流式处理与实时分析技术重构电商数据架构,实现从“事后分析”到“事中调控”的跃迁。
550 55
Lazada 如何用实时计算 Flink + Hologres 构建实时商品选品平台
|
9月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
在数字化转型中,企业亟需从海量数据中快速提取价值并转化为业务增长动力。5月15日19:00-21:00,阿里云三位技术专家将讲解Kafka与Flink的强强联合方案,帮助企业零门槛构建分布式实时分析平台。此组合广泛应用于实时风控、用户行为追踪等场景,具备高吞吐、弹性扩缩容及亚秒级响应优势。直播适合初学者、开发者和数据工程师,参与还有机会领取定制好礼!扫描海报二维码或点击链接预约直播:[https://developer.aliyun.com/live/255088](https://developer.aliyun.com/live/255088)
635 35
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
|
4月前
|
存储 消息中间件 人工智能
云栖实录|实时计算 Flink 全新升级 - 全栈流处理平台助力实时智能
本文根据 2025 云栖大会演讲整理而成,演讲信息如下 演讲人:黄鹏程 阿里云智能集团计算平台事业部实时计算Flink版产品负责人
360 1
云栖实录|实时计算 Flink 全新升级 - 全栈流处理平台助力实时智能
|
9月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
284 11
|
10月前
|
机器学习/深度学习 存储 Kubernetes
【重磅发布】AllData数据中台核心功能:机器学习算法平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
12月前
|
SQL 存储 HIVE
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
本文整理自鹰角网络大数据开发工程师朱正军在Flink Forward Asia 2024上的分享,主要涵盖四个方面:鹰角数据平台架构、数据湖选型、湖仓一体建设及未来展望。文章详细介绍了鹰角如何构建基于Paimon的数据湖,解决了Hudi入湖的痛点,并通过Trino引擎和Ranger权限管理实现高效的数据查询与管控。此外,还探讨了湖仓一体平台的落地效果及未来技术发展方向,包括Trino与Paimon的集成增强、StarRocks的应用以及Paimon全面替换Hive的计划。
1536 1
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
|
11月前
|
SQL 消息中间件 Serverless
​Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
​Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
361 4
|
11月前
|
SQL 存储 HIVE
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
827 2
|
11月前
PAI-Rec推荐平台对于实时特征有三个层次
PAI-Rec推荐平台针对实时特征有三个处理层次:1) 离线模拟反推历史请求时刻的实时特征;2) FeatureStore记录增量更新的实时特征,模型特征导出样本准确性达99%;3) 通过callback回调接口记录请求时刻的特征。各层次确保了实时特征的准确性和时效性。
477 0

热门文章

最新文章