このドキュメントでは、ワイド & ディープ パイプラインとコンポーネントの表形式ワークフローの概要について説明します。ワイド & ディープでモデルをトレーニングする方法については、ワイド & ディープでモデルをトレーニングするをご覧ください。
ワイド&ディープでは、ワイド線形モデルとディープ ニューラル ネットワークを一緒にトレーニングします。記憶化と一般化の利点が組み合わされています。一部のオンライン テストでは、ワイド&ディープは、ワイドモデルとディープモデルに比べ、Google ストア アプリケーションの獲得数が大幅に増加していることが明らかになりました。
利点
- Vertex AI との統合。トレーニング済みモデルは Vertex AI モデルです。すぐにバッチ予測を実行することや、オンライン予測のためにモデルをデプロイすることが可能です。
Vertex AI Pipelines によるワイド & ディープ
ワイド & ディープの表形式ワークフローは、Vertex AI Pipelines のマネージド インスタンスです。
Vertex AI Pipelines は、Kubeflow Pipelines を実行するサーバーレス サービスです。パイプラインを使用して、ML とデータ準備タスクを自動化し、モニタリングできます。パイプラインの各ステップは、パイプラインのワークフローの一部として実行されます。たとえば、パイプラインにはデータの分割、データタイプの変換、モデルのトレーニングなどのステップを含めることができます。ステップはパイプライン コンポーネントのインスタンスで、入力、出力、コンテナ イメージが含まれます。ステップの入力は、パイプラインの入力から設定することも、このパイプライン内の他のステップの出力に応じて設定することもできます。これらの依存関係は、パイプラインのワークフローを有向非巡回グラフとして定義します。
ワイド & ディープの表形式ワークフローは 2 つのバージョンがあります。
- HyperparameterTuningJob は、モデルのトレーニングに使用するハイパーパラメータ値の最適な組み合わせを検索します。
- CustomJob では、モデルのトレーニングに使用するハイパーパラメータ値を指定できます。必要なハイパーパラメータ値が正確にわかっている場合は、それらを検索する代わりに指定するとトレーニング リソースを節約できます。
ワイド & ディープ CustomJob パイプラインとコンポーネントの概要
ワイド & ディープ カスタムジョブ パイプラインを次の図に示します。
パイプラインは、次のコンポーネントで構成されます。
- feature-transform-engine: 特徴量エンジニアリングを実行します。詳細については、特徴量変換エンジンをご覧ください。
- split-materialized-data: 実体化されたデータをトレーニング セット、評価セット、テストセットに分割します。
入力:
- 実体化されたデータ:
materialized_data
出力:
- 実体化されたトレーニング分割:
materialized_train_split
- 実体化された評価分割
materialized_eval_split
。 - 実体化されたテストセット:
materialized_test_split
- 実体化されたデータ:
- wide-and-deep-trainer: モデルのトレーニングを行います。
入力:
- インスタンス ベースライン:
instance_baseline
- トレーニング スキーマ:
training_schema
- 出力変換
transform_output
。 - 実体化されたトレーニング分割:
materialized_train_split
- 実体化された評価分割
materialized_eval_split
。 - 実体化されたテストセット:
materialized_test_split
出力:
- 最終モデル
- インスタンス ベースライン:
- automl-tabular-infra-validator: 予測リクエストを送信して正常に完了したかどうかをチェックすることで、トレーニングされたモデルを検証します。
- model-upload: モデルをユーザーの Cloud Storage バケットから Vertex AI に Vertex AI モデルとしてアップロードします。
- condition-run-evaluation-2: 省略可。テストセットを使用して評価指標を計算します。
run_evaluation
がtrue
に設定されている場合にのみ実行されます。
ワイド & ディープ HyperparameterTuningJob パイプラインとコンポーネントの概要
ワイド & ディープの HyperparameterTuningJob パイプラインを次の図に示します。
- feature-transform-engine: 特徴量エンジニアリングを実行します。詳細については、特徴量変換エンジンをご覧ください。
- split-materialized-data: 実体化されたデータをトレーニング セット、評価セット、テストセットに分割します。
入力:
- 実体化されたデータ:
materialized_data
出力:
- 実体化されたトレーニング分割:
materialized_train_split
- 実体化された評価分割
materialized_eval_split
。 - 実体化されたテストセット:
materialized_test_split
- 実体化されたデータ:
- get-wide-and-deep-study-spec-parameters: トレーニング パイプラインの構成に基づいてスタディ仕様を生成します。ユーザーが
study_spec_parameters_override
の値を指定した場合は、その値を使用してスタディ仕様の値をオーバーライドします。入力:
- (省略可)スタディ仕様パラメータのオーバーライド:
study_spec_parameters_override
出力:
- ハイパーパラメータ調整ジョブのハイパーパラメータとその範囲の最終的なリスト。
- (省略可)スタディ仕様パラメータのオーバーライド:
- wide-and-deep-hyperparameter-tuning-job: ハイパーパラメータの調整を 1 回以上試行します。
入力:
- インスタンス ベースライン:
instance_baseline
- トレーニング スキーマ:
training_schema
- 出力変換
transform_output
。 - 実体化されたトレーニング分割:
materialized_train_split
- 実体化された評価分割
materialized_eval_split
。 - 実体化されたテストセット:
materialized_test_split
- ハイパーパラメータとハイパーパラメータ調整ジョブの範囲のリスト。
- インスタンス ベースライン:
- get-best-hyperparameter-tuning-job-trial: 前の手順の最適なハイパーパラメータ チューニング ジョブのトライアルからモデルを選択します。
出力:
- 最終モデル
- automl-tabular-infra-validator: 予測リクエストを送信して正常に完了したかどうかをチェックすることで、トレーニングされたモデルを検証します。
- model-upload: モデルをユーザーの Cloud Storage バケットから Vertex AI に Vertex AI モデルとしてアップロードします。
- condition-run-evaluation-2: 省略可。テストセットを使用して評価指標を計算します。
run_evaluation
がtrue
に設定されている場合にのみ実行されます。