flink-china / flink-forward-asia-hackathon-2021

本 GitHub 项目是 Flink Forward Asia Hackathon (2021) 的投票专用项目。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[参赛项目] NextML: 基于 Flink 与 Pravega 构建的 AutoML/DL(自动机器学习/深度学习) 平台

arcosx opened this issue · comments

项目简述

NextML 是基于 Flink AI Flow与 Pravega 构建的 AutoML/DL(自动机器学习/深度学习) 平台,用于加速和管理机器学习项目生命周期的服务。 机器学习专业人员、数据科学家和工程师可以在日常工作流中使用它来训练和部署模型,以及管理 MLOps。

背景

随着人工智能的发展,越来越多的企业都在进行智能化应用的落地,也就是AI工程化的能力,即在明确了AI应用的业务需求和场景之后如何使用不同算法的组合,并结合规则与经验得到最优的效果。

以一家制作箱包的传统企业为例。在箱包出厂之前,他们需要借助 X 光扫描箱包内是否含有针、剪刀等异物,然后靠人眼来检查扫描图像。但问题在于,有些「针」可能非常小,不易被肉眼察觉。因此,这家企业就在想:能否让 AI 去「看」这些 X 光图像。

强大的Al工程能力不仅能够促使AI模型性能、可扩展性、可解释性和准确度提升,还能够优化资源配置,提升模型开发效率和务敏捷响应度,最大化Al价值。

在这个背景下AI平台孕育而生,AI平台是构建企业的大规模智能服务的基础设施,实现对企业需要的算法模型提供了分步构建和全生命周期管理的服务,让企业可以将自己的业务不断沉淀为一个个算法模型,以达到复用、组合创新、规模化构建智能服务的目的。

而传统的机器学习模型开发是资源密集型的,需要具备丰富的领域知识,并需要花费大量的时间来生成和比较数十个模型。 使用AutoML技术可以缩减生成生产就绪型 ML 模型所需的时间,同时使工作变得更轻松高效。

目标

本RFC所述的NextML 基于 Flink AI Flow与 Pravega 构建的 AutoML/DL(自动机器学习/深度学习) 平台旨在提供一个 MVP(minimum viable product,最小可行产品),希望通过本项目,越来越多的企业可以更好地落地AI。

实施方案

概述

NextML 使用标准机器学习工作流:

e27e8d98-7ec8-4519-9e97-675c6b656175

  1. 收集数据:根据想要实现的结果,确定训练和测试模型所需的数据。
  2. 准备数据:确保数据格式正确且已加标签。
  3. 训练:设置参数并构建模型。
  4. 评估:审核模型指标。
  5. 部署和预测:使模型可供使用
为什么要基于Flink AI Flow
  • 支持在线场景
  • 与引擎无关,可以支持Python、Flink和Spark等多个计算引擎
  • 与平台无关,可以部署在Local、k8s和yarn上
  • 组件与组件之间的关系以顶级抽象的方式定义AI的工作流

数据处理

特征工程 样本拼接

存在离线训练和在线预测的情况下,对于一个模型来说,批训练和流预测都有一个前置的数据预处理阶段。基于Flink 批流统一的计算引擎避免维护两套不同计算引擎和代码。

训练模型

基于Flink AI Flow针对不同 AI 场景构造一个 DAG,基于AI Flow的API定义多个AI Node,并指定AI Node之间的数据依赖和控制依赖关系,最后生成AI Graph
image

通过AI Flow 管理元数据的服务,包括 Project ( 实验项目 ),Example ( 输入数据集 ),Workflow Job ( 运行时信息 ),Model&Relations ( 模型和其他关联关系 ) 和 Artifact ( 输出文件 ),通过这些信息可以方便的对实验、作业进行有效的监控和管理。

自动特征化和算法选择 (AutoML)

在经典机器学习重复且耗时的处理过程中,数据科学家使用以前的经验和直觉来选择合适的数据特征化和算法进行训练。 自动化机器学习 (AutoML) 可加快此过程。

超参数优化

超参数优化或超参数优化可能是一项枯燥的任务。 NextML 可为任意参数化命令自动执行此任务,而基本无需对作业定义进行任何修改。

多节点分布式训练

通过多节点分布式训练,深度学习的训练效率(有时甚至是经典机器学习训练作业的效率)可以得到显著提高。

部署模型

这里基于Flink Stateful Function 实现Event Driven,所有的推理 Event 不停地进入做函数计算,做在线有状态的计算,然后把结果给用户,再不停地迭代。

3492a01ec72e11cb434b57ef9d9dd1f7

将模型投入生产,对其进行部署。 NextML 托管终结点会抽象化批处理或实时(在线)模型评分(推理)所需的基础结构。

总架构

untitled@2x

成员介绍

  1. @arcosx 天池昵称: [暗影猎手沃金]
  2. 天池昵称: [加勒比海的商人]