从 Kubeflow 流水线迁移到 Vertex AI Pipelines

对于拥有构建 Kubeflow 流水线经验的开发者来说,一定要了解 Vertex AI Pipelines 与 Kubeflow Pipelines 的以下不同之处。

数据传递(输入/输出)

特定领域的语言 (DSL) 版本用法

  • Vertex AI Pipelines 可以运行使用 TFX v0.30.0 或更高版本或 Kubeflow Pipelines SDK v2 网域特定语言 (DSL) 构建的流水线。

    Kubeflow Pipelines SDK v2 DSL 在 Kubeflow Pipelines SDK v1.6 或更高版本中提供。

    Kubeflow Pipelines 可以运行使用 Kubeflow Pipelines SDK 构建的流水线。Kubeflow Pipelines v1.6 或更高版本也可以运行使用 Kubeflow Pipelines SDK v2 DSL 构建的流水线。

存储空间

  • Kubeflow 流水线和 Vertex AI Pipelines 以不同方式处理存储。在 Kubeflow 流水线中,您可以使用 Kubernetes 资源(如永久性卷声明)。在 Vertex AI Pipelines 中,您的数据存储在 Cloud Storage 上,并使用 Cloud Storage FUSE 装载到组件中。

    在 Vertex AI Pipelines 中,您可以使用 Google Cloud 服务提供资源 - 例如,您可以使用 Cloud Storage FUSE 在流水线步骤中将 Cloud Storage 存储桶作为装载卷进行访问。如果您的 Cloud Storage URI 为 gs://example-bucket/example-pipeline,则流水线组件的容器可以使用 Cloud Storage FUSE 按使用以下路径访问该 URI:/gcs/example-bucket/example-pipeline

  • 使用 Vertex AI Pipelines 运行流水线时,必须在 @pipeline 注释中或在创建流水线运行时指定流水线根目录。

    在 Kubeflow Pipelines 中,指定流水线根目录是可选的。默认情况下,使用 MinIO 存储流水线运行的工件。

Vertex AI Pipelines 不支持的功能

  • Vertex AI Pipelines 目前不支持以下 Kubeflow Pipelines 功能。

    • 缓存到期:在 Kubeflow Pipelines 中,通过使用 Kubeflow Pipelines SDK v1 DSL,您可以指定缓存组件的执行作业会在指定时间后过期。

      目前,您无法使用 Kubeflow Pipelines SDK v2 DSL 来指定组件执行过期之前的经过时间量。

      在 Vertex AI Pipelines 中,当您使用 create_run_from_job_spec 运行流水线时,可以使用 enable_caching 参数指定此流水线运行不使用缓存。

    • Recursion:在 Kubeflow Pipelines 中,您可以指定递归调用的流水线组件。

      目前,Vertex AI Pipelines 不支持以递归方式调用的流水线组件。