【kubeflow文档】Kubeflow Training Operator

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-simplenamespace: kubeflow
spec:tfReplicaSpecs:Worker:replicas: 2restartPolicy: OnFailuretemplate:spec:containers:- name: tensorflowimage: kubeflow/tf-mnist-with-summaries:latestcommand:- "python"- "/var/tf_mnist/mnist_with_summaries.py"

        资源PyTorchJob 

apiVersion: "kubeflow.org/v1"
kind: PyTorchJob
metadata:name: pytorch-simple-001namespace: kubeflow
spec:pytorchReplicaSpecs:Master:replicas: 1restartPolicy: OnFailuretemplate:spec:containers:- name: pytorchimage: kubeflowkatib/pytorch-mnist:v1beta1-45c5727imagePullPolicy: Alwayscommand:- "python3"- "/opt/pytorch-mnist/mnist.py"- "--epochs=1"Worker:replicas: 2restartPolicy: OnFailuretemplate:spec:containers:- name: pytorchimage: kubeflowkatib/pytorch-mnist:v1beta1-45c5727imagePullPolicy: Alwayscommand:- "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.mzph.cn/pingmian/22847.shtml

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

相关文章

宜选影票api接口如何申请密钥和授权呢?

宜选影票API接口的密钥申请和授权过程一般包括以下步骤,以下将按照清晰的格式分点表示和归纳相关信息: 注册开发者账号: 前往宜选影票的官方网站或开发者平台。注册一个开发者账号,填写必要的个人信息和联系方式。申请API访问权限…

二刷算法训练营Day22 | 二叉树(8/9)

目录 详细布置: 1. 235. 二叉搜索树的最近公共祖先 2. 701. 二叉搜索树中的插入操作 3. 450. 删除二叉搜索树中的节点 详细布置: 1. 235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共…

用这个AI工具,做公众号爆款图文,5分钟一篇10w+,居然这么简单!(附工具教程)

文章首发于公众号:X小鹿AI副业 大家好,我是程序员X小鹿,前互联网大厂程序员,自由职业2年,也一名 AIGC 爱好者,持续分享更多前沿的「AI 工具」和「AI副业玩法」,欢迎一起交流~ 之前X小鹿一直在各…

mac虚拟光驱工具:Daemon Tools for Mac

Daemon Tools for Mac是一款功能强大的虚拟光驱工具,它为用户提供了在Mac上模拟物理光驱的能力,从而方便用户处理各种光盘映像文件。以下是关于Daemon Tools for Mac的详细介绍: 守护进程工具:Daemon Tools不仅是一个简单的虚拟光…

【讯为Linux驱动开发】2.注册一个字符设备

【问】如何描述一个字符设备? dev结构体 其中需要关心三个成员变量: 所属模块 :struct module *owner; 文件操作结构体: const struct file_operations *ops 设备号 : dev_t 当应用层使用指令open("/dev/hello&…

学生成绩管理系统(大一大作业)

功能 实现添加&#xff0c;排序&#xff0c;修改&#xff0c;保存等功能 库函数 #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<string.h> 头文件 #define functioncreate(major) void major##compare(mana mn){\int i,j,s…

使用Matlab软件绘制函数图像

【实验目的】 1.利用Matlab实现平面上曲线和三维空间中曲线绘制&#xff0c;重点掌握隐函数、极坐标图像绘制的相关命令。 2.利用Matlab实现三维曲面绘制&#xff0c;加深对高等数学课程所学内容的理解 【实验内容与实现】 1、用两种方法绘制下面的曲线图 &#xff08;1&am…

Autodesk 3ds Max软件下载安装;3ds Max功能强大的三维建模、渲染软件安装包获取

3ds Max&#xff0c;无论是初学者还是资深设计师&#xff0c;都能通过3ds Max在数字世界中实现自己的创意&#xff0c;打造出令人惊叹的三维作品。 在3ds Max中&#xff0c;灯光系统是至关重要的一环。它提供了光度学灯光和标准灯光两种主要类型&#xff0c;用于照亮和增强场景…

Spring家族中的消息通信解决方案

相信大家对消息通信架构以及各种消息中间件应该都不陌生。在分布式系统的设计和开发过程中&#xff0c;消息通信是用于实现系统解耦、提高扩展性的一大技术体系。而业界关于如何实现消息通信系统也有很多解决方案和对应的开发框架。不知道你有没有发现&#xff0c;在我们每天都…

计算机英文教材太难啃?Higress 和通义千问帮你!

作者&#xff1a;张添翼&#xff08;澄潭&#xff09; 计算机相关英文教材的中译本质量堪忧&#xff0c;对于计算机专业的学生来说&#xff0c;应该深有体会。因为大部分教材的译者本人可能未必完全吃透书中技术内容&#xff0c;又或者是领域技术大拿&#xff0c;但并不擅长英…

数据结构的归并排序(c语言版)

一.归并排序的基本概念 1.基本概念 归并排序是一种高效的排序算法,它采用了分治的思想。它的基本过程如下: 将待排序的数组分割成两个子数组,直到子数组只有一个元素为止。然后将这些子数组两两归并,得到有序的子数组。不断重复第二步,直到最终得到有序的整个数组。 2.核心…

LabVIEW2017破解安装教程

LabVIEW2017破解安装教程&#xff1a; 1、新版LabVIEW2017分为32位和64位两个平台&#xff0c;多种语言版本(需要LabVIEW2017中文版的朋友请选择WinChn版本)&#xff0c;大家选择自行选择符合系统的版本下载并解压 2、本次安装以Win 7 64位系统为例&#xff0c;运行“2017LV-64…

龙蜥社区 5 月度运营大事件回顾

各位龙蜥社区的朋友们&#xff0c;你们好&#xff01; 龙蜥社区 5 月运营月报如期而至&#xff01;本次从特别图送、龙蜥生态、龙蜥活动、龙蜥 SIG 月度动态、精彩内容推荐等几方面总结、回顾了 5 月发生的重要事件。

设计模式之过滤器模式FilterPattern(十)

一、过滤器模式 过滤器模式&#xff08;Filter Pattern&#xff09;或标准模式&#xff08;Criteria Pattern&#xff09;是一种设计模式&#xff0c;这种模式允许开发人员使用不同的标准来过滤一组对象&#xff0c;通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模…

【长亭雷池WAF——“动态防护”功能深度体验】

前言&#xff1a; 在当今的网络安全环境中&#xff0c;Web应用防火墙&#xff08;WAF&#xff09;扮演着至关重要的角色。它们不仅能够防御常见的Web攻击&#xff0c;如SQL注入、跨站脚本攻击&#xff08;XSS&#xff09;等&#xff0c;还能够应对日益复杂的网络威胁。 长亭…

如何通过 6 种简单方法将照片从华为转移到 PC?

华为作为全球领先的智能手机供应商之一&#xff0c;最近推出了其自主研发的操作系统——HarmonyOS 2.0&#xff0c;旨在为智能手机、平板电脑和智能手表等设备提供更流畅的用户体验。随着Mate 40/P40等系列手机计划升级到HarmonyOS 2.0&#xff0c;用户可能需要将手机中的文件备…

CAM350如何快速删除Gerber文件上的东西?

文章目录 CAM350如何快速删除Gerber文件上的东西?CAM350如何快速保存已经修改的Gerber文件? CAM350如何快速删除Gerber文件上的东西? CAM如何导入Gerber文件见此篇 今天遇上了一个删除Gerber文件上部分字母的任务&#xff0c;CAM350只能一点点删除线的操作把我手指头差点按…

订单排队与链动模式塑造社交电商新格局

在数字化浪潮中&#xff0c;社交电商凭借其独特的魅力与潜力&#xff0c;正逐渐崭露头角。本文将解读一种融合了订单排队与链动模式的创新商业模式。这一模式旨在通过提高消费者复购率&#xff0c;优化销售流程&#xff0c;从而推动销售增长&#xff0c;塑造社交电商新生态。 …

Mybatis03-ResultMap及分页

1、属性名和字段名不一致问题 1.问题 数据库中的字段 新建一个项目Mybatis-04&#xff0c;拷贝之前&#xff0c;测试实体类字段不一致的情况 public class User {private int id;private String name;private String password; }select * from mybatis.user where id #{id} …

2024年宜昌中级工程师职称如何申报呢?

今年宜昌中级职称如何报名&#xff1f;怎么申报&#xff1f;申报时间是什么时候呢&#xff1f;报名条件是什么呢&#xff1f; 一、2024年宜昌中级职称申报条件&#xff1a;1.社保条件&#xff1a;在宜昌本地注册登记6个月以上民营企业&#xff0c;专业技术岗位从事工程技术工作…