Kubeflow文档1:介绍与架构

news/2024/10/18 12:34:17/

Kubeflow 2024/3/19版本的文档

此专栏用来展示相关的内容翻译,重点关注本地部署,关于运营商的方案,请自行查阅

文档地址https://www.kubeflow.org/docs/

开始编辑时间:2024/3/27;最后编辑时间2024/3/27

Kubeflow文档1:介绍与架构


介绍

Kubeflow介绍

Kubeflow项目致力于在Kubernetes上简化、可移植和扩展机器学习(ML)工作流的部署。我们的目标不是重新创建其他服务,而是为ML部署最佳开源系统提供直观的方式,以适应不同的基础设施。只要您在运行Kubernetes,您就应该能够运行Kubeflow。

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

在这里插入图片描述

什么是kubeflow

Kubeflow是用于Kubernetes的机器学习工具包。

要使用Kubeflow,基本工作流程如下:

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

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

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

您可以选择在本地、本地设备上,或者云环境中部署您的Kubernetes工作负载。

kubeflow的任务

我们的目标是尽可能简化机器学习(ML)模型的扩展和部署到生产环境中,通过让 Kubernetes 发挥其优势:

  1. 在多样化的基础设施上进行简单、可重复、可移植的部署(例如,在笔记本上进行实验,然后移动到本地集群或云端)
  2. 部署和管理松耦合的微服务
  3. 根据需求进行扩展 由于 ML 从业者使用各种各样的工具,其中一个关键目标是根据用户需求(在合理范围内)定制堆栈,并让系统处理“无聊的事情”。虽然我们已经开始使用一套狭窄的技术,但我们正在与许多不同的项目合作,以包含更多的工具。

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

历史

Kubeflow起初是将Google内部运行TensorFlow的方式开源化的一种方式,基于一个名为TensorFlow Extended的流水线。它最初只是一种在Kubernetes上运行TensorFlow作业的简单方式,但现已扩展为一个多架构、多云的框架,用于运行端到端的机器学习工作流程。

路线图

Kubeflow的未来路线图,参考Kubeflow roadmap.

下面的组件也有路线图:

  • Kubeflow Pipelines
  • KF Serving
  • Katib
  • Training Operator

架构

架构章节的内容过时了,但是官方还没有更新,我会在更新后及时更新博客内容

Kubeflow架构一览

Kubeflow 是一个用于开发和部署机器学习系统的平台。对于想要构建和测试机器学习流水线的数据科学家来说,Kubeflow 是一个很好的选择。同时,对于机器学习工程师和运维团队来说,Kubeflow 也适用于将机器学习系统部署到各种环境中,包括开发、测试和生产级别的服务。

概念一览

Kubeflow是针对Kubernetes的机器学习工具包。

以下图表显示了Kubeflow作为一个平台,用于在Kubernetes上安排机器学习系统的组件:

在这里插入图片描述

Kubeflow基于Kubernetes构建,用于部署、扩展和管理复杂系统。使用Kubeflow配置界面(见下文),您可以指定工作流程所需的ML工具。然后,您可以将工作流程部署到各种云端、本地和本地平台上,用于实验和生产用途。

介绍ML工作流

当您开发和部署机器学习系统时,机器学习工作流通常包括几个阶段。开发机器学习系统是一个迭代过程。您需要评估机器学习工作流的各个阶段的输出,并在必要时对模型和参数进行更改,以确保模型能够产生您需要的结果。

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

在这里插入图片描述

在机器学习工作流程中,有两个主要阶段:实验阶段和生产阶段。

实验阶段的详细步骤如下:

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

生产阶段的详细步骤如下:

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

ML工作流中的Kubeflow组件

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

在这里插入图片描述

Kubeflow包含用于生成和管理Jupyter笔记本的服务。使用笔记本进行交互式数据科学和实验机器学习工作流程。

Kubeflow Pipelines是一个基于Docker容器构建、部署和管理多步骤机器学习工作流程的平台。

Kubeflow提供了几个组件,您可以使用这些组件在多个平台上构建机器学习训练、超参数调整和模型服务工作负载。

特定ML工作流的例子

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

在这里插入图片描述

Kubeflow接口

本节介绍了可用于与Kubeflow交互以及在Kubeflow上构建和运行ML工作流的接口

Kubeflow用户接口 (UI)

如下所示:

在这里插入图片描述

UI 提供了一个中央仪表板,您可以使用它来访问您的 Kubeflow 部署的组件。

Kubeflow APIs和SDKs

Kubeflow提供了各种组件的API和Python SDK参考文档,包括以下内容:

  1. Pipelines reference docs:涵盖Kubeflow Pipelines API和SDK,包括Kubeflow Pipelines领域特定语言(DSL)的文档。
  2. Fairing reference docs:涵盖Kubeflow Fairing SDK的文档。

http://www.ppmy.cn/news/1401919.html

相关文章

梦中梦中梦?(梦中梦?)

梦中梦中梦?(梦中梦?) 早上7.40左右起床上厕所(大的)开始自律的一天,上完了刷了会手机,决定再睡一会。在起和睡之间犹豫了几次还是决定睡一会,就开始了这辈子头一次梦中…

纯欣赏:一大波智能家居的界面,美的不像话

大家好,本次给大家分享一波智能家居的界面,漂亮大赞。

数据结构·二叉树(2)

目录 1 堆的概念 2 堆的实现 2.1 堆的初始化和销毁 2.2 获取堆顶数据和堆的判空 2.3 堆的向上调整算法 2.4 堆的向下调整算法 2.4 堆的插入 2.5 删除堆顶数据 2.6 建堆 3 建堆的时间复杂度 3.1 向上建堆的时间复杂度 3.2向下建堆的时间复杂度 4 堆的排序 前言&…

oppo,快手25届暑期实习内推

oppo,快手25届暑期实习内推 ①OPPO 【内推码】:X6866447 【一键内推】:https://careers.oppo.com/university/oppo/campus/post?shareId4546 【需求岗位】软件类、AI/算法类、硬件类、设计类、产品类 ②快手 【岗位】算法、工程、游戏,产品运…

大语言模型---强化学习

本文章参考,原文链接:https://blog.csdn.net/qq_35812205/article/details/133563158 SFT使用交叉熵损失函数,目标是调整参数使模型输出与标准答案一致,不能从整体把控output质量 RLHF(分为奖励模型训练、近端策略优化…

基于easyx库的C/C++游戏编程实例-飞机大战

飞机大战游戏设计 首先创建飞机/子弹结构: struct Plane {int x;int y;bool live;int width;int height;int type;int hp; }player,bul[BUL_NUM],enemy[ENE_NUM];你需要加载图片: void ImageLoad() {//背景loadimage(&bg[0], "./image/飞机大…

PHP - ZipArchive上传、下载实例

概述 在很多实际生产场景都需要批量上传、下载一些文件的处理,整理了使用PHP语言操作ZipArchive实践和实例,ZipArchive需要服务器上安装zlib库,php扩展中安装zip扩展。 服务器环境扩展 ZipArchive类库的PHP版本要求如下,另外ph…

netty构建udp服务器以及发送报文到客户端客户端详细案例

目录 一、基于netty创建udp服务端以及对应通道设置关键 二、发送数据 三、netty中的ChannelOption常用参数说明 1、ChannelOption.SO_BACKLOG 2、ChannelOption.SO_REUSEADDR 3、ChannelOption.SO_KEEPALIVE 4、ChannelOption.SO_SNDBUF和ChannelOption.SO_RCVBUF 5、Ch…