欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Flink ML API,专为实时机器学习设计的算法接口和迭代引擎 - III.Flink ML 生态

最编程 2024-04-17 22:14:39
...

img

最近我们已经将 Flink ML 相关代码从 Flink 核心代码库中移入一个单独的 Flink ML 代码库。这样做的首先是为了方便 Flink ML 的快速迭代,其次也希望通过这个手段减少 Flink 核心代码库的复杂度,避免 Flink 核心代码库过于臃肿。

另外,我们在 Github 上建立了一个中立的组织 Flink-extended,能够为所有 Flink 社区的开发者提供平台来贡献一些他们希望开源的项目。方便大家分享不带有特定公司的名字的代码,使不同公司的开发人员可以把代码贡献出来,方便 Flink 社区来使用和共建。我们希望借此促进 Flink 生态的繁荣发展。

目前中立项目中已经有一些比较重要的项目,比如 Deep Learning on Flink,它是由阿里大数据团队主要开发的一个开源项目,核心作用是可以把 Tensorflow 打包成 Java 算子在 Flink 中运行,方便将 Flink 的预处理程序与 Tensorflow 深度学习的训练算法相结合,形成端到端的训练以及推理。

最近我们已经在 Flink ML 中新增了若干常见算法,之后还会继续提供更多开箱可用的算法。

img

上图是我们目前正在进行中的重要工作,其中最核心的工作是将现有的阿里巴巴开源的 Alink 代码库进行改造,使其中的算法能够适配新设计的 Flink ML API,并将改造后的算法贡献到 Apache 项目,方便 Flink 用户得到更多开箱可用的算法。

此外,我们还与 360 一起合作共建 Clink 项目,核心目标是在离线计算中用 Java 去运行某些算子,得到训练结果。另一方面,这些算子需要能够以非常低的延迟做在线推理。然而低延迟在线推理很难用 Java 实现,通常需要用 C++ 来实现。为了使开发者只写一遍算法就能同时应用于 Java 和 C++ 环境,Clink 提供了一些打包的基础类的功能,方便算法开发者写好 C++ 算子之后,能够使用 JNI 打包成 Java 算子,并在 Flink 中使用这些算子。

最后,我们计划在 Flink ML 中开发对于 Python 的支持,其中包括允许算法使用者通过写 Python 程序将 Flink ML 中的 Java 算子进行连接和组合使用,希望能提高机器学习开发者的效率和使用体验。

以上工作基本都已经进入开源项目,其中算法 API 的设计在 FLIP-173 中 ,迭代引擎的设计主要在 FLIP-176 中 ,FLIP-174 和 FLIP-175 分别提供了算法参数的 API 以及 GraphBuilder 的 API。Clink 和 Deep Learning on Flink 等项目也已经在 Flink-extended 的组织上,欢迎大家使用。

 

点击查看直播回放 & 演讲PDF

 


更多 Flink 相关技术问题,可扫码加入社区钉钉交流群
第一时间获取最新技术文章和社区动态,请关注公众号~

 

O1CN01tmtpiy1iazJYZdixL_!!6000000004430-2-tps-899-548.png"

 

活动推荐

阿里云基于 Apache Flink 构建的企业级产品-实时计算Flink版现开启活动:
99 元试用 实时计算Flink版(包年包月、10CU)即有机会获得 Flink 独家定制卫衣;另包 3 个月及以上还有 85 折优惠!
了解活动详情:https://www.aliyun.com/product/bigdata/sc

image.png