【正解】D
【0からの解説】
①前提知識:Vertex AI Pipelines(現 Gemini Enterprise Agent Platform Pipelines)では、Google Cloud パイプライン コンポーネント(GCPC)として、バッチ予測ジョブを実行するコンポーネント(ModelBatchPredictOp)や、予測結果と正解ラベルから分類・回帰などの評価指標を計算するモデル評価コンポーネント、エンドポイント作成・デプロイのコンポーネントなどが用意されています。また KFP の条件分岐(dsl.Condition/dsl.If)を使うと、上流タスクの出力(評価指標など)に応じて後続タスク(デプロイ)を実行するかどうかを決められます。バッチ予測はエンドポイントを常時起動する必要がなく、ジョブ実行中だけリソースが課金されます。
②要件の整理:(1) ホールドアウトしたテスト データセットで性能を検証、(2) 指標が特定のしきい値を満たした場合のみ本番エンドポイントにデプロイ、(3) コストと管理のオーバーヘッドを最小化。
③正解の理由:バッチ予測コンポーネントでテスト データセットの予測を生成し、モデル評価コンポーネントで指標を算出、条件付きタスクでしきい値判定してデプロイする構成は、Google が提供する既製コンポーネントの組み合わせだけで実現できる標準的なパターンです。評価は未知データ(ホールドアウト)で行われるため信頼でき、一時エンドポイントのような常時課金リソースも不要なので、コストと管理負荷の両方を最小化できます。
【誤りの選択肢】
A:トレーニング データセットで計算した指標は、モデルが学習に使ったデータに対する成績なので過学習していても高く出ます。要件の「ホールドアウトしたテスト データセットでの検証」を満たさず、汎化性能を正しく判定できません。
B:比較に使っているのはトレーニング指標であり、ホールドアウトのテスト データセットで評価していません。また、要件は「特定のしきい値を満たすこと」であって「本番モデルより優れていること」ではないため、判定基準も要件と一致しません。さらに Model Registry からの取得や比較ロジックを自前の Python コンポーネントで実装・保守する必要があります。
C:テスト データの評価のためだけに一時エンドポイントへデプロイすると、デプロイ中はノードが常時起動して課金され、デプロイ・アンデプロイの待ち時間や後片付けの管理も発生します。さらにオンライン予測用のリクエスト送信と指標計算をカスタム コンポーネントで実装する必要があり、オフラインでまとめて推論できるバッチ予測+既製の評価コンポーネントに比べてコストも管理のオーバーヘッドも大きくなります。
【参考】
Agent Platform を使用してモデルを評価するGoogle Cloud パイプライン コンポーネントのリストパイプラインのビルド