Vertex AI Pipelines は、パイプラインを実行するときに、各パイプライン ステップのインターフェース(キャッシュキー)を含む実行が、Vertex ML Metadata に存在するかどうかを確認します。
ステップのインターフェースは、以下の組み合わせとして定義されます。
パイプライン ステップの入力。これらの入力には、入力パラメータの値(存在する場合)と入力アーティファクト ID(存在する場合)が含まれます。
パイプライン ステップの出力定義。この出力定義には、出力パラメータの定義(名前、存在する場合)と出力アーティファクトの定義(存在する場合)が含まれます。
コンポーネントの仕様。この仕様には、使用するイメージ、コマンド、引数、環境変数のほか、コマンドと引数の順序が含まれます。
また、同じパイプライン名を持つパイプラインのみがキャッシュを共有します。
Vertex ML Metadata に一致する実行がある場合、その実行の出力が使用され、ステップはスキップされます。これにより、前のパイプライン実行で完了した計算がスキップされ、コストの削減に役立ちます。
実行キャッシュをタスクレベルで無効にするには、次の操作を行います。
eval_task.set_caching_options(False)
パイプライン ジョブ全体の実行キャッシュをオフにすることもできます。PipelineJob()
を使用してパイプラインを実行する場合、このパイプライン実行がキャッシュを使用しないことを指定するために、enable_caching
引数を使用できます。パイプライン ジョブのすべてのステップでキャッシュを使用するわけではありません。パイプライン実行の作成の詳細について確認してください。
次のサンプルを使用して、キャッシュを無効にします。
pl = PipelineJob(
display_name="My first pipeline",
# Whether or not to enable caching
# True = enable the current run to use caching results from previous runs
# False = disable the current run's use of caching results from previous runs
# None = defer to cache option for each pipeline component in the pipeline definition
enable_caching=False,
# Local or Cloud Storage path to a compiled pipeline definition
template_path="pipeline.yaml",
# Dictionary containing input parameters for your pipeline
parameter_values=parameter_values,
# Cloud Storage path to act as the pipeline root
pipeline_root=pipeline_root,
)
この機能には、次の制限が適用されます。
- キャッシュに保存された結果に有効期間(TTL)はなく、Vertex ML Metadata からエントリが削除されない限り再利用できます。エントリを Vertex ML Metadata から削除すると、タスクが再実行されて結果が再生成されます。