kubeflow文档-介绍与架构

news2024/11/27 16:46:26

1. kubeflow介绍

     Kubeflow项目致力于使机器学习(ML)工作流在Kubernetes上的部署变得简单、可移植和可扩展。目标不是重新创建其他服务,而是提供一种直接的方法,将ML的开源系统部署到不同的基础设施中。无论在哪里运行Kubernetes,都能够运行Kubeflow。

        下图显示了Kubeflow的主要组件,涵盖了Kubernetes之上ML生命周期的每个步骤。

1.1 What is Kubeflow?

     Kubeflow是用于Kubernetes的机器学习工具包。要使用Kubeflow,基本工作流程是:

  • 下载并部署运行Kubeflow二进制文件。
  • 自定义生成的配置文件。
  • 运行指定的脚本,将容器部署到指定的环境中。

    您可以调整配置以选择要用于ML工作流的每个阶段的平台和服务:

  • 数据准备
  • 模型训练
  • 预测服务
  • 服务管理

     可以选择在本地或云环境中部署Kubernetes工作负载。

1.2 Kubeflow任务

        目标是通过让Kubernetes做擅长的事情,扩展机器学习(ML)模型并尽可能简单将其部署到生产中:

  • 在多样化的基础设施上可以简单、可重复、可移植的部署(例如,在笔记本电脑上进行实验,然后移到本地集群或云)
  • 部署和管理松散耦合的微服务
  • 根据需求进行扩展

        由于ML从业者使用各种各样的工具,其中一个关键目标是根据用户需求(在合理的范围内)定制堆栈,并让系统处理“无聊的东西”。虽然开始时使用的技术范围很窄,但是我们正在处理许多不同的项目,以包括额外的工具。

        最终,我们希望有一组简单的清单,能够在 Kubernetes 已经运行的任何地方轻松地使用 ML 堆栈,并且可以根据它部署到的集群进行自我配置。

2. 架构

        该文档介绍了 Kubeflow 作为开发和部署机器学习(ML)系统的平台。Kubeflow是一个可以为想要构建和实验ML流水线的数据科学家提供的平台。Kubeflow 也为机器学习工程师和运营团队提供服务,将机器学习系统部署到不同的环境中进行开发、测试和生产级服务。

        Kubeflow是Kubernetes的ML工具包。
        下图显示了Kubeflow作为一个平台,用于在Kubernetes上部署ML系统的组件:

        Kubeflow 构建于 Kubernetes 之上,作为部署、扩展和管理复杂系统的系统。使用Kubeflow配置接口(见下文),您可以指定工作流所需的ML工具。然后,您可以将工作流部署到各种云、本地和内部平台,以便进行试验和生产使用。


2.1 介绍ML工作流

        在开发和部署机器学习系统时,机器学习工作流通常由几个阶段组成。开发机器学习系统是一个迭代的过程。您需要评估机器学习工作流程各个阶段的输出,并在必要时对模型和参数应用更改,以确保模型持续产生您需要的结果。

        为了简单起见,以下图表显示了工作流阶段的顺序。工作流末尾的箭头指向流,表示流程的迭代性质:

        在机器学习工作流程中包含实验阶段和生产阶段。

  A. 在实验阶段,基于初始假设开发模型,并反复测试和更新模型以产生你想要的结果:

  • 确定想要机器学习系统解决的问题。
  • 收集和分析训练机器学习模型所需的数据。
  • 选择一个机器学习框架和算法,并对模型的初始版本进行编码。
  • 对数据进行实验,并训练模型。
  • 调整模型的超参数,以确保处理最有效率并获得最准确的结果。

  B. 在生产阶段,您部署了一个执行以下过程的系统:

  • 将数据转换成训练系统所需的格式。为了确保模型在训练和预测过程中行为一致,转换过程在实验阶段和生产阶段必须相同。
  • 训练机器学习模型。
  • 将模型提供给在线预测或批处理运行。
  • 监控模型的性能,并将结果反馈到调整或重新训练模型的过程中。

2.2 ML工作流的Kubeflow组件

        下一张图将Kubeflow添加到工作流中,显示了Kubeflow在每个阶段哪些组件是有用的:

        要了解更多信息,请阅读以下 Kubeflow 组件指南:

  • Kubeflow 包括用于生成和管理  Jupyter notebooks 的服务。使用 noteboks 进行交互式数据科学和机器学习工作流的实验。
  • Kubeflow Pipelines 是一个基于 Docker 容器构建、部署和管理多步骤 ML 工作流的平台。
  • Kubeflow 提供了几个组件,您可以使用它们来构建机器学习培训、超参数调优和跨多个平台服务工作负载。

2.3 ML工作流的例子

        以下图表展示了一个简单的特定机器学习工作流程示例,您可以使用它来训练并提供一个在MNIST数据集上训练的模型: 

3. 安装 kubeflow

        无论您在哪里运行Kubernetes,都应该能够运行Kubeflow。安装Kubeflow主要有两种方法:

  1. Packaged Distributions
  2. Raw Manifests (advanced users)

 3.1 Install with a single command

GitHub - kubeflow/manifests at v1.8-branch

        while ! kustomize build example | kubectl apply -f -; do echo "Retrying to apply resources"; sleep 10; done

参考:

  https://www.kubeflow.org/docs/started/introduction/  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1671043.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++初阶】string模拟实现

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

Python 求高斯误差函数 erf 和 erfc

文章目录 Part.I IntroductionPart.II 概念定义Chap.I 误差函数 erfChap.II 误差函数补 erfc Part.II 求值与绘图Chap.I 求取方式Chap.II 绘图 Reference Part.I Introduction 本文将对误差函数(ERror Function, ERF)进行简单的介绍,并探索如…

R语言:GSEA分析

#安装软件包 > if (!requireNamespace("BiocManager", quietly TRUE)) install.packages("BiocManager") > BiocManager::install("limma") > BiocManager::install("org.Hs.eg.db") > BiocManager::install("…

吴恩达机器学习笔记:第 10 周-17大规模机器学习(Large Scale Machine Learning)17.1-17.2

目录 第 10 周 17、 大规模机器学习(Large Scale Machine Learning)17.1 大型数据集的学习17.2 随机梯度下降法 第 10 周 17、 大规模机器学习(Large Scale Machine Learning) 17.1 大型数据集的学习 如果我们有一个低方差的模型,增加数据集的规模可以帮助你获得更…

8种常见的CMD命令

1.怎么打开CMD窗口 步骤1:winr 步骤2:在弹出的窗口输入cmd,然后点击确认,就会出现一个cmd的窗口 2.CMD的8种常见命令 2.1盘符名称冒号 说明:切换盘的路径 打开CMD窗口这里默认的是C盘的Users的27823路径底下&#xf…

生产制造行业推拉式生产的复合应用

一、案例分析(汽配行业) 重点: 1. MTO/MTS 与 PUSH/PULL 有关系但是不是充分关系 2. MTO/MTS 是公司经营策略,更多是对市场需求的经营策略,体现在生产时机上的不同,一个是等客户需求,一个是填…

程序员健康指南:运动,让代码更流畅

程序员健康指南:运动,让代码更流畅 程序员,一个与电脑相伴的群体,长时间的久坐和高强度的脑力劳动是他们的日常。然而,久坐不仅影响体态,更对心脏健康构成威胁。根据《欧洲心脏杂志》的研究,中…

Caddy2使用阿里云DNS申请https证书,利用阿里云DNS境内外不同解析给Gone文档做一个同域名的国内镜像站点

我从头到尾实现了一个Golang的依赖注入框架,并且集成了gin、xorm、redis、cron、消息中间件等功能;自己觉得还挺好用的,并且打算长期维护! github地址:https://github.com/gone-io/gone 文档原地址:https:/…

MTATLAB--一元线性回归分析

一文让你彻底搞懂最小二乘法(超详细推导) 在进行一元线性回归分析时,使用最小二乘法进行解题,关于最小二乘法具体看上述文章。 数据文件在文章顶部可见,将第一列数据作为自变量x,第二列数据作为应变量y。建…

使用java远程提交flink任务到yarn集群

使用java远程提交flink任务到yarn集群 背景 由于业务需要,使用命令行的方式提交flink任务比较麻烦,要么将后端任务部署到大数据集群,要么弄一个提交机,感觉都不是很离线。经过一些调研,发现可以实现远程的任务发布。…

【RabbitMQ】消息队列 - RabbitMQ的使用记录

目录 一、什么是消息队列 二、什么是RabbitMQ 三、安装RabbitMQ 3.1 安装Erlang环境 3.2 安装RabbitMQ 3.3 打开服务管理界面 3.4 常用命令 四、Python示例代码 4.1 发送数据 4.2 接收数据 一、什么是消息队列 消息队列(Message Queue)是一种用于在应用程序之间传递消…

vue:网页icon无法显示

logo文件放在public文件夹下,在html里设置icon。 本地源码运行后发现网页icon无法显示我们设置的logo,而是显示了浏览器默认icon。 这个问题不需要解决,部署后网页icon显示就正常了。

绝地求生PUBG新老艾伦格有什么差别 老艾伦格什么时候回归

复古风格的艾伦格原始地图携带着那些标志性的记忆符号华丽回归,邀请您沉浸于往昔的每一处细节探索中。我们不仅还原了游戏诞生的起点,还在其中巧妙融入现代游戏元素,构筑一座连接昔日与今朝的桥梁,完美融合了经典与创新的游戏体验…

【动态规划四】子序列问题

目录 leetcode题目 一、最长递增子序列 二、摆动序列 三、最长递增子序列的个数 四、最长数对链 五、最长定差子序列 六、最长的斐波那契子序列的长度 七、最长等差数列 八、等差数列划分 II leetcode题目 一、最长递增子序列 300. 最长递增子序列 - 力扣&#xff0…

关于SQL

数据库简介: 数据库分类 关系型数据库模型: 优点:易于维护,可以实现复杂的查询 缺点:海量数据 读取写入性能差,高并发下数据库的io是瓶颈 是把复杂的数据结构归结为简单的二元关系(即二维表…

Linux字符设备驱动设计

Linux字符设备驱动设计 概述 驱动的定义与功能 计算机系统中存在着大量的设备, 操作系统要求能够控制和管理这些硬件, 而驱动就是帮助操作系统完成这个任务。 驱动相当于硬件的接口, 它直接操作、 控制着我们的硬件, 操作系统通…

工作太闲,平常有没有用手机能赚钱的,这里我推荐了4种可月入2000的副业

确实有许多通过手机赚钱的方式,以下是一些常见的方法 1.拍照卖图 如果你有一台相机或智能手机,喜欢拍照,那么可以将自己拍摄的图片上传到网站上,赚取稿费。 2. 做问卷调查 许多公司需要了解消费者的意见,所以会通过…

【XSRP软件无线电】基于软件无线电平台的QPSK频带通信系统设计

目录: 目录: 一、绪论 1.1 设计背景 1.2 设计目的 二、系统总体方案 2.1 专题调研题目 2.2 调研背景 2.3 设计任务解读 2.4 设计原理 2.4.1 原理框图 2.4.2 功能验证 三、软件设计 3.1 程序解读 3.2 程序设计 3.3 仿真结果: 四、程序代码分析…

爬取深圳2024年链家二手房数据,共3000条数据(其他城市也可)

文章目录 专栏导读1.目标2.导入相关库3.获取每个二手房的链接4.获取每个链接中的相关数据5.保存数据6.数据展示 专栏导读 ✍ 作者简介:i阿极,CSDN 数据分析领域优质创作者,专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫…

二叉树OJ刷题

制作不易,三连支持一下吧!!! 文章目录 前言一、相同的树二、单值二叉树三.对称二叉树四.二叉树的前序遍历五.另一棵树的子树六.二叉树遍历总结 前言 前三篇博客我们详细介绍了树形结构,及两种特殊的树:堆和…