TabNet の表形式ワークフロー

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

TabNetシーケンシャル アテンションを使用して、各決定ステップで推論の対象とする特徴を選択します。最も顕著な特徴に学習能力が使用されるため、解釈可能性と学習効率が向上します。

利点

  • データセットのサイズ、予測タイプ、トレーニングの予算に基づいて、適切なハイパーパラメータ検索空間を自動的に選択。
  • Vertex AI との統合。トレーニング済みモデルは Vertex AI モデルです。バッチ予測を実行することや、オンライン予測のモデルをすぐにデプロイすることが可能です。
  • モデル固有の解釈可能性を提供。TabNet が判断に使用した特徴の分析情報が得られます。
  • GPU トレーニングをサポート。

Vertex AI Pipelines での TabNet

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

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

TabNet 用の表形式のワークフローは、2 つのバージョンで使用できます。

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

TabNet CustomJob パイプラインとコンポーネントの概要

TabNet CustomJob パイプラインを次の図に示します。

TabNet CustomJob のパイプライン 

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

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

    入力:

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

    出力:

    • 実体化されたトレーニング分割: materialized_train_split
    • 実体化された評価分割: materialized_eval_split
    • 実体化されたテストセット: materialized_test_split
  3. tabnet-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 に設定されている場合にのみ実行されます。

TabNet HyperparameterTuningJob パイプラインとコンポーネントの概要

TabNet HyperparameterTuningJob パイプラインを次の図に示します。

TabNet HyperparameterTuningJob のパイプライン 

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

    入力:

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

    出力:

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

    入力:

    • トレーニング パイプラインの構成(max_trial_countprediction_type
    • データセットの統計情報: dataset_stats
    • (省略可)スタディ仕様パラメータのオーバーライド: study_spec_parameters_override

    出力:

    • ハイパーパラメータ チューニング ジョブのハイパーパラメータとその範囲の最終的なリスト。
  4. tabnet-hyperparameter-tuning-job: ハイパーパラメータ チューニングのトライアルを 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 に設定されている場合にのみ実行されます。

次のステップ