对于拥有构建 Kubeflow 流水线经验的开发者来说,一定要了解 Vertex AI Pipelines 与 Kubeflow Pipelines 的以下不同之处。
数据传递(输入/输出)
- 通过输入和输出传递的数据与 Kubeflow Pipelines SDK v1 到 Kubeflow Pipelines SDK v2 不同。Kubeflow Pipelines SDK v2 分离了参数和工件,并且它们不能相互传递。如需了解详情,请参阅 Kubeflow 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 不支持以递归方式调用的流水线组件。