【正解】A
【0からの解説】
①前提知識:Vertex AI Pipelines(現 Gemini Enterprise Agent Platform Pipelines、以下 Agent Platform Pipelines)は、KFP SDK で定義したパイプラインをサーバーレスで実行するマネージドサービスです。この Pipelines には「実行キャッシュ」機能があり、各ステップの「インターフェース」(入力パラメータの値と入力アーティファクト ID、出力の定義、コンポーネント仕様=コンテナ イメージ・コマンド・引数・環境変数)をキャッシュキーとして、ML Metadata に同じキーの成功済み実行が記録されていれば、そのステップを再実行せずに前回の出力を再利用します。キャッシュは同じパイプライン名の実行間で共有され、有効期限はありません。タスク単位では task.set_caching_options(...) で、ジョブ単位では PipelineJob の enable_caching で制御できます。
②要件の整理:(1) 2 時間かかる前処理を、入力やパラメータが変わったときだけ再実行、(2) 後続の学習コンポーネントは頻繁に修正して再送信、(3) 労力・コスト・合計実行時間を最小化。
③正解の理由:前処理コンポーネントで実行キャッシュを有効にしておけば、入力・パラメータ・コンポーネント仕様が同じ限りキャッシュヒットとなり 2 時間の処理がスキップされ、前回の出力アーティファクトがそのまま後続の model_training に渡されます。逆に入力やパラメータ、コードが変わればキャッシュキーが変わるので自動的に再実行されます。これは「変更時のみ再実行」という要件そのものであり、1 行の設定で済むため労力もコストも最小です。なお、学習コンポーネントはコードを変更しているのでコンポーネント仕様が変わり、キャッシュされずに毎回実行されます。
【誤りの選択肢】
B:Experiments は実験のパラメータや指標、リネージの記録・比較のための機能で、ステップの実行をスキップする仕組みではありません。前回の URI を手作業でトレーニング コンポーネントに渡す運用は手間がかかり、前処理の入力が変わったかどうかを自動判定できないため、「入力が変わったときだけ再実行」を満たしません。
C:PVC は Kubernetes 上で動く KFP の概念で、サーバーレスの Agent Platform Pipelines ではパイプライン実行間で共有する PVC を前提にした構成は一般的ではありません。仮にデータを共有できても、前処理を再実行すべきかどうか(入力の変更有無)を判定する仕組みは提供されず、自前のロジックが必要になります。
D:dsl.Condition はパイプライン内の上流タスクの出力値に基づいて分岐する機能で、「過去の別の実行がいつ行われたか」を判定する仕組みではありません。また「直近 1 時間以内に実行されたか」という時間基準は「入力やパラメータが変わったか」という要件と一致せず、1 時間を過ぎれば入力が同じでも再実行され、逆に入力が変わっても 1 時間以内ならスキップされてしまいます。
【参考】
実行キャッシュを構成するGemini Enterprise Agent Platform Pipelines の概要