2 kubeflow系统架构 学习笔记

1 Kubeflow生态系统

在这里插入图片描述

2 生态系统说明

2.1. Hardware(硬件层)

  • 提供计算资源的底层硬件支持。GPU(如NVIDIA)通常用于加速机器学习和深度学习的计算任务,而Intel和AMD则可能提供CPU计算资源。

2.2. Infrastructure(基础设施层)

  • Kubernetes : Kubeflow的核心基础设施,负责容器编排和管理,使得分布式系统的管理变得更简单和自动化。
  • Istio : 服务网格技术,提供微服务间的流量管理、安全、监控和服务治理功能。
  • Dex : 用于身份认证管理,确保用户和服务之间的安全交互。
  • Kaptain : 一种AI/ML平台,用于简化和加速AI模型的开发、训练和部署。
  • AWS, Azure, Google Cloud, Local, Self Hosted, Public Cloud : 提供部署环境。

2.3. 组件和外部插件

  • Kubeflow Pipelines : 用于定义、管理和执行机器学习工作流。帮助用户中创建、共享和复用机器学习工作流。
  • Kubeflow Notebooks : 提供了互动式环境(如Jupyter Notebooks),用于数据科学家和研究人员执行探索性数据分析和模型开发。
  • Central Dashboard : 提供一个中心化的用户界面,帮助用户管理和监控Kubeflow的各种组件和工作流。
  • Training Operator : 支持分布式训练的操作组件,帮助用户在集群中并行训练模型。
  • Katib : 用于自动超参数调优,帮助用户找到最优的模型参数配置。
  • MPI Operator : 支持分布式计算中的MPI(Message Passing Interface)任务,通常用于大规模并行计算。
  • KServe : 以前称为KFServing,用于部署和管理机器学习模型的推理服务,确保模型能够被可靠地服务和扩展。
  • Model Registry : 模型注册组件,用于存储、版本化和管理模型,便于模型的重用和协作。
  • Spark Operator : 使用户能够在Kubernetes集群上运行Apache Spark任务,支持大规模数据处理和分析。
  • External Add-Ons(外部插件) :
    - Feast : 特征存储,用于管理和服务机器学习模型所需的特征数据。
    - Elyra : 提供了用于数据科学项目的开发工具,如图形化的工作流编辑器和代码笔记本的管理。
    - BentoML : 一个开源平台,帮助用户将机器学习模型打包为可部署的服务,并简化部署过程。

2.4. Integrations(集成层)

  • JupyterLab, RStudio, VSCode : 提供机器学习开发的集成开发环境(IDE),方便用户编写、测试和调试代码。
  • PyTorch, TensorFlow, XGBoost, etc. : 这些是常用的机器学习框架,Kubeflow与这些框架深度集成,支持用户在这些框架上开发和部署模型。
  • Optuna, Hyperopt : 用于超参数优化,帮助用户更快地找到最佳模型配置。
  • Horovod, MPI, etc. : 提供分布式训练支持,使得大规模机器学习任务能够在多个节点上高效运行。

3 机器学习生命周期

当开发和部署 AI 应用程序时,ML 生命周期通常包含多个阶段。开发 ML 系统是一个迭代过程,需要评估 ML 生命周期各个阶段的输出,并在必要时对模型和参数进行更改,以确保模型持续产生您需要的结果。
在这里插入图片描述

a.在数据准备步骤中,提取原始数据,执行特征工程以提取离线特征存储的 ML 特征,并准备用于模型开发的训练数据。通常,此步骤与 Spark、Dask、Flink 或 Ray 等数据处理工具相关联。

b. 在模型开发步骤中,选择一个 ML 框架,开发您的模型架构并探索现有的预训练模型以进行微调,例如 BERT 或 Llama。

c. 在模型优化步骤中,优化模型超参数,并使用各种 AutoML 算法(例如神经架构搜索和模型压缩)优化模型。在模型优化期间,您可以将 ML 元数据存储在模型注册表中。

d. 在模型训练步骤中,在大规模计算环境中训练或微调模型。如果单个 GPU 无法处理模型大小,则应使用分布式训练。模型训练的结果是经过训练的模型工件,您可以将其存储在模型注册表中。

e. 在模型服务步骤中,为在线或批量推理提供模型工件。您的模型可能会根据用例执行预测性或生成性 AI 任务。在模型服务步骤中,您可以使用在线特征存储来提取特征。您可以监控模型性能,并将结果输入到 ML 生命周期中的先前步骤中。

4 开发和生产阶段的ML生命周期

在这里插入图片描述

5 ML生命周期中的Kubeflow组件

在这里插入图片描述

  1. Kubeflow Spark Operator可用于数据准备和特征工程步骤。
  2. Kubeflow Notebooks可用于模型开发和交互式数据科学,以试验您的 ML 工作流程。
  3. Kubeflow Katib可用于使用各种 AutoML算法进行模型优化和超参数调整。
  4. Kubeflow Training Operator可用于大规模分布式训练或微调。
  5. Kubeflow 模型注册表可用于存储 ML 元数据、模型工件以及准备用于生产服务的模型。 KServe可用于模型服务步骤中的在线和批量推理。
  6. Feast可以用作功能商店并管理离线和在线功能。
  7. Kubeflow Pipelines可用于构建、部署和管理 ML生命周期中的每个步骤。

6 Kubeflow用户界面

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[OC]萝卜圈玩行车记录仪

图1-1,你的手动小车 代码是 #机器人驱动主程序 #请在main中编写您自己的机器人驱动代码 import tkinter as tk import turtle v0 # 速度 accFalse;slowFalse;leftFalse;rightFalse # 按键状态 step0.5 # 一次速度变化量 def keyup_press(event):global acc;accTru…

「数组」希尔排序 / 区间增量优化(C++)

目录 概述 思路 核心概念:增量d 算法过程 流程 Code 优化方案 区间增量优化 Code(pro) 复杂度 概述 我们在「数组」冒泡排序|选择排序|插入排序 / 及优化方案(C)中讲解了插入排序。 它有这么两个特点: ①待排序元素较…

[Qt][Qt 文件]详细讲解

目录 1.输入输出设备类2.文件读写类3.文件和目录信息类 1.输入输出设备类 在Qt中,⽂件读写的类为QFile,其⽗类为QFileDevice QFileDevice提供了⽂件交互操作的底层功能QFileDevice的⽗类是QIODevice,其⽗类为QObject QIODevice是Qt中所有I/O…

【企业高性能web服务器】

目录 一、Nginx 介绍1、 Nginx 功能介绍2、基础特性3、Nginx 模块介绍 二、Nginx 编译安装1、编写systemd服务 三、平滑升级和回滚1、平滑升级的流程2、升级2、回滚 四、 Nginx 核心配置详解1、实现 nginx 的高并发配置2、Nginx 账户认证功能3、nginx作为下载服务器配置 五、re…

QT-监测文件内容重复工具)

QT-监测文件内容重复工具 一、演示效果二、核心代码三、下载链接 一、演示效果 二、核心代码 #include "widget.h" #include "ui_widget.h" #include <QDir> #include <QFile> #include <QCryptographicHash> #include <QApplicatio…

如何用Python构建高校爬虫与k-means算法实现专业评分可视化分析

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…

多线程、多进程,还是异步?-- Python 并发 API 如何选择

如何选择正确的 Python 并发 API模块 &#xff1f; Python 标准库提供了三种并发 API &#xff0c; 如何知道你的项目应该使用哪个 API&#xff1f; 在本教程将带逐步了解各API的特性、区别以及各自应用场景&#xff0c;指导你选择最合适的并发 API。 多线程、多进程&#xff0…

F1 F4 Fn lock 指示灯不亮 联想笔记本 thinkpad

问题描述&#xff1a;F1 F4 Fn lock 指示灯开机的时候亮&#xff0c;但是使用的时候虽然能够发挥正常功能&#xff0c;但是指示灯一直熄灭&#xff0c;指示灯不亮。 电脑型号&#xff1a;联想笔记本 thinkpad E14 Gen 2 。本方案应该适用于所有联想电脑。 解决方法&#xff1a;…

鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程

下图是一个可执行文件编译&#xff0c;链接的过程. 本篇将通过一个完整的小工程来阐述ELF编译&#xff0c;链接过程&#xff0c;并分析.o和bin文件中各区&#xff0c;符号表之间的关系.从一个崭新的视角去看中间过程. 准备工作 先得有个小工程&#xff0c;麻雀虽小&#xff0…

基于数据复杂度的数据库选型

数据模型的选择对于 IT 系统的开发至关重要&#xff0c;它不仅决定了数据存储和处理的方式&#xff0c;影响系统的性能、扩展性以及维护性等。本质上来说&#xff0c;不同的数据模型反映了我们对业务问题的不同思考和抽象程度。 今天我们从不同数据模型对于复杂数据和关系的支…

【Qt】常用控件QCalendarWidget的使用

常用控件QCalendarWidget的使用 QCalendarWidget表示一个日历 核心属性 属性说明 selectDate 当前选中的⽇期 minimumDate 最⼩⽇期 maximumDate 最⼤⽇期 firstDayOfWeek 每周的第⼀天(也就是⽇历的第⼀列) 是周⼏. gridVisible 是否显⽰表格的边框 selectionMode…

python3爬虫(未完结)

一个简单的例子&#xff1a;爬取自己的csdn博客&#xff0c;统计每篇博客的访问量&#xff0c;制作一个柱状图&#xff0c;以访问量从大到小的方式显示。 1. 首先从“个人主页”爬取所有所有文章的链接 1.1 打开个人主页&#xff0c;右键->检查&#xff1a;可以看到每篇文章…

类和对象(下)(2)

类和对象&#xff08;下&#xff09;(2) static成员 • ⽤static修饰的成员变量&#xff0c;称之为静态成员变量&#xff0c;静态成员变量⼀定要在类外进⾏初始化。 • 静态成员变量为当前类的所有对象所共享&#xff0c;不属于某个具体的对象&#xff0c;不存在对象中&#…

HiveSQL实战——大厂面试真题

一、字节跳动 最高峰同时直播人数 https://blog.csdn.net/SHWAITME/article/details/135918264 0 问题描述 有如下数据记录直播平台主播上播及下播时间&#xff0c;根据该数据计算出平台最高峰同时直播人数。 ------------------------------------------------------ | us…

CTFHUB | web进阶 | JSON Web Token | 无签名

一些JWT库也支持none算法&#xff0c;即不使用签名算法。当alg字段为空时&#xff0c;后端将不执行签名验证 开启题目 账号密码随便输&#xff0c;登录之后显示只有 admin 可以获得 flag 在此页面抓包发到 repeater&#xff0c;这里我们需要用到一个 Burp 插件&#xff0c;按图…

Linux信号机制探析--信号的产生

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f4da;信号什么是信号&#xff1f;为什么要有信号&#xff1f;查看Linux系统中信号 &#x1f388;信号产生&#x1f4d5;kill…

【流媒体】RTMPDump—RTMP_ConnectStream(创建流连接)

目录 1. RTMP_ConnectStream函数1.1 读取packet&#xff08;RTMP_ReadPacket&#xff09;1.2 解析packet&#xff08;RTMP_ClientPacket&#xff09;1.2.1 设置Chunk Size&#xff08;HandleChangeChunkSize&#xff09;1.2.2 用户控制信息&#xff08;HandleCtrl&#xff09;1…

JAVA面试汇总

JAVA面试 JAVA面试精华 面试精华 互联网面试真题

keepalived详解

概念 keepalived 是一款基于 VRRP&#xff08;Virtual Router Redundancy Protocol&#xff0c;虚拟路由冗余协议&#xff09;协议来实现高可用&#xff08;High Availability, HA&#xff09;的轻量级软件。它主要用于防止单点故障&#xff0c;特别是在 Linux 环境下&#xff…

使用maven快速生成打包文件

最近在部署基于SpringBoot开发的项目时&#xff0c;由于微服务较多&#xff0c;本地工程编译后只得出一个JAR包&#xff0c;部署起来实在不方便&#xff0c;因此总想着怎么偷偷懒&#xff0c;执行一次命令编译出整个部署的文件。先说结果&#xff0c;最后期望打包的目录如下&am…