概述
旧版本
此页面介绍 Kubeflow Training Operator V1,有关最新信息,请查阅 Kubeflow Trainer V2 文档。
请遵循 本指南 迁移到 Kubeflow Trainer V2。
什么是 Training Operator
Training Operator 是一个 Kubernetes 原生项目,用于对使用不同 ML 框架(如 PyTorch、TensorFlow、XGBoost、JAX 等)创建的机器学习 (ML) 模型进行微调和可扩展的分布式训练。
您可以将 HuggingFace、DeepSpeed 或 Megatron-LM 等其他 ML 库与 Training Operator 集成,以在 Kubernetes 上编排它们的 ML 训练。
Training Operator 允许您使用 Kubernetes 工作负载,通过 Kubernetes 自定义资源 API 或 Training Operator Python SDK 来有效地训练大型模型。
Training Operator 实现了一个集中的 Kubernetes 控制器来编排分布式训练作业。
您可以使用 Training Operator 和 MPIJob 运行高性能计算 (HPC) 任务,因为它支持在 Kubernetes 上运行消息传递接口 (MPI),而 MPI 在 HPC 中广泛使用。Training Operator 实现了 MPI Operator 的 V1 API 版本。对于 MPI Operator V2 版本,请遵循 本指南 安装 MPI Operator V2。
Training Operator 负责调度适当的 Kubernetes 工作负载,以实现针对不同 ML 框架的各种分布式训练策略。
为何使用 Training Operator
Training Operator 涉及 AI/ML 生命周期中的模型训练和模型微调步骤,如下图所示
- Training Operator 简化了运行分布式训练和微调的能力。
您可以使用 Training Operator 提供的 API 和接口轻松地将模型训练从单机扩展到大规模分布式 Kubernetes 集群。
- Training Operator 具有可扩展性和可移植性。
您可以将 Training Operator 部署到任何拥有 Kubernetes 集群的云上,并且可以将使用任何编程语言编写的自己的 ML 框架与 Training Operator 集成。
- Training Operator 与 Kubernetes 生态系统集成。
您可以利用 Kubernetes 的高级调度技术,例如 Kueue、Volcano 和 YuniKorn,结合 Training Operator 来优化您的 ML 训练资源的成本节省。
ML 框架的自定义资源
为了执行分布式训练,Training Operator 为每个 ML 框架实现了以下自定义资源
ML 框架 | 自定义资源 |
---|---|
PyTorch | PyTorchJob |
TensorFlow | TFJob |
XGBoost | XGBoostJob |
MPI | MPIJob |
PaddlePaddle | PaddleJob |
JAX | JAXJob |