【kubeflow文档】Kubeflow Training Operator

news2025/1/15 16:32:30

What is Training Operator

        Training Operator是一个Kubernetes原生项目,用于对使用各种ML框架(如PyTorch、TensorFlow、XGBoost等)创建的机器学习(ML)模型进行微调和可扩展的分布式训练。

        用户可以将HuggingFace、DeepSpeed或Megatron LM等其他ML库与Training Operator集成,以协调他们在Kubernetes上的ML培训。

        Training Operator允许您使用Kubernetes工作负载,通过Kubernete自定义资源API或使用Training Operator Python SDK有效地训练您的大型模型。
        用户可以使用Training Operator和MPIJob运行高性能计算(HPC)任务,因为它支持在大量用于HPC的Kubernetes上运行消息传递接口(MPI)。

        Training Operator负责调度适当的Kubernetes工作负载,以针对不同的ML框架实现各种分布式训练策略。


Why Training Operator

        Training Operator解决了AI/ML生命周期中的模型训练和模型微调步骤,如图所示:

  • Training Operator简化了运行分布式训练和微调的能力。

        用户可以使用training Operator提供的API和接口,轻松地将其模型训练从单机扩展到大规模分布式Kubernetes集群。

  • Training Operator具有可扩展性和可移植性。

        用户可以在任何有Kubernetes集群的云上部署Training Operator,用户可以将自己用任何编程语言编写的ML框架与Training Operator集成。

  • Training Operator与Kubernetes生态系统集成

        用户可以利用Kubernetes的高级调度技术,如Kueue、Volcano和YuniKorn与Training Operator,优化ML训练资源的成本耗费。


How Training Operator

        资源TFJob

apiVersion: "kubeflow.org/v1"
kind: TFJob
metadata:
  name: tfjob-simple
  namespace: kubeflow
spec:
  tfReplicaSpecs:
    Worker:
      replicas: 2
      restartPolicy: OnFailure
      template:
        spec:
          containers:
            - name: tensorflow
              image: kubeflow/tf-mnist-with-summaries:latest
              command:
                - "python"
                - "/var/tf_mnist/mnist_with_summaries.py"

        资源PyTorchJob 

apiVersion: "kubeflow.org/v1"
kind: PyTorchJob
metadata:
  name: pytorch-simple-001
  namespace: kubeflow
spec:
  pytorchReplicaSpecs:
    Master:
      replicas: 1
      restartPolicy: OnFailure
      template:
        spec:
          containers:
            - name: pytorch
              image: kubeflowkatib/pytorch-mnist:v1beta1-45c5727
              imagePullPolicy: Always
              command:
                - "python3"
                - "/opt/pytorch-mnist/mnist.py"
                - "--epochs=1"
    Worker:
      replicas: 2
      restartPolicy: OnFailure
      template:
        spec:
          containers:
            - name: pytorch
              image: kubeflowkatib/pytorch-mnist:v1beta1-45c5727
              imagePullPolicy: Always
              command:
                - "python3"
                - "/opt/pytorch-mnist/mnist.py"
                - "--epochs=1"

          将上述运行到k8s平台上,结果如下:

Training Operator源码实现

        Training Operator启动流程,这里直接使用了kubebuild创建,具体可以参考kubebuild创建项目(Introduction - The Kubebuilder Book),可以了解controller-runtime具体实现,manager controller等。

        这里分别调TFJobKind PyTorchJobKind MXJobKind XGBoostJobKind MPIJobKind PaddleJobKind 的SetupWithManager创建controller,将各种CRD的Reconcile添加到Controller中,这样当workqueue中存在事件时,会交由Reconcile处理。

        例如TFjob的Reconcile实现,最终要根据定义的spec设置成期待的状态,这里就是最核心的就是调用ReconcileJobs,再分别调用ReconcilePods,ReconcileServices。ReconcilePods这里会生成pod的spec,其中包括环境变量TF_CONFIG,例如:

        value: '{"cluster":{"worker":["tfjob-simple-worker-0.kubeflow.svc:2222","tfjob-simple-worker-1.kubeflow.svc:2222"]},"task":{"type":"worker","index":0},"environment":"cloud"}'

总结:

    Training Operator由kubebuiler创建项目,创建了TFJobKind PyTorchJobKind MXJobKind XGBoostJobKind MPIJobKind PaddleJobKind资源,调整成期待的状态,其实就是创建pod以及service。

参考:

  Overview | Kubeflow

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

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

相关文章

HarmonyOS App开发造轮子--自定义圆形图片

思路: 1、对比之前自己在其他程序开发中自定义组件的思路,首先寻找父组件Image和Component相关的Api,看看是否具备OnDraw方法。 2、了解Canvas相关Api操作,特别是涉及到位图的操作。 通过翻阅大量资料,发现了两个关…

【漏洞复现】Apache OFBiz 路径遍历导致RCE漏洞(CVE-2024-36104)

0x01 产品简介 Apache OFBiz是一个电子商务平台,用于构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类应用系统。是美国阿帕奇(Apache)基金会的一套企业资源计划(ERP)系统。该系统提供了一整套基于Java的Web应用程序组件和工具。 0x02 …

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第五周) - Transformer

Transformer 1. 注意力机制 在语言建模中,注意力(attention)是一个关键机制,用于在给定上下文中访问相关信息以进行预测。注意力机制允许模型根据输入上下文中的重要信息来加权关注不同的部分,并根据其重要性来决定对不同部分的关注程度。 …

C#操作MySQL从入门到精通(10)——对查询数据进行通配符过滤

前言 我们有时候需要查询数据,并且这个数据包含某个字符串,这时候我们再使用where就无法实现了,所以mysql中提供了一种模糊查询机制,通过Like关键字来实现,下面进行详细介绍: 本次查询的表中数据如下: 1、使用(%)通配符 %通配符的作用是,表示任意字符出现任意次数…

C++ list链表的使用和简单模拟实现

目录 前言 1. list的简介 2.list讲解和模拟实现 2.1 默认构造函数和push_back函数 2.2 迭代器实现 2.2.1 非const正向迭代器 2.2.2 const正向迭代器 2.2.3 反向迭代器 2.3 插入删除函数 2.3.1 insert和erase 2.3.2 push_back pop_back push_front pop_front 2.4 构…

QT+FFmpeg+Windows开发环境搭建(加薪点)

01、Windows 环境搭建 FFMPEG官网:http://ffmpeg.org/ 02、下载4.2.1版本源码 源码:https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2 03、下载4.2.1编译好的文件 下载已经编译好的FFMPEG)(迅雷下载很快) 网址:https://ffmpeg.zeranoe.com/builds/ 32位下载地址:(迅雷…

这家公司的39亿存款,无法收回了?

新闻提要 4日晚间,亿利洁能发布公告称,亿利财务公司对于公司存放在亿利财务公司的 39.06 亿元货币资金的用途主要是向亿利集团及其关联方发放贷款,近日公司获悉相关贷款已被划分为次级贷款(不良贷款的一种)&#xff0…

重大变化,2024软考!

根据官方发布的2024年度计算机技术与软件专业技术资格(水平)考试安排,2024年软考上、下半年开考科目有着巨大变化,我为大家整理了相关信息,大家可以看看! 🎯2024年上半年:5月25日&am…

特征工程及python实现

一、特征构建 概述 从原始数据中构建新的特征,一般需要根据业务分析,生成能更好体现业务特性的新特征,这些新特征要与目标关系紧密,能提升模型表现或更好地解释模型。 方法 时间周期:不同的时间切片长度&#xff0…

Linux信号大揭秘-从中断到控制进程,一步步掌握进程通信利器!

在Linux环境下,信号(Signal)是一种软件中断,用于通知进程发生了某些重要事件。无论你是在编写命令行工具、服务程序,还是开发图形界面应用,都离不开对信号的处理。本文将全面解析信号的工作原理,并通过实例代码让你彻底…

实用软件分享---简单菜谱 0.3版本 几千种美食(安卓)

专栏介绍:本专栏主要分享一些实用的软件(Po Jie版); 声明1:软件不保证时效性;只能保证在写本文时,该软件是可用的;不保证后续时间该软件能一直正常运行;不保证没有bug;如果软件不可用了,我知道后会第一时间在题目上注明(已失效)。介意者请勿订阅。 声明2:本专栏的…

重生之 SpringBoot3 入门保姆级学习(14、内容协商基础简介)

重生之 SpringBoot3 入门保姆级学习(14、内容协商基础简介) 3.3 内容协商3.3.1 基础简介3.3.2 演示效果 3.3 内容协商 3.3.1 基础简介 默认规则 基于请求头的内容协商(默认开启) 客户端向服务器发送请求,携带 HTTP 标…

大归纳!!教你使用<string.h>的字符函数与字符串函数!!☑

这篇博客为你归纳了所有的字符函数和最常用的字符串函数,以及对应的模拟实现!!你可以直接循着目录跳到你需要的段落哦!!😍 目录 字符函数 字符分类 字符判断函数 islower——判断小写字母 isupper——…

上位机图像处理和嵌入式模块部署(f407 mcu中的udp server开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 既然lwip已经port到407上面了,接下来其实就可以做一些测试了。本身lwip支持tcp、udp,也支持client和server,既然…

Qt信号槽与函数直接调用性能对比

1. 测试方法 定义一个类Recv,其中包含一个成员变量num和一个成员函数add(),add()实现num的递增。 另一个类Send通过信号槽或直接调用的方法调用Recv的add函数。 单独开一个线程Watcher,每秒计算num变量的增长数值,作为add函数被调…

STL中vector动态二维数组理解(杨辉三角)

题目链接&#xff1a;118.杨辉三角 题目描述&#xff1a; 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 题目指要&#xff1a; 本题的主要目的是理解vector<vector<int&…

编译原理总结

编译器构成 1. 前端分析部分 1.1 词法分析 确定词性&#xff0c;输出为token序列 1.2 语法分析 识别短语 1.3 语义分析 分析短语在句子中的成分 IR中间代码生成 2. 机器无关代码优化 3. 后端综合部分 目标代码生成 机器相关代码优化 4. 其他 全局信息表 异常输出

电影推荐系统配置运行

电影推荐系统配置运行 代码地址项目介绍&#xff08;引自原文&#xff09; 环境创建新环境激活环境安装包创建管理员用户(可选)启动 代码地址 movie 项目介绍&#xff08;引自原文&#xff09; 本推荐系统采用的是分层模型设计思想&#xff0c;第一层为前端页面模型设计&…

2024.6.5

1、react原理学习&#xff0c; hook、fiber 2、瀑布流组件完善 3、代码随想录二刷

【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【06】【商品服务】接口文档地址_三级分类_SPU_SKU

持续学习&持续更新中… 学习态度&#xff1a;守破离 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【06】【商品服务】接口文档地址_三级分类_SPU_SKU 接口文档地址三级分类效果图建表后台组建数据的树形结构在人人(后台管理系统)中实现管理商品的三级分类路径规则使用…