Kubeflow Pipelines から Vertex AI Pipelines への移行

Kubeflow Pipelines を構築した経験があるデベロッパーにとって、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 Pipelines と Vertex AI Pipelines では、ストレージの処理方法が異なります。Kubeflow Pipelines では、永続ボリューム クレームなどの Kubernetes リソースを利用できます。Vertex AI Pipelines では、データが Cloud Storage に保存され、Cloud Storage FUSE を使用してコンポーネントにマウントされます。

    Vertex AI Pipelines では、Google Cloud サービスを使用してリソースを利用できます。たとえば、パイプラインのステップでマウントされたボリュームとして Cloud Storage バケットにアクセスするには、Cloud Storage FUSE を使用できます。Cloud Storage URI が gs://example-bucket/example-pipeline の場合、パイプライン コンポーネントのコンテナは、Cloud Storage FUSE を使用して、/gcs/example-bucket/example-pipeline というパスとしてその URI にアクセスできます。

  • Vertex AI Pipelines を使用してパイプラインを実行する場合は、パイプライン ルートが @pipeline アノテーションで指定されているか、パイプライン実行の作成時に指定されている必要があります。

    Kubeflow Pipelines では、パイプラインのルートの指定は任意です。パイプライン実行のアーティファクトは、デフォルトで MinIO を使用して保存されます。

Vertex AI Pipelines でサポートされない機能

  • 現在、以下の Kubeflow Pipelines 機能は、Vertex AI Pipelines ではサポートされていません。

    • キャッシュの有効期限: Kubeflow Pipelines では、Kubeflow Pipelines SDK v1 DSL を使用して、指定した期間の経過後に、キャッシュ内のコンポーネントの実行が期限切れになるように指定できます。

      現時点では、Kubeflow Pipelines SDK v2 DSL を使用して、指定した期間の経過後に、コンポーネントの実行が期限切れになるように指定することはできません。

      Vertex AI Pipelines では、create_run_from_job_spec を使用してパイプラインを実行する場合、enable_caching 引数を使用して、このパイプライン実行でキャッシュを使用しないことを指定できます。

    • 再帰処理: Kubeflow Pipelines では、再帰的に呼び出されるパイプライン コンポーネントを指定できます。

      現時点では、Vertex AI Pipelines は、再帰的に呼び出されるパイプライン コンポーネントをサポートしていません。