KubeFlow组件介绍

news2024/11/26 8:17:11

kubeflow是一个胶水项目,它把诸多对机器学习的支持,比如模型训练,超参数训练,模型部署等进行组合并已容器化的方式进行部署,提供整个流程各个系统的高可用及方便的进行扩展部署了 kubeflow的用户就可以利用它进行不同的机器学习任务。kubeflow是一个为 Kubernetes 构建的可组合,便携式,可扩展的机器学习技术栈。

img

Kubeflow想解决的问题是如何基于Kubernetes去方便地维护ML Infra。Kubeflow中大多数组件的实现都是基于Kubernetes Native 的解决方案,通过定义CRD来功能。这很大程度上减少了运维的工作。同时,利用Kubernetes提供的扩展性和调度能力,对大规模分布式训练和AutoML也有得天独厚的优势。

Kubeflow架构图

kubeflow的重要结构:

  • jupyter :jupyter 创建和管理多用户交互式Jupyter notebooks。

    img
  • 多租户隔离:简化用户操作以允许用户仅查看和编辑其配置中的 Kubeflow 组件和模型制品。这个 Kubeflow 的多用户隔离下的关键概念包括身份验证、授权、管理员、用户和配置文件。

  • TFJob-operator :K8S有一种Jobs的Controller类型,K8S会跟踪Job的状态,如果没有正常结束,K8S可以再次把任务调度起来。Job是有结束时间的任务,当Job正常结束之后,K8S会把刚刚的Job清理掉。这个特性非常适合用来执行机器学习的训练任务。TFJob-operator即是KubeFlow的深度学习框引擎,资源类型TFJob是一个基于tensorflow构建的CRD(自定义资源),通过这样一个资源类型,使用 TensorFlow 进行机器学习训练的工程师们不再需要编写繁杂的配置,只需要按照他们对业务的理解,确定 PS 与 worker 的个数以及数据与日志的输入输出,就可以进行一次训练任务。

    在这里插入图片描述
    在这里插入图片描述

    apiVersion: kubeflow.org/v1beta2
    kind: TFJob
    metadata:
      name: mnist-train
      namespace: kubeflow
    spec:
      tfReplicaSpecs:
        Chief: # 调度器
          replicas: 1
          template:
            spec:
              containers:
                - command:
                  - /usr/bin/python
                  - /opt/model.py
                  env:
                  - name: modelDir
                    value: /mnt
                  - name: exportDir
                    value: /mnt/export
                  image: mnist-test:v0.1
                  name: tensorflow
                  volumeMounts:
                  - mountPath: /mnt
                    name: local-storage
                  workingDir: /opt
                restartPolicy: OnFailure
                volumes:
                - name: local-storage
                  persistentVolumeClaim:
                    claimName: local-path-pvc
        Ps: # 参数服务器
          replicas: 1
          template:
            spec:
              containers:
                - command:
                  - /usr/bin/python
                  - /opt/model.py
                  env:
                  - name: modelDir
                    value: /mnt
                  - name: exportDir
                    value: /mnt/export
                  image: mnist-test:v0.1
                  name: tensorflow
                  volumeMounts:
                  - mountPath: /mnt
                    name: local-storage
                  workingDir: /opt
                restartPolicy: OnFailure
                volumes:
                - name: local-storage
                  persistentVolumeClaim:
                    claimName: local-path-pvc
        Worker: # 计算节点
          replicas: 2
          template:
            spec:
              containers:
                - command:
                  - /usr/bin/python
                  - /opt/model.py
                  env:
                  - name: modelDir
                    value: /mnt
                  - name: exportDir
                    value: /mnt/export
                  image: mnist-test:v0.1
                  name: tensorflow
                  volumeMounts:
                  - mountPath: /mnt
                    name: local-storage
                  workingDir: /opt
                restartPolicy: OnFailure
                volumes:
                - name: local-storage
                  persistentVolumeClaim:
                    claimName: local-path-pvc
    
  • katib :超参数服务器,Kubeflow 集成了一个超参调优工具 Katib,主要用来模型自动优化和超参数调整,提供了 超参数调整(Hyperparameter Tuning),早停法(Early Stopping)和神经网络架构搜索(Neural Architecture Search)。

  • 训练算子(Operators) :、每个深度学习框架都对应一个的 operator 独立在一个 repository 中进行维护。使您能够通过算子训练 ML 模型。例如,它提供了在 Kubernetes 上运行 TensorFlow 模型训练的 TensorFlow 训练(TFJob)、用于 Pytorch 模型训练的 PyTorchJob 等。img

    当然, Kubeflow 1.4 Release 预计会支持融合后的 tf-operator:部署单个 operator 即可支持包括 TFJob、PyTorchJob、MXNetJob 和 XGBoostJob 在内的四种 API 支持。

  • Kubeflow pipelines:一个机器学习的工作流组件,使您能够基于 Docker 容器构建和部署可移植、可扩展的机器学习工作流pipeline 定义了算法组合的模板,通过 pipeline 我们可以将算法中各处理模块按特定的拓扑图的方式组合起来。它包括一个用于管理作业的用户界面、一个用于安排多步骤 ML 工作流的引擎、一个用于定义和操作管道的 SDK,以及用于通过 SDK 与系统交互的 Notebooks ,基于argo 用于pipeline任务工作流编排。Argo Workflow流程引擎,可以编排容器流程来执行业务逻辑,Argo的步骤间可以传递文件与结果信息,下一步(容器)可以获取上一步(容器)的结果。详细介绍可以前往https://blog.csdn.net/qq_45808700/article/details/132188234

  • KFServingKFServing 提供一个稳定的接口,供用户调用,来应用该模型,serving 通过模型文件直接创建模型即服务(Model as a service),在 Kubernetes 上启用无服务器推理。Kubeflow提供基于TFServingKFServingSeldon等好几种方案。有了 KFServing,用户可以轻松地在 GPU 上部署推理服务,并使用 用户可以利用性能卓越的行业领先模型服务器在 GPU 上轻松部署推理服务,并从所有无服务器功能中获益。它还为 PyTorch、TensorFlow、scikit-learn 和 XGBoost 等 ML 框架提供高性能和高度抽象的接口。TensorFlow-serving可以将训练好的机器学习模型部署到线上,使用 gRPC 作为接口接受外部调用。它支持模型热更新与自动模型版本管理。这意味着一旦部署 Serving 后,你再也不S需要为线上服务操心,只需要关心你的线下模型训练。借助 Serving,您可以轻松部署新算法和实验,同时保留相同的服务器架构和 API。

    在这里插入图片描述
    在这里插入图片描述

  • Istio:Kubeflow 主要利用 Istio 来进行资源的管理和进行运维, 例如查看相关资源的指标, 权限的验证, 资源的分配和测试等等。

    在这里插入图片描述

  • ambassador :Ambassador 对外提供统一服务的网关(API Gateway),它是一个 Kubernetes 原生的微服务 API 网关,它部署在网络边缘,将传入网络的流量路由到相应的内部服务(也被称为“南北”流量)。

虽然kubeflow最开始只是基于tf-operator,但后来随着项目发展最后变成一个基于云原生构建的机器学习任务工具大集合。从数据采集,验证,到模型训练和服务发布,几乎所有步骤Kubeflow都提供解决方案的组件。

基于Kubeflow的ML流程图

通过Kubeflow ,用户可以使用Jupyter开发模型,然后使用fairing(SDK)等工具构建容器,并创建Kubernetes资源训练其模型。模型训练完成后,用户还可以使用KFServing创建和部署用于推理的服务器。再结合pipeline(流水线)功能可实现端到端机器学习系统的自动化敏捷构建,实现AI领域的DevOps。

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

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

相关文章

合并两个有序的单链表,合并之后的链表依然有序

定义节点 class ListNode {var next: ListNode _var x: Int _def this(x: Int) {thisthis.x x}override def toString: String s"x>$x" } 定义方法 class LinkedList {var head new ListNode(0)def getHead(): ListNode this.headdef add(listNode: Li…

省级专精特新!祝贺旭帆科技荣获安徽省“专精特新”中小企业!

2023年8月,安徽旭帆信息科技有限公司(以下简称“旭帆科技”)成功荣获2023年度“安徽省专精特新中小企业”荣誉称号,成为具备专业化、精细化、特色化、新颖化的“专精特新”企业。 随着《“十四五”促进中小企业发展规划》的深入实…

mysql 查看 、设置缓冲池 buffer_pool

Mysql 存储引擎 MyIsam 和 Innodb 引擎 myIsam 存储引擎: 只缓存索引,不缓存数据,对应的键缓存参数为 key_buffer_size show variables like ‘key_buffer_size’; set global key_buffer_sizexxxx; 或者 my.ini my.cnf [server] key_buffer…

二三维电子沙盘数字沙盘虚拟现实开发教程第14课

二三维电子沙盘数字沙盘开发教程第14课 很久没有写了,主要前段时间在针对怎么显示高精度的 倾斜数据而努力,现在终于实现了效果不错。以前的版本显示倾斜数据控制不太好。 对了。目前系统暂只支持smart3d生成的kml格式的数据,由专有的录入程…

教你如何做正交表

正交表是一种用于多因素实验设计的表格。它可以帮助我们在尽可能少的试验次数下确定各个因素对结果的影响,从而提高实验效率。接下来将从以下几个方面介绍正交表的相关内容。 一、正交表基本概念 正交表是一种特制的表格,用于多因素实验设计研究。根据正…

马蹄集oj赛(第十次)

目录 2的N次幂 升级版斐波那契数列 个数统计 个数统计2 大斐列 AB problem ​编辑 A-B problem 快速幂 进行一个幂的运算 整数大小比较 2的N次幂 难度:黄金 0时间限制:1秒 巴占用内存:128M 任意给定一个正整数N(N≤100)&#xff0…

Qt6 for Windows 环境搭建(Visual Studio)

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在 Windows 中,如果想要开发 Qt 应用程序,可以选择多种方式: Qt Creator MinGW 编译器Qt Creator MSVC 编译器Visual Studio&#xff0…

线上祭奠软件:虚拟纪念与情感表达的新方式

线上祭奠软件作为一种新兴的技术应用,正在改变传统祭奠方式,为人们提供了跨越时空的虚拟纪念和情感表达方式。本文将深入探讨线上祭奠软件的意义、功能与挑战,并思考其对社会和个人的影响。 一、线上祭奠软件的意义: 1.跨…

MyBatis —— 初窥门径

前言 MyBatis作为一款优秀的持久层框架,在Java后端开发中无疑是比较重要一环,在常见的spring整合的SSM框架以及之后的SpringBoot中都可以看到MyBatis大显神威的模样。在这篇文章中,荔枝将会从Maven开启创建一个MyBatis项目并整理MyBatis相应的…

服务器放在香港好用吗?

​  相较于国内服务器,将网站托管在香港服务器上最直观的好处是备案层面上的。香港服务器上的网站无需备案,因此更无备案时限,购买之后即可使用。 带宽优势 香港服务器的带宽一般分为香港本地带宽和国际带宽、直连中国骨干网 CN2三种。香港…

函数注解学习

def hanshuzhujie(a:str,b: str m)->str:print(hanshuzhujie.__annotations__)return ab hanshuzhujie(qqq)运营结果 E:\Python\Python38\python.exe D:/pythonprojects/python-auto-test/test/hanshuzhujie.py {a: <class str>, b: <class str>, return: <…

生态项目|Typus如何用Sui特性制作动态NFT为DeFi赋能

对于许多人来说&#xff0c;可能因其涉及的期权、认购和价差在内的DeFi而显得晦涩难懂&#xff0c;但Typus Finance找到了一种通过动态NFT使体验更加丰富的方式。Typus NFT系列的Tails为用户带来一个外观逐渐演变并在平台上提升活动水平时获得新特权的角色。 Typus表示&#x…

AI时代,GPGPU和NPU哪个才是王者?

AI飞速发展&#xff0c;全球算力井喷&#xff0c;我国进入AI计算高速发展阶段&#xff0c;GPU的自主化已经摆上案头。近日&#xff0c;华夏银行首席信息官吴永飞发表研究&#xff0c;指出GPGPU是比NPU更合适的路线&#xff0c;并以海光DCU为基础进行了GPU算力池化的研究。 GPG…

无涯教程-Android - List View函数

Android ListView 是垂直滚动列表中显示的视图&#xff0c;使用 Adapter 从列表(如数组或数据库)中获取内容的列表项会自动插入列表中。 适配器(Adapter)实际上是UI组件和将数据填充到UI组件中的数据源之间的桥梁&#xff0c;适配器保存数据并将数据发送到适配器视图&#xff0…

说说我最近筛简历和面试的感受。。

大家好&#xff0c;我是鱼皮。 都说现在行情不好、找工作难&#xff0c;但招人又谈何容易&#xff1f;&#xff01; 最近我们公司在招开发&#xff0c;实习社招都有。我收到的简历很多&#xff0c;但认真投递的、符合要求的却寥寥无几&#xff0c;而且都是我自己看简历、选人…

【ES6】Proxy的高级用法,实现一个生成各种 DOM 节点的通用函数dom

下面的例子则是利用get拦截&#xff0c;实现一个生成各种 DOM 节点的通用函数dom。 <body> </body><script>const dom new Proxy({}, {get(target, property) {return function(attrs {}, ...children) {const el document.createElement(property);for …

路由转发(详细理解+实例精讲)

系列文章目录 华为数通学习&#xff08;5&#xff09; 目录 华为数通学习&#xff08;5&#xff09; 前言 一&#xff0c;最长匹配原则 实例1&#xff1a; 实例2&#xff1a; 二&#xff0c;路由转发流程&#xff1a; 三&#xff0c;IP路由表小结&#xff1a; 总结 前…

公司新招了一个拿14K的测试员,而我工作3年才8K,凭什么?

最近我的好朋友给我分享了一个他公司发生的事&#xff0c;大概的内容呢就是&#xff1a;公司一位工作3年的测试员的工资还没有一个刚来的新人高&#xff0c;对此怨气不小&#xff0c;她来公司辛辛苦苦三年&#xff0c;三年内迟到次数都不超过5次&#xff0c;每天都是按时上下班…

WebGPT VS WebGPU

推荐&#xff1a;使用 NSDT编辑器 快速搭建3D应用场景 随着WebGPU的引入&#xff0c;Web开发发生了有趣的转变&#xff0c;WebGPU是一种新的API&#xff0c;允许Web应用程序直接访问设备的图形处理单元&#xff08;GPU&#xff09;。这种发展意义重大&#xff0c;因为 GPU 擅长…

如何买期权看多:期权交易技巧指南,一定要看!

首先我们要清楚在50ETF期权中有两个角色&#xff0c;分别是买方和卖方&#xff0c;两者互为对手方&#xff0c;买方也就是散户&#xff0c;卖方可以理解为机构&#xff0c;认购是看多&#xff0c;认沽是做空。下文介绍如何买期权看多&#xff1a;期权交易技巧指南&#xff0c;一…