Kubeflow调研

本文详细介绍了Kubeflow的基本概念、组件创建(Yaml、代码、Jupyter Notebook)、架构以及应用场景,包括TFJob、KFServing、Jupyter Notebook整合,并通过实例展示了如何实现一个分子属性预测问题的解决方案。Kubeflow提供了丰富的机器学习框架支持,高度集成Kubernetes,但也存在部署复杂、运维成本高等挑战。
摘要由CSDN通过智能技术生成

Kubeflow基本概念

Kubeflow 是一个 Google 主导的 Kubernetes 与机器学习工作流集成框架,帮助机器学习任务更好的运行在云环境中,进行分布式的处理,扩展到大量的机器,可以移植到不同平台,观察模型的运行效果等等。

Kubeflow 可以做的事情包括:

  • data preparation
  • model training
  • prediction serving
  • service management

机器学习工作流分为开发流程生产流程两个阶段

在这里插入图片描述

图1. 开发流程与生产流程

Kubeflow 有以下的概念:

  • Pipeline - 一个机器学习工作流管线,执行一系列的计算步骤,有多个 component 组成

  • Component - 工作流中的一个计算任务,相当于一个 python 函数,有固定的输入和输出,并且相互依赖

  • Experiment - 工作流的一个配置环境,一套执行的参数

  • Run - 表示 Pipeline 在一个 Experiment 环境下的一次执行

  • Recurring Run - 是一种会定时重复执行的 Run,也称为 Job

  • Step - 对应 Run 中一个 Component 的执行

  • Artifact - 一个输入或输出得到数据集

在这里插入图片描述

图2. Kubeflow整体设计

创建Kubeflow的Component

Kubeflow 的设计中,每个 Component 就是一个 python 函数,被打包成 Docker 容器,多个 Component 组成一个 Pipeline,提交到 Kubernetes 进行执行,并按要求分配指定的计算资源需求, Kubeflow Pipeline 的 Server 进行管理。指定输入和输出数据的 s3 路径,由系统进行加载。Run 的记录,Pipeline 的配置,以及运行的结果可以在 Kubeflow UI 中查看,以及创建新的 Run。

每个 Component 是一个具体的计算任务,支持多种机器学习框架,如 Tensorflow,PyTorch,MXNet,MPI。Pipeline 除了可以通过 YAML 文件定义之外还可以用 Python 脚本或者在 Jupyter Notebook 中动态创建。除了单次执行的 Pipeline,**还支持以 Serving 的方式将计算模型部署成一个服务,并监控 Serving 的状态。**任务依赖是由 Argo 来进行管理的。每一种计算任务有相应的 Operator 调度,控制底层 Kubernetes 的调度和资源分配。整个系统可以运行在不同的云平台上。

相关文档

通过Yaml定义

代码1 一个 Component 的定义:

name: xgboost4j - Train classifier
description: Trains a boosted tree ensemble classifier using xgboost4j

inputs:
- {
   name: Training data}
- {
   name: Rounds
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值