ワイド&ディープの表形式ワークフロー

このドキュメントでは、ワイド&ディープ パイプラインとコンポーネントの表形式ワークフローの概要について説明します。ワイド&ディープでモデルをトレーニングする方法については、ワイド&ディープでモデルをトレーニングするをご覧ください。

ワイド&ディープでは、ワイド線形モデルとディープ ニューラル ネットワークを一緒にトレーニングします。記憶化と一般化の利点を兼ね備えています。いくつかのオンライン テストでは、ワイド&ディープは、ワイドのみのモデルやディープのみのモデルに比べ、Google ストア アプリケーションの獲得数を大幅に増加させるという結果が得られています。

利点

  • Vertex AI との統合。トレーニング済みモデルは Vertex AI モデルです。すぐにバッチ予測を実行することや、オンライン予測のためにモデルをデプロイすることが可能です。

Vertex AI Pipelines におけるワイド&ディープ

ワイド&ディープの表形式ワークフローは、Vertex AI Pipelines のマネージド インスタンスです。

Vertex AI Pipelines は、Kubeflow Pipelines を実行するサーバーレス サービスです。パイプラインを使用して、ML とデータ準備タスクを自動化し、モニタリングできます。パイプラインの各ステップは、パイプラインのワークフローの一部として実行されます。たとえば、パイプラインにはデータの分割、データタイプの変換、モデルのトレーニングなどのステップを含めることができます。ステップはパイプライン コンポーネントのインスタンスで、入力、出力、コンテナ イメージが含まれます。ステップの入力は、パイプラインの入力から設定することも、このパイプライン内の他のステップの出力に応じて設定することもできます。これらの依存関係は、パイプラインのワークフローを有向非巡回グラフとして定義します。

ワイド&ディープの表形式ワークフローには 2 つのバージョンがあります。

  • HyperparameterTuningJob は、モデルのトレーニングに使用するハイパーパラメータ値の最適な組み合わせを検索します。
  • CustomJob では、モデルのトレーニングに使用するハイパーパラメータ値を指定できます。必要なハイパーパラメータ値が正確にわかっている場合は、それらを検索する代わりに指定するとトレーニング リソースを節約できます。

ワイド&ディープ CustomJob パイプラインとコンポーネントの概要

ワイド&ディープ CustomJob パイプラインを次の図に示します。

ワイド&ディープ CustomJob のパイプライン 

パイプラインは、次のコンポーネントで構成されます。

  1. feature-transform-engine: 特徴量エンジニアリングを実行します。詳細については、特徴量変換エンジンをご覧ください。
  2. split-materialized-data: 実体化されたデータをトレーニング セット、評価セット、テストセットに分割します。

    入力:

    • 実体化されたデータ: materialized_data

    出力:

    • 実体化されたトレーニング分割: materialized_train_split
    • 実体化された評価分割: materialized_eval_split
    • 実体化されたテストセット: materialized_test_split
  3. wide-and-deep-trainer: モデルのトレーニングを行います。

    入力:

    • インスタンス ベースライン: instance_baseline
    • トレーニング スキーマ: training_schema
    • 変換出力: transform_output
    • 実体化されたトレーニング分割: materialized_train_split
    • 実体化された評価分割: materialized_eval_split
    • 実体化されたテストセット: materialized_test_split

    出力:

    • 最終モデル
  4. automl-tabular-infra-validator: 予測リクエストを送信して正常に完了したかどうかをチェックすることで、トレーニングされたモデルを検証します。
  5. model-upload: モデルをユーザーの Cloud Storage バケットから Vertex AI に Vertex AI モデルとしてアップロードします。
  6. condition-run-evaluation-2: 省略可。テストセットを使用して評価指標を計算します。run_evaluationtrue に設定されている場合にのみ実行されます。

ワイド&ディープ HyperparameterTuningJob パイプラインとコンポーネントの概要

ワイド&ディープ HyperparameterTuningJob パイプラインを次の図に示します。

ワイド&ディープ HyperparameterTuningJob のパイプライン 

  1. feature-transform-engine: 特徴量エンジニアリングを実行します。詳細については、特徴量変換エンジンをご覧ください。
  2. split-materialized-data: 実体化されたデータをトレーニング セット、評価セット、テストセットに分割します。

    入力:

    • 実体化されたデータ: materialized_data

    出力:

    • 実体化されたトレーニング分割: materialized_train_split
    • 実体化された評価分割: materialized_eval_split
    • 実体化されたテストセット: materialized_test_split
  3. get-wide-and-deep-study-spec-parameters: トレーニング パイプラインの構成に基づいてスタディ仕様を生成します。ユーザーが study_spec_parameters_override の値を指定した場合は、その値を使用してスタディ仕様の値をオーバーライドします。

    入力:

    • (省略可)スタディ仕様パラメータのオーバーライド: study_spec_parameters_override

    出力:

    • ハイパーパラメータ チューニング ジョブのハイパーパラメータとその範囲の最終的なリスト。
  4. ワイド&ディープ ハイパーパラメータ チューニング ジョブ: ハイパーパラメータの調整を 1 回以上試行します。

    入力:

    • インスタンス ベースライン: instance_baseline
    • トレーニング スキーマ: training_schema
    • 変換出力: transform_output
    • 実体化されたトレーニング分割: materialized_train_split
    • 実体化された評価分割: materialized_eval_split
    • 実体化されたテストセット: materialized_test_split
    • ハイパーパラメータとハイパーパラメータ チューニング ジョブの範囲のリスト。
  5. get-best-hyperparameter-tuning-job-trial: 前の手順の最適なハイパーパラメータ チューニング ジョブのトライアルからモデルを選択します。

    出力:

    • 最終モデル
  6. automl-tabular-infra-validator: 予測リクエストを送信して正常に完了したかどうかをチェックすることで、トレーニングされたモデルを検証します。
  7. model-upload: モデルをユーザーの Cloud Storage バケットから Vertex AI に Vertex AI モデルとしてアップロードします。
  8. condition-run-evaluation-2: 省略可。テストセットを使用して評価指標を計算します。run_evaluationtrue に設定されている場合にのみ実行されます。

次のステップ