首页 > 其他分享 >Apache Flink ML 2.1.0 发布公告

Apache Flink ML 2.1.0 发布公告

时间:2022-11-08 17:01:34浏览次数:57  
标签:Python ML Flink 算法 算子 Apache 发版 2.1


Apache Flink 社区很荣幸地宣布 Apache Flink ML 2.1.0 版本正式发布!本次发布的版本重点改进了 Flink ML 的基础设施,例如 Python SDK,内存管理,以及性能测试框架,来帮助开发者基于 Flink ML 开发具有高性能,高稳定性,以及高易用性的机器学习算法库。

基于本次发版中提出的改进,以及我们得到的性能测试结果,我们相信 Flink ML 的基础设施已经准备好提供给社区开发者使用,来开发高性能的、支持 Python 环境的机器学习算法库。

我们鼓励您下载该​​版本​​ [1] 并通过 ​​Flink 邮件列表​​ [2] 或 ​​JIRA​​ [3] 与社区分享您的反馈!我们希望您喜欢新版本,并且我们期待了解您的使用体验。

重要特性

1. 算子接口和基础设施

1.1 支持算子级别粒度的内存管控

在之前的版本中,机器学习算子的内部状态数据,例如需要被缓存并在每轮迭代中重复读取的训练数据,是被储存在 state backend 中。这些数据之前只能是全量放在内存中,或者全量放在磁盘上。前一种情况,状态数据量大的情况下,可能导致 OOM 和降低作业稳定性。后一种情况,由于每轮迭代会需要从磁盘读取全量数据并且进行反序列化,在状态数据量不大的情况下,性能低于把数据放在内存中的做法。这个问题增加了开发者开发高性能和高稳定性算子的难度。

在本次发版中,我们改进了 Flink ML 的基础设施,允许指定一个算子可以使用的托管内存配额。在算子状态数据量低于配额的情况下,这些状态数据会被存放在 Flink 的管控内存中。当算子状态数据量高于配额时,超出配额的数据会被存放在磁盘上,以避免产生 OOM。算法开发者可以使用这个机制允许算子对于不同的输入数据量,都能提供最佳性能。开发者可以参考 KMeans 算子的代码来学习使用这个机制。

1.2 开发在线训练算法的基础设施的改进

Flink ML 的一个重要目标是推动在线训练算法的发展。在上一个版本中,我们通过提供 setModelData() 和 getModelData() 方法,让在线训练算法的模型数据能以无限数据流的形式被传输和保存,增强了 Flink ML API 对于在线训练算法的支持能力。本次发版进一步改进和验证了 Flink ML 基础设施对于在线训练算法的支持能力。

本次发版添加了 2 个在线训练算法 (i.e. OnlineKMeans and OnlineLogisticRegression),并提供了单元测试,验证和测试了这些算法的正确性。这两个算法引入了 global batch size,模型版本等概念,并提供了指标和接口来设置和读取相应的信息。虽然这两个算法的预测准确率还没经过调优,但是这些工作将帮助我们进一步建立开发在线训练算法的最佳实践。我们希望越来越多的社区贡献者能加入我们,共同完成这个目标。

1.3 算法性能测试框架

一个易于使用的性能测试框架对于开发和维护高性能的 Flink ML 算法库是至关重要的。本次发版添加了一个性能测试框架,支持编写可插拔可复用的数据生成器,可以读入 JSON 格式的配置,并将性能测试结果以 JSON 格式输出,以支持可定制化的性能测试结果可视化分析。我们提供了开箱可用的脚本将性能测试结果转换为图表。感兴趣的读者可以阅读这份​​文档​​ [4] 来了解如何使用这个测试框架。

2. Python SDK

本次发版增强了 Python SDK 的基础设施,支持 Python 算子调用相应的 Java 算子来完成训练和推理。Python 算子可以提供和 Java 算子相同的性能。这个功能可以极大提升 Python 算法库的开发效率,让算法开发者可以为一套算法同时提供 Python 和 Java 算法库,而无需重复实现算法的核心逻辑。

3. 算法库

本次发版延续之前的算法库开发工作,为多种机器学习算法类别添加了代表性的算法,来验证 Flink ML 基础设施的功能和性能。

以下是本次发版中新增加的算法:

  • 特征工程: MinMaxScaler, StringIndexer, VectorAssembler, StandardScaler, Bucketizer
  • 在线学习: OnlineKmeans, OnlineLogisiticRegression
  • 回归算法: LinearRegression
  • 分类算法: LinearSVC
  • 评估算法: BinaryClassificationEvaluator

为了帮助用户学习和使用 Flink ML 算法库,我们在 ​​Apache Flink ML 网站​​ [5] 上为每个算法提供了相应的 Python 和 Java 样例程序。并且我们提供了每个算法的​​性能测试配置文件​​ [6] 以支持用户验证 Flink ML 的性能。感兴趣的读者可以阅读这份​​文档​​ [4] 来了解如何运行这些算法的性能测试。

升级说明

有关升级过程中可能需要做出的调整及确认,请参阅原文​​发布公告​​ [7]

发布说明和相关资源

用户可以查看​​发布说明​​ [8] 来获得修改和新功能的详细列表。 源代码可以从 Flink 官网的​​下载页面​​ [1] 获得,最新的 Flink ML Python 发布可以从 ​​PyPI​​ [9] 获得。

贡献者列表

Apache Flink 社区感谢对此版本做出贡献的每一位贡献者:

Yunfeng Zhou, Zhipeng Zhang, huangxingbo, weibo, Dong Lin, Yun Gao, Jingsong Li and mumuhhh.

参考链接

[1] ​​flink.apache.org/downloads.h…​​

[2] ​​flink.apache.org/community.h…​​

[3] ​​issues.apache.org/jira/browse…​​

[4] ​​github.com/apache/flin…​​

[5] ​​nightlies.apache.org/flink/flink…​​

[6] ​​github.com/apache/flin…​​

[7] ​​flink.apache.org/news/2022/0…​​

[8] ​​issues.apache.org/jira/secure…​​

[9] ​​pypi.org/project/apa…​​

标签:Python,ML,Flink,算法,算子,Apache,发版,2.1
From: https://blog.51cto.com/u_14286418/5833767

相关文章

  • 从高校中走出的 Apache 顶级项目 —— IoTDB 核心成员黄向东
    本期访谈嘉宾:黄向东Apache顶级开放源代码项目IoTDB(物联网数据库)核心成员、2021年开源先锋、清华大学软件学院助理研究员。Q:简单介绍一下ApacheIoTDBIoTDB(Databas......
  • HM-RocketMQ2.1【案例介绍、技术选型】
    1案例介绍1.1业务分析模拟电商网站购物场景中的【下单】和【支付】业务1.1.1下单用户请求订单系统下单订单系统通过RPC调用订单服务下单订单服务调用优惠券服务......
  • uml类图
    UML类图UML类图介绍在UML2.*的13种图形中,类图是使用频率最高的UML图之一。类图用于描述系统中所包含的类以及它们之间的相互关系,帮助开发人员理解系统,它是系统分析和设......
  • mybatis整合在springboot中时,出现 class path resource [mapper/*.xml] cannot be ope
    如图所示,报错如下  可以看到它提示说我的resource下面没有mapper/*.xml相关的文件,当时就给我整蒙了我一查target文件夹  发现我的UserMapper在 最后才找到问......
  • 信呼v2.2.1文件上传漏洞复现
    前言:这个漏洞的复现呢也是借鉴了Y4tacker的博客(地址:https://blog.csdn.net/solitudi/article/details/118675321)环境配置:环境:win10phpamb下载地址:http://www.rockoa.c......
  • 40个适合初学者练习HTML和CSS的案例
    英文|https://niemvuilaptrinh.medium.com/40-html-css-projects-for-beginner-2021-5bd01ff62361翻译 |杨小爱使用多个库进行网页设计会在一定程度上增加页面加载时间,......
  • 【日总结】2022.11.8
    连续AK十年IOI的熊子豪大帅哥出的模拟赛果然恐怖如斯。)今天下午没时间了,可能只有一道题。2022NOIPA层联测23T2口粮运输应当减少口胡时候看题解的频率。部分分......
  • 如何使用HTML和CSS进行分页?
    英文 | https://www.geeksforgeeks.org/how-to-make-a-pagination-using-html-and-css/?ref=rp翻译|web前端开发(web_qdkf)要为页面创建分页效果非常简单,你可以使用Boots......
  • HTML5 WEB怎么实现大文件上传
    ​ 需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以500G来进行限制。PC端全平......
  • 关于 Angular 部署以及 index.html 里 base hRef 属性的关联关系
    直接在SAP电商云SpartacusUI项目下,运行命令行ngbuild,输出如下:dist文件夹:把dist文件夹下的mystore直接放到tomcatwebapps文件夹下面,运行时:如果修改b......