项目概述
Kubeflow Training Operator 是一个基于 Kubernetes 的项目,用于对使用多种机器学习框架(如 PyTorch、TensorFlow、HuggingFace、JAX、DeepSpeed、XGBoost、PaddlePaddle 等)创建的机器学习模型进行微调和可扩展的分布式训练。这个项目可以帮助用户在 Kubernetes 上高效地运行高性能计算任务,它支持在 Kubernetes 上运行消息传递接口(MPI),这在高性能计算中广泛使用。
Training Operator 允许用户通过 Kubernetes 自定义资源 API 或使用 Training Operator Python SDK 轻松地使用 Kubernetes 工作负载来训练大型模型。
环境准备
安装 Training Operator 之前,请参阅 官方 Kubeflow 文档 以了解所需的前置条件。
安装指南
安装 Training Operator 需要遵循 Kubeflow Training Operator 指南 中的详细说明。
控制平面的安装
执行以下命令以安装 Training Operator 控制平面的最新稳定版本:v1.8.0
。
kubectl apply -k "github.com/kubeflow/training-operator.git/manifests/overlays/standalone?ref=v1.8.0"
执行以下命令以安装 Training Operator 控制平面的最新更改:
kubectl apply -k "github.com/kubeflow/training-operator/manifests/overlays/standalone"
Python SDK 的安装
Training Operator 实现了一个 Python SDK,以简化数据科学家创建分布式训练和微调任务的过程。
运行以下命令以安装最新稳定版本的 Training SDK:
pip install -U kubeflow-training
快速入门
要快速创建第一个使用 Python SDK 的分布式训练任务,请参考 入门指南。
如果希望直接使用 Training Operator 提供的 Kubernetes 自定义资源,请遵循 PyTorchJob MNIST 指南。
社区参与
以下链接提供了如何参与社区的信息:
- 参加 两周一次的 AutoML 和训练工作组 社区会议。
- 加入我们的
#kubeflow-training
Slack 频道。 - 查看 谁在使用 Training Operator。
作为 Kubeflow 的一部分,请查阅 kubeflow/kubeflow 的自述文件以了解如何联系社区。
贡献指南
有关贡献的详细信息,请参见 CONTRIBUTING 指南。
版本变更
请参阅 CHANGELOG 以了解版本变更。
版本对照表
以下表格列出了最新的几个版本的操作员信息。
操作员版本 | API 版本 | Kubernetes 版本 |
---|---|---|
v1.4.x | v1 | 1.23+ |
v1.5.x | v1 | 1.23+ |
v1.6.x | v1 | 1.23+ |
v1.7.x | v1 | 1.25+ |
v1.8.x | v1 | 1.27+ |
latest (master HEAD) | v1 | 1.27+ |
参考文献
有关完整的自定义资源定义的参考信息,请参阅 API 定义。
有关 Training Operator 自定义资源 API 的详细信息,请参阅 相关 API 文档
致谢
该项目最初作为 TensorFlow 的分布式训练操作员开始开发,后来我们整合了来自其他 Kubeflow 训练操作员的功能,以为用户和开发者提供统一和简化的体验。感谢所有提出问题或帮助解决问题、提出和回答问题并参与讨论的人。我们也感谢所有为原始操作员做出贡献和维护的人。