Kubeflow 训练操作符
概述
Kubeflow 训练操作符是一个原生支持 Kubernetes 的项目,用于对使用各种机器学习(ML)框架(如 PyTorch、Tensorflow、XGBoost、MPI、Paddle 等)创建的机器学习模型进行微调和可扩展的分布式训练。
训练操作符允许你通过 Kubernetes 自定义资源 API 或使用训练操作符的 Python SDK,来有效地使用 Kubernetes 工作负载训练大型模型。
注意:在 v1.2 版本发布之前,Kubeflow 训练操作符仅支持 Kubernetes 上的 TFJob。
- 有关自定义资源定义的完整参考,请参阅 API 定义。
- 有关一体化操作符设计的详细信息,请参阅 一体化 Kubeflow 训练操作符
- 有关其可观测性的详细信息,请参阅 监控设计文档。
先决条件
- 版本 >= 1.25 的 Kubernetes 集群和
kubectl
安装
主分支
kubectl apply -k "github.com/kubeflow/training-operator/manifests/overlays/standalone"
稳定版本
kubectl apply -k "github.com/kubeflow/training-operator/manifests/overlays/standalone?ref=v1.7.0"
仅 TensorFlow 版本
对于喜欢使用原始 TensorFlow 控制器的用户,请查看 v1.2-branch
,该分支仍接受用于修复 bug 的补丁。
kubectl apply -k "github.com/kubeflow/training-operator/manifests/overlays/standalone?ref=v1.2.0"
Kubeflow 训练操作符的 Python SDK
训练操作符提供了自定义资源的 Python SDK。要了解更多可用的 SDK API,请查看 TrainingClient
。
使用 pip install
命令安装最新版本的 SDK:
pip install kubeflow-training
训练操作符控制器和 Python SDK 具有相同的发布版本。
快速入门
请参阅 入门指南,快速使用 Python SDK 创建你的第一个训练操作符作业。
如果你希望直接使用训练操作符提供的 Kubernetes 自定义资源,请遵循 PyTorchJob MNIST 指南。
API 文档
请参阅以下 API 文档:
社区
以下链接提供了关于参与社区的信息:
- 参加 AutoML 和训练工作组 社区会议。
- 加入我们的
#kubeflow-training
Slack 频道。 - 查看 谁在使用训练操作符。
这是 Kubeflow 的一部分,所以请查看 kubeflow/kubeflow 中的自述文件 以了解如何与社区联系。
贡献
请参阅 开发文档
更新日志
请参阅 CHANGELOG
版本矩阵
下表列出了操作符的最新几个版本。
操作符版本 | API 版本 | Kubernetes 版本 |
---|---|---|
v1.0.x | v1 | 1.16+ |
v1.1.x | v1 | 1.16+ |
v1.2.x | v1 | 1.16+ |
v1.3.x | v1 | 1.18+ |
v1.4.x | v1 | 1.23+ |
v1.5.x | v1 | 1.23+ |
v1.6.x | v1 | 1.23+ |
v1.7.x | v1 | 1.25+ |
最新 (主分支 HEAD) | v1 | 1.25+ |
致谢
该项目最初作为 TensorFlow 的分布式训练操作符启动,后来我们将其他 Kubeflow 训练操作符的工作合并在一起,为用户和开发人员提供了统一且简化的体验。我们非常感谢所有提出问题或帮助解决问题的人,感谢那些提出并回答问题,以及参与了富有启发性讨论的人。我们还要感谢所有为原始操作符做出贡献和维护的人。