You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何从命令行连接Kubeflow集群并快速设置运行输入参数执行实验?

命令行操作Kubeflow运行的高效方案

嘿,我刚好有过用命令行批量处理Kubeflow实验的经验,这就给你梳理几个实用的方法,比反复点UI高效太多了!

一、用Kubeflow Pipelines CLI(kfp)快速提交带参数的运行

如果你的实验是基于Kubeflow Pipelines的,kfp CLI是最直接的工具,专门用来批量管理Pipeline运行和参数:

  1. 先装上kfp工具
    用pip就能搞定:
pip install kfp --upgrade
  1. 连接到你的Kubeflow集群
    首先得拿到你Kubeflow Pipelines的API地址(一般是https://<你的Kubeflow域名>/pipeline),然后登录:
kfp login --endpoint <你的Pipeline API地址>

要是你用的是本地测试集群(比如minikube),得先做端口转发:

kubectl port-forward svc/ml-pipeline 8888:80 -n kubeflow

之后用http://localhost:8888作为endpoint登录就行。

  1. 提交带自定义参数的运行
    分两种情况:
  • 如果你已经有上传到Pipelines的模板:先通过UI或者kfp pipeline list拿到模板ID,然后提交:
kfp run submit --experiment-name <你的实验名> --pipeline-id <模板ID> --param "学习率=0.001" --param "批次大小=64"
  • 如果你有本地的Pipeline Python文件:直接编译+提交一步到位:
kfp run submit --experiment-name <你的实验名> --package-path <本地Pipeline文件路径> --param "学习率=0.001" --param "批次大小=64"

二、直接用kubectl操作Kubeflow自定义资源

如果你的实验是基于TFJob、PyTorchJob这类Kubeflow自定义资源(CRD)的,直接用kubectl就能搞定参数配置:

  1. 先确认集群上的Kubeflow CRDs
    跑这个命令看看哪些可用:
kubectl get crds | grep kubeflow.org
  1. 创建带参数的Job示例
    把参数写在YAML文件里,比如一个TFJob的配置:
apiVersion: kubeflow.org/v1
kind: TFJob
metadata:
  name: tf-training-job
  namespace: kubeflow
spec:
  tfReplicaSpecs:
    Worker:
      replicas: 2
      template:
        spec:
          containers:
          - name: tensorflow
            image: tensorflow/tensorflow:2.10.0
            command: ["python", "/app/train.py"]
            args:
            - "--learning-rate=0.001"
            - "--batch-size=64"
            - "--epochs=10"
          restartPolicy: OnFailure

然后应用这个配置:

kubectl apply -f tfjob.yaml
  1. 修改现有运行的参数
    要是想调整已经在跑的Job,直接编辑:
kubectl edit tfjob tf-training-job -n kubeflow

在编辑界面改args里的参数,保存后集群会自动更新运行状态。

三、批量实验的小技巧

  • 写个shell脚本批量提交不同参数的运行,比如调学习率的实验:
# 循环提交不同学习率的运行
for lr in 0.001 0.0005 0.0001; do
  kfp run submit --experiment-name lr-tuning-test --pipeline-id <你的模板ID> --param "learning_rate=$lr" --param "batch_size=64"
done
  • kfp run list看所有运行状态,kfp run describe <运行ID>看详细日志和参数。

内容的提问来源于stack exchange,提问作者LeoPret

火山引擎 最新活动