Apache Flink 社区很荣幸地宣布 Apache Flink ML 2.2.0 版本正式发布!本次发布的版本重点添加了 Flink ML 中的特征工程算法。现在 Flink ML 包含了 33 个开箱可用的特征工程算法,可以支持很多常见的特征工程任务。随着这些算法的添加,我们相信 Flink ML 已经准备好用于需要特征工程的生产作业,例如预处理离线和在线机器学习任务的输入数据。我们鼓励您下载该版本 [1] 并通过 Flink 邮件列表 [2] 或 JIRA [3] 与社区分享您的反馈!我们希望您喜欢新版本,并且我们期待了解您的使用体验。在机器学习中,模型训练的主要目标之一是将已训练好的模型部署并支持在线推理。在线推理服务需要以毫秒级延迟响应传入请求。之前发布的 Flink ML 算子仅支持使用 Flink 流处理引擎进行近线推理,延迟性能无法满足在线推理的需要。通过使用 FLIP-289 [4] 所提供的接口,Flink ML 现在支持用户从由 Estimator 生成的模型数据加载ModelServable。这个 ModelServable 可以被复制和部署在多个模型推理服务器上,执行大规模分布式的在线模型推理。并且,ModelServable 不依赖 Flink 的流处理引擎,它还可以作为 Java UDF 集成到其他服务或处理框架中,读取由 Flink ML 生成的模型数据来进行离线或在线模型推理。作为展示,我们添加了 LogisticRegressionModelServable 算子,支持 LogisticRegression 在线推理。我们将在接下来的 Flink ML 发布中添加更多 Servable 算子,让 Flink ML 训练得到的模型数据能在更广泛的场景中产生价值。此次 Flink ML 版本显著扩大了特征工程算法的覆盖范围,将算法数量从 6 增加到 33。Flink ML 现在覆盖了 Spark ML 提供的 33 个特征工程算法中的 28 个,使其成为更全面的特征工程任务库。特征工程是现代 AI 基础设施的重要组成部分。它提供的数据预处理能力,不仅适用于传统机器学习算法 (e.g. GBT),也适用于越来越流行的深度学习算法 (e.g. Transformer)。通过添加这些算法,我们希望 Flink ML 能在更广泛的机器学习任务中落地产生价值。所有特征工程算法都可以通过 Flink ML 页面左侧的下拉列表 [5] 访问。我们为每个算法提供了 Python 和 Java 示例,以演示如何使用它们。通过使用 Flink 强大的流处理能力,Flink ML 能更好地进行在线学习和频繁更新模型数据。为了让这个优势落地并产生价值,我们在 Flink ML 中实现了两个在线机器学习算法并应用于阿里集团内部的智能运维平台上。该算法能显著降低智能运维平台的模型更新延迟以及运维成本基于 Flink ML 搭建的智能运维算法服务及应用 [6]。
该智能运维任务使用在线聚类算法来分类和检测日志中的错误信息,以帮助 SRE 和用户更高效地诊断问题。通过使用 OnlineStandardScaler 和 AgglomerativeClustering 算子进行在线数据预处理和在线聚类,我们简化了该任务的基础架构,并能更频繁地更新模型。我们在去年的 Flink Forward Asia [7] 大会上展示了这项工作,并且即将把相关工作集成到开源项目 SREWorks [8]。通过这些在线算法,Flink ML 支持机器学习任务持续使用新数据更新模型,从而提升推理服务的时效性和准确率。这个能力对于能接触到最新用户行为数据的机器学习任务是相当有价值的。这个版本与 Flink ML 2.1 完全向后兼容。用户应该可以升级到 Flink ML 2.2.0,而不必担心任何不兼容性或破坏性变化。用户可以查看发布说明 [9] 以获得详细的修改和新功能列表。二进制文件和源代码可以从 Flink 官网的下载页面 [1] 获得,最新的 Flink ML Python 发布可以从 PyPI [10] 获得。Apache Flink 社区感谢对此版本做出贡献的每一位贡献者:
Zhipeng Zhang, Dong Lin, Fan Hong, JiangXin, Zsombor Chikan, huangxingbo, taosiyuan163, vacaly, weibozhao, yunfengzhou-hub[1] https://flink.apache.org/downloads.html[2] https://flink.apache.org/community.html#mailing-lists[3] https://issues.apache.org/jira/browse/flink[4] https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=240881268[5] https://nightlies.apache.org/flink/flink-ml-docs-master/docs/operators/feature/binarizer/[7] https://flink-forward.org.cn/[8] https://github.com/alibaba/SREWorks[9] https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315522&version=12351884[10] https://pypi.org/project/apache-flink-ml/
▼ 登录「Flink-learning 学训平台」,加入学习 ▼
▼ 关注「Apache Flink」,获取更多技术干货 ▼
点击「阅读原文」,查看更多技术内容