このページでは、1 回限りの Model Monitoring 分析を含めるようにバッチ予測ジョブ リクエストを構成する方法について説明します。バッチ予測の場合、Model Monitoring はカテゴリ入力特徴や数値入力特徴に対し、特徴スキュー検出をサポートします。
Model Monitoring スキュー分析を使用してバッチ予測ジョブを作成するには、バッチ予測入力データとモデルの元のトレーニング データの両方をリクエストに含める必要があります。Model Monitoring の分析を追加できるのは、新しいバッチ予測ジョブを作成する場合に限られます。
スキューの詳細については、Model Monitoring の概要をご覧ください。
オンライン(リアルタイム)予測用に Model Monitoring を設定する方法については、Model Monitoring の使用をご覧ください。
前提条件
バッチ予測で Model Monitoring を使用するには、次の手順に沿って操作します。
Vertex AI Model Registry に、表形式 AutoML または表形式のカスタム トレーニング 形式のいずれかのモデルを用意します。
トレーニング データを Cloud Storage または BigQuery にアップロードし、そのデータの URI リンクを取得します。
- AutoML でトレーニングされたモデルの場合は、代わりにトレーニング データセットのデータセット ID を使用できます。
Model Monitoring は、トレーニング データとバッチ予測の出力を比較します。トレーニング データとバッチ予測の出力には、サポートされているファイル形式を使用してください。
モデルタイプ トレーニング データ バッチ予測の出力 カスタム トレーニング CSV、JSONL、BigQuery、TfRecord(tf.train.Example) JSONL AutoML 表形式 CSV、JSONL、BigQuery、TfRecord(tf.train.Example) CSV、JSONL、BigQuery、TfRecord(Protobuf.Value) 省略可: カスタム トレーニングされたモデルの場合は、モデルのスキーマを Cloud Storage にアップロードします。Model Monitoring には、スキュー検出用のベースライン分布を計算するためのスキーマが必要です。
バッチ予測をリクエストする
次の方法で、Model Monitoring 構成をバッチ予測ジョブに追加できます。
コンソール
Model Monitoring を有効にしてバッチ予測リクエストを行う手順は次のとおりです。
REST API
REST API を使用してバッチ予測リクエストを行う手順は次のとおりです。
バッチ予測リクエストを作成するときは、次の Model Monitoring 構成をリクエスト JSON 本文に追加します。
"modelMonitoringConfig": { "alertConfig": { "emailAlertConfig": { "userEmails": "EMAIL_ADDRESS" }, "notificationChannels": [NOTIFICATION_CHANNELS] }, "objectiveConfigs": [ { "trainingDataset": { "dataFormat": "csv", "gcsSource": { "uris": [ "TRAINING_DATASET" ] } }, "trainingPredictionSkewDetectionConfig": { "skewThresholds": { "FEATURE_1": { "value": VALUE_1 }, "FEATURE_2": { "value": VALUE_2 } } } } ] }
ここで
EMAIL_ADDRESS: Model Monitoring からアラートを受け取るメールアドレス。例:
example@example.com
。NOTIFICATION_CHANNELS: Model Monitoring からアラートを受信する Cloud Monitoring 通知チャンネルのリスト。通知チャンネルのリソース名は、プロジェクトの通知チャネルを一覧表示して取得できます。例:
"projects/my-project/notificationChannels/1355376463305411567", "projects/my-project/notificationChannels/1355376463305411568"
。TRAINING_DATASET は、Cloud Storage に保存されているトレーニング データセットへのリンクです。
- BigQuery トレーニング データセットへのリンクを使用するには、
gcsSource
フィールドを次のように置き換えます。
"bigquerySource": { { "inputUri": "TRAINING_DATASET" } }
- AutoML モデルへのリンクを使用するには、
gcsSource
フィールドを次のように置き換えます。
"dataset": "TRAINING_DATASET"
- BigQuery トレーニング データセットへのリンクを使用するには、
FEATURE_1:VALUE_1 と FEATURE_2:VALUE_2 は、モニタリングする各特徴のアラートしきい値ですたとえば、
Age=0.4
を指定した場合、Age
特徴について入力分布とベースライン分布の間の統計的距離が 0.4 を超えると、Model Monitoring によってアラートがログに記録されます。デフォルトでは、すべてのカテゴリ特徴と数値特徴がモニタリングされ、しきい値は 0.3 です。
Model Monitoring の構成の詳細については、モニタリング ジョブのリファレンスをご覧ください。
Python
Model Monitoring を使用してカスタム表形式のモデルのバッチ予測ジョブを実行するには、サンプル ノートブックをご覧ください。
Model Monitoring は、ジョブの更新とアラートをメールで自動的に通知します。
アクセス スキュー指標
バッチ予測ジョブのスキュー指標にアクセスするには、次の方法を使用します。
コンソール(ヒストグラム)
Google Cloud コンソールを使用して、モニタリング対象の各特徴における特徴分布のヒストグラムを表示し、どのスキューが時間の経過とともに偏っているのかを確認します。
[バッチ予測] ページに移動します。
[バッチ予測] ページで、分析するバッチ予測ジョブをクリックします。
[モデル モニタリングのアラート] タブをクリックすると、モデルの入力特徴のリストと、各特徴のアラートしきい値などの関連情報が表示されます。
特徴を分析するには、特徴の名前をクリックします。その特徴の特徴分布のヒストグラムがページに表示されます。
データ分布をヒストグラムとして可視化すると、データ内で発生した変更をすばやく確認できます。その後、特徴生成パイプラインの調整や、モデルの再トレーニングを決定できます。
コンソール(JSON ファイル)
Google Cloud コンソールを使用して JSON 形式の指標にアクセスします。
[バッチ予測] ページに移動します。
バッチ予測モニタリング ジョブの名前をクリックします。
[モニタリング プロパティ] タブをクリックします。
[モニタリングの出力ディレクトリ] リンクをクリックして、Cloud Storage バケットに移動します。
metrics/
フォルダをクリックします。skew/
フォルダをクリックします。feature_skew.json
ファイルをクリックして、[オブジェクトの詳細] ページに移動します。次のいずれかの方法で JSON ファイルを開きます。
[ダウンロード] をクリックして、ローカルのテキスト エディタでファイルを開きます。
gsutil URI のパスを使用して、Cloud Shell またはローカル ターミナルで
gcloud storage cat gsutil_URI
を実行します。
feature_skew.json
ファイルには、キーが特徴名で、値が特徴スキューである辞書が含まれています。例:
{ "cnt_ad_reward": 0.670936, "cnt_challenge_a_friend": 0.737924, "cnt_completed_5_levels": 0.549467, "month": 0.293332, "operating_system": 0.05758, "user_pseudo_id": 0.1 }
Python
Model Monitoring でバッチ予測ジョブを実行した後に、カスタム表形式のモデルのスキュー指標にアクセスする方法については、サンプル ノートブックをご覧ください。
バッチ予測のモニタリング エラーをデバッグする
バッチ予測のモニタリング ジョブが失敗した場合は、Google Cloud コンソールでデバッグログを確認できます。
[バッチ予測] ページに移動します。
失敗したバッチ予測モニタリング ジョブの名前をクリックします。
[モニタリング プロパティ] タブをクリックします。
[モニタリングの出力ディレクトリ] リンクをクリックして、Cloud Storage バケットに移動します。
logs/
フォルダをクリックします。いずれかの
.INFO
ファイルをクリックすると、[オブジェクトの詳細] ページに移動します。次のいずれかの方法でログファイルを開きます。
[ダウンロード] をクリックして、ローカルのテキスト エディタでファイルを開きます。
gsutil URI のパスを使用して、Cloud Shell またはローカル ターミナルで
gcloud storage cat gsutil_URI
を実行します。
ノートブック チュートリアル
これらのエンドツーエンドのチュートリアルで、Vertex AI Model Monitoring を使用してモデルの可視化と統計情報を取得する方法の詳細を確認してください。
AutoML
- AutoML 表形式モデル用の Vertex AI Model Monitoring
- AutoML 画像モデルでのバッチ予測用の Vertex AI Model Monitoring
- AutoML 画像モデルでのオンライン予測用の Vertex AI Model Monitoring
カスタム
- カスタム表形式モデル用の Vertex AI Model Monitoring
- TensorFlow Serving コンテナを使用したカスタム表形式モデル用の Vertex AI Model Monitoring
XGBoost モデル
Vertex Explainable AI の特徴アトリビューション
バッチ予測
表形式モデルを設定する
次のステップ
- Model Monitoring の使用方法を学習する。
- Model Monitoring がトレーニング / サービング スキューと予測ドリフトを計算する方法を学習する。