https://www.toutiao.com/a6642101619120931335/

2019-01-03 18:00:00

介绍

Pipeline是Kubeflow社区最近开源的一个端到端工作流项目,帮助我们来管理,部署端到端的机器学习工作流。Kubeflow 是一个谷歌的开源项目,它将机器学习的代码像构建应用一样打包,使其他人也能够重复使用。

kubeflow/pipeline 提供了一个工作流方案,将这些机器学习中的应用代码按照流水线的方式编排,形成可重复的工作流。并提供平台,帮助编排,部署,管理,这些端到端机器学习工作流。

概念

pipeline 是一个面向机器学习的工作流解决方案,通过定义一个有向无环图描述流水线系统(pipeline),流水线中每一步流程是由容器定义组成的组件(component)。

当我们想要发起一次机器学习的试验时,需要创建一个experiment,在experiment中发起运行任务(run)。Experiment 是一个抽象概念,用于分组管理运行任务。

  • Pipeline:定义一组操作的流水线,其中每一步都由component组成。 背后是一个Argo的模板配置。
  • Component: 一个容器操作,可以通过pipeline的sdk 定义。每一个component 可以定义定义输出(output)和产物(artifact), 输出可以通过设置下一步的环境变量,作为下一步的输入, artifact 是组件运行完成后写入一个约定格式文件,在界面上可以被渲染展示。
  • Experiment: 可以看做一个工作空间,管理一组运行任务。
  • Run: pipeline 的运行任务实例,这些任务会对应一个工作流实例。由Argo统一管理运行顺序和前后依赖关系。
  • Recurring run: 定时任务,定义运行周期,Pipeline 组件会定期拉起对应的Pipeline Run。

Pipeline 里的流程图

组件的Artifact

模块

Pipeline 的组件比较简单,大致分为5个部分。

  • MySQL: 用于存储Pipeline/Run 等元数据。
  • Backend: 一个由go编写的后端,提供kubernetes ApiServer 风格的Restful API。处理前端以及SDK发起的操作请求。 Pipeline/Experiment 之类的请求会直接存入MySQL元数据。和Run 相关的请求除了写入MySQL以外还会通过APIServer 同步操作Argo实例。
  • CRD Controller: Pipeline 基于Argo扩展了自己的CRD ScheduledWorkflow, CRD Controller 中会主要监听ScheduledWorkflow和Argo 的Workflow 这两个CRD变化。处理定期运行的逻辑。
  • Persistence Agent: 和CRD Controller 一样监听Argo Workflow变化,将Workflow状态同步到MySQL 元数据中。它的主要职责是实时获取工作流的运行结果。
  • Web UI:提供界面操作。 从Backend 中读取元数据,将流水线过程和结果可视化,获取日志,发起新的任务等。

其他工具

除了以上核心模块以外, Pipeline提供了一系列工具,帮助更好构建流水线。

  • SDK, 用于定义pipeline和component,编译为一个argo yaml模板,可以在界面上导入成pipeline。
  • CLI 工具,替代Web UI,调用Backend Api 管理流水线
  • Jupyter notebook。 可以在notebook中编写训练代码,也可以在notebook中通过sdk管理Pipeline。

基于Kubernetes 的机器学习工作流相关推荐

  1. bilibili基于 Flink 的机器学习工作流平台在 b 站的应用

    简介:介绍 b 站的机器学习工作流平台 ultron 在 b 站多个机器学习场景上的应用. 分享嘉宾:张杨,B 站资深开发工程师 导读:整个机器学习的过程,从数据上报.到特征计算.到模型训练.再到线上 ...

  2. 基于Kubernetes、Docker的机器学习微服务系统设计——完整版

     内容提要 1 概述 2 系统介绍 2.1 功能全览 2.2 核心功能 3 系统架构 3.1 云化架构图 3.2 架构说明 4 云化部署 4.1 部署图 4.2 部署说明 4.3 部署实例 5 设计实 ...

  3. 解锁云原生 AI 技能 - 开发你的机器学习工作流

    按照上篇文章<解锁云原生 AI 技能 | 在 Kubernetes 上构建机器学习系统>搭建了一套 Kubeflow Pipelines 之后,我们一起小试牛刀,用一个真实的案例,学习如何 ...

  4. Kubeflow使用Kubernetes进行机器学习GPU分布式训练

    Kubeflow使用Kubernetes进行机器学习 Kubeflow是Google推出的基于kubernetes环境下的机器学习组件,通过Kubeflow可以实现对TFJob等资源类型定义,可以像部 ...

  5. Scikit-learn 核心开发人员专访:建立机器学习工作流最容易犯这2点错误

    导语:Scikit learn的开发者分享了3种实用的ML技术 本文是一篇对 Scikit-learn 开发者的专访,原载于 towardsdatascience,AI 开发者编译整理,采访内容如下文 ...

  6. Meson:支持Netflix的机器学习工作流

    Netflix的目标是能预测顾客之所想观看的电影,也即推荐预测.为了做到这一点,每天会运行大量机器学习工作流,而为了支撑创建这么多机器学习工作流和有效利用资源,Netflix的工程师开发了Meson. ...

  7. 英特尔贡献基于 Kubernetes 分布式深度学习平台:Nauta

    随着人工智能的发展,深度学习的价值不断增长,但实现它可能是一个复杂耗时的过程.英特尔(Intel)正寻求通过其在 Kubernetes 进行分布式深度学习的新开源平台来改变这一状况,该深度学习平台称为 ...

  8. DEVOPS架构师 -- 05从零开始构建基于Kubernetes的DevOps平台

    文章目录 基于Kubernetes的DevOps平台实践 DevOps.CI.CD介绍 瀑布式流程 敏捷开发 DevOps Jenkins初体验 Kubernetes环境中部署jenkins 安装汉化 ...

  9. 基于Kubernetes的CI/CDPipeline流水线解决方案

    Pipeline 介绍  要实现在 Jenkins 中的构建工作,可以有多种方式,我们这里采用比较常用的 Pipeline 这种方式.Pipeline,简单来说,就是一套运行在 Jenkins 上的工 ...

最新文章

  1. Oracle什么时候需要Commit?
  2. HTML全面深入学习-select的optgroup分组
  3. MySQL中的索引(普通索引篇)
  4. 从html导出带样式的excel,关于将HTML导出到Excel中时样式的问题
  5. 【图像分割模型】从FCN说起
  6. go语言学习初探(二)基础语法
  7. chrome vue.js插件文档_常用web研发技术文档,这里都给你准备好了
  8. java简单功能测试,java 自动化测试小功能集锦
  9. python怎么对excel进行排序_python – 使用openpyxl对Excel进行排序和自动过滤
  10. C语言实现洗牌发牌程序,用C语言实现的扑克牌洗牌程序
  11. wireshark抓包并复原图像
  12. (win10家庭版)修改C盘Users目录下文件夹名称
  13. Ac4GlcNAz,98924-81-3,N-乙酰葡糖胺叠氮基,可以进行糖化学修饰
  14. php项目网页音乐播放器插件,基于HTML5 canvas和Web Audio的音频播放器插件
  15. myeclipse数据库逆向hibernate教程 -
  16. 【跟着ChatGPT学深度学习】ChatGPT带我入门深度学习
  17. 系统平台京东店铺运营
  18. android 实现微博分享,分享到微信微博QQ的简单实现(二)
  19. 阿里云苦尽甘来的历程
  20. java使用pd4ml实现html文件转pdf

热门文章

  1. 大模型技术实践路线图出炉,唐杰牵头,近百位智源、清华、北大、MILA等顶尖研究者联合推出...
  2. 《强化学习周刊》第14期:元强化学习的最新研究与应用
  3. 入门Python之后还是搞不定面试、做不来项目,推荐读读这本书
  4. BIG DATA 大数据时代来临
  5. 零知识证明实践教程,第三部分
  6. Private Data Objects, 私密数据对象,基于TEE、智能合约和分布式账本的可信计算
  7. 深度学习工程师从业者必备的21张速查表(神经网络、线性代数、可视化等)
  8. 2021 AAAS Fellow名单出炉!图灵奖得主Yan LeCun、联想芮勇等多位人士入选
  9. 中国AI创业公司霸榜NeurIPS-AutoDL竞赛,代码已开源
  10. 近期必读的5篇AI顶会CVPR 2020 GNN (图神经网络) 相关论文