Kubeflow Trainer部署完全手册:Helm Charts与Kustomize配置详解

【免费下载链接】training-operator Distributed AI Model Training and LLM Fine-Tuning on Kubernetes 【免费下载链接】training-operator 项目地址: https://gitcode.com/gh_mirrors/tr/training-operator

Kubeflow Trainer是一个在Kubernetes上实现分布式AI模型训练和LLM微调的强大工具。本指南将详细介绍如何使用Helm Charts和Kustomize两种方式部署Kubeflow Trainer,帮助你快速搭建专业的机器学习训练环境。

📋 部署前准备

在开始部署Kubeflow Trainer之前,请确保你的环境满足以下要求:

  • Kubernetes集群版本 >= 1.29
  • Helm版本 >= 3
  • Git工具

首先,克隆Kubeflow Trainer仓库到本地:

git clone https://gitcode.com/gh_mirrors/tr/training-operator
cd training-operator

🚀 Helm Charts部署方法

Helm是Kubernetes的包管理工具,提供了一种简单高效的方式来部署和管理Kubeflow Trainer。

基础安装

安装最新发布版本(例如2.1.0):

helm install kubeflow-trainer oci://ghcr.io/kubeflow/charts/kubeflow-trainer --version 2.1.0

如果你需要安装master分支的最新开发版本,可以使用类似以下命令:

helm install kubeflow-trainer oci://ghcr.io/kubeflow/charts/kubeflow-trainer --version 0.0.0-sha-bfccb7b

启用训练运行时

Kubeflow Trainer支持多种机器学习框架的运行时环境。默认情况下这些运行时是禁用的,你可以根据需要启用特定的运行时:

helm install kubeflow-trainer oci://ghcr.io/kubeflow/charts/kubeflow-trainer \
  --version 2.1.0 \
  --set runtimes.torchDistributed.enabled=true \
  --set runtimes.deepspeedDistributed.enabled=true

或者,你可以一次性启用所有默认运行时:

helm install kubeflow-trainer oci://ghcr.io/kubeflow/charts/kubeflow-trainer \
  --version 2.1.0 \
  --set runtimes.defaultEnabled=true

使用自定义配置文件

创建一个自定义的values.yaml文件来配置你的部署:

# values.yaml
runtimes:
  torchDistributed:
    enabled: true
  deepspeedDistributed:
    enabled: true
  mlxDistributed:
    enabled: true

# 启用数据缓存支持
dataCache:
  enabled: true
  cacheImage:
    tag: "v2.0.0"
  runtimes:
    torchDistributedWithCache:
      enabled: true

然后使用该配置文件进行安装:

helm install kubeflow-trainer oci://ghcr.io/kubeflow/charts/kubeflow-trainer \
  --version 2.1.0 \
  -f values.yaml

可用的训练运行时

Kubeflow Trainer提供了多种预配置的训练运行时:

  • torch-distributed: PyTorch分布式训练(无需自定义镜像)
  • torch-distributed-with-cache: 带分布式数据缓存支持的PyTorch(需要启用dataCache)
  • deepspeed-distributed: 带MPI的DeepSpeed分布式训练
  • mlx-distributed: 带MPI的MLX分布式训练
  • xgboost-distributed: XGBoost分布式训练

卸载Helm部署

要卸载Kubeflow Trainer,使用以下命令:

helm uninstall kubeflow-trainer

注意:这不会删除CRD资源,需要手动删除。

⚙️ Kustomize配置部署

Kustomize是另一种流行的Kubernetes配置管理工具,特别适合需要高度自定义部署的场景。

基础部署

Kubeflow Trainer的Kustomize配置位于manifests/目录下。要部署默认配置:

kubectl apply -k manifests/overlays/manager

自定义镜像版本

你可以通过修改Kustomization文件来自定义镜像版本。例如,编辑manifests/overlays/manager/kustomization.yaml

images:
  - name: ghcr.io/kubeflow/trainer/trainer-controller-manager
    newTag: v2.2.0  # 将版本改为你需要的版本

同样,你可以在manifests/overlays/runtimes/kustomization.yaml中更新运行时镜像版本:

images:
  - name: ghcr.io/kubeflow/trainer/torchtune-trainer
    newTag: v2.2.0
  - name: ghcr.io/kubeflow/trainer/mlx-runtime
    newTag: v2.2.0
  # 其他运行时镜像...

部署训练运行时

要部署预配置的训练运行时,使用以下命令:

kubectl apply -k manifests/overlays/runtimes

部署数据缓存组件

数据缓存功能可以显著提高训练性能,特别是在处理大型数据集时:

kubectl apply -k manifests/overlays/data-cache

🔍 部署验证

部署完成后,验证Kubeflow Trainer组件是否正常运行:

kubectl get pods -n kubeflow-system

你应该能看到类似以下的输出,显示trainer-controller-manager pod正在运行:

NAME                                        READY   STATUS    RESTARTS   AGE
trainer-controller-manager-7f9658b8c4-2x4kf   1/1     Running   0          5m

📊 Kubeflow Trainer工作流

Kubeflow Trainer提供了完整的LLM微调生命周期管理,从数据和模型初始化到训练和导出:

LLM微调生命周期

上图展示了Kubeflow Trainer的完整工作流程,包括:

  • 数据科学家使用Kubeflow Python SDK管理训练任务
  • MLOps和DevOps工程师管理运行时环境
  • 自动获取数据集和模型资产
  • 通过JobSet和Trainer组件协调分布式训练
  • 训练完成后导出模型到云存储

训练作业流程

以下是Kubeflow Trainer V2的训练作业流程示意图:

LLM Trainer V2工作流程

这个流程包括:

  1. 数据初始化器下载数据集
  2. 模型初始化器下载基础模型
  3. 预处理数据
  4. 使用PyTorch、Hugging Face或NVIDIA NeMo进行训练
  5. 导出微调后的模型到云存储

🛠️ 高级配置

Istio边车配置

如果你在使用Istio服务网格,可能需要配置边车排除webhook端口:

# 在values.yaml中添加
manager:
  podAnnotations:
    traffic.sidecar.istio.io/excludeInboundPorts: "9443"

然后使用更新后的配置文件升级部署:

helm upgrade kubeflow-trainer oci://ghcr.io/kubeflow/charts/kubeflow-trainer \
  --version 2.1.0 \
  -f values.yaml

资源配置

你可以根据集群资源情况调整控制器的资源配置:

# 在values.yaml中添加
manager:
  resources:
    requests:
      cpu: 1
      memory: 1Gi
    limits:
      cpu: 2
      memory: 2Gi

📚 更多资源

通过本指南,你已经掌握了使用Helm Charts和Kustomize两种方式部署Kubeflow Trainer的方法。根据你的具体需求和环境,可以选择最适合的部署方式,快速搭建起强大的分布式机器学习训练平台。

【免费下载链接】training-operator Distributed AI Model Training and LLM Fine-Tuning on Kubernetes 【免费下载链接】training-operator 项目地址: https://gitcode.com/gh_mirrors/tr/training-operator

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐