概览
注意
Kubeflow Trainer 项目目前处于 alpha 阶段,API 可能会发生变化。如果您正在使用 Kubeflow Training Operator V1,请参阅此迁移文档。
对于旧版 Kubeflow Training Operator V1 文档,请查阅这些指南
什么是 Kubeflow Trainer
Kubeflow Trainer 是一个原生的 Kubernetes 项目,专为大型语言模型(LLMs)微调而设计,并支持跨各种框架(包括 PyTorch、JAX、TensorFlow 和 XGBoost)进行可伸缩的分布式机器学习(ML)模型训练。
您可以将 HuggingFace、DeepSpeed 或 Megatron-LM 等其他 ML 库与 Kubeflow Trainer 集成,以在 Kubernetes 上编排其 ML 训练。
Kubeflow Trainer 允许您使用 Kubeflow Python SDK 轻松开发您的 LLMs,并使用 Kubernetes Custom Resources API 构建原生的 Kubernetes 训练运行时。
适用人群
Kubeflow Trainer 旨在为两种主要用户画像设计,每种用户画像都有特定的资源和职责
用户画像
Kubeflow Trainer 文档根据这些用户画像进行了区分
- ML 用户:使用 Kubeflow Python SDK 和 TrainJob 开发 AI 模型的工程师和科学家。
- 集群操作员:负责管理 Kubernetes 集群和 Kubeflow 训练运行时的管理员。
- 贡献者:参与 Kubeflow Trainer 项目的开源贡献者。
Kubeflow Trainer 简介
观看以下 KubeCon + CloudNativeCon 2024 演讲,其中概述了 Kubeflow Trainer
为什么要使用 Kubeflow Trainer
Kubeflow Trainer 支持 AI/ML 生命周期的关键阶段,包括模型训练和 LLMs 微调,如下图所示
主要优势
- 简单且可伸缩,适用于分布式训练和 LLMs 微调
使用 Kubeflow Python API 和支持的训练运行时,可以轻松地将模型训练从单机扩展到大型分布式 Kubernetes 集群。
- 可扩展且可移植
在任何具有 Kubernetes 集群的云平台上部署 Kubeflow Trainer,并用任何编程语言集成您自己的 ML 框架。
- LLMs 微调蓝图
使用现成的 Kubeflow LLM 蓝图在 Kubernetes 上微调最新的 LLMs。
降低 GPU 成本
Kubeflow Trainer 实现了自定义数据集和模型初始化器,通过将 I/O 任务卸载到 CPU 工作负载来降低 GPU 成本,并简化分布式训练节点间的资产初始化。
无缝 Kubernetes 集成
通过利用 Kueue、Coscheduling、Volcano 或 YuniKorn 等 Kubernetes 项目,优化 ML 工作负载的 GPU 利用率和 Gang-Scheduling。
下一步
按照入门指南运行您的第一个 Kubeflow TrainJob。