Vertex AI Model Monitoring (適用於批次預測)

本頁面說明如何設定批次預測工作要求,納入一次性模型監控分析。針對批次預測,Model Monitoring 支援類別和數值輸入特徵的特徵偏差偵測功能。

如要建立含有模型監控偏差分析的批次預測工作,您必須在要求中加入批次預測輸入資料和模型的原始訓練資料。您只能在建立新的批次預測工作時,新增 Model Monitoring 分析。

如要進一步瞭解偏差,請參閱「Model Monitoring 簡介」。

如需線上 (即時) 預測的模型監控設定操作說明,請參閱「使用模型監控」。

必要條件

如要搭配批次預測使用模型監控功能,請完成下列步驟:

  1. Vertex AI Model Registry 中必須有可用的模型,可以是 表格 AutoML 或表格自訂訓練類型。

  2. 將訓練資料上傳至 Cloud StorageBigQuery,並取得資料的 URI 連結。

    • 如果是使用 AutoML 訓練的模型,您可以改用訓練資料集的資料集 ID
  3. 模型監控會將訓練資料與批次預測輸出結果進行比較。請務必使用支援的檔案格式,輸入訓練資料和批次預測輸出內容:

    模型類型 訓練資料 輸出批次預測結果
    自訂訓練 CSV、JSONL、BigQuery、TfRecord(tf.train.Example) JSONL
    AutoML Tabular CSV、JSONL、BigQuery、TfRecord(tf.train.Example) CSV、JSONL、BigQuery、TfRecord(Protobuf.Value)
  4. 選用:如果是自訂訓練的模型,請將模型的結構定義上傳至 Cloud Storage。模型監控功能需要結構定義,才能計算偏差偵測的基準分布。

要求批次預測

您可以使用下列方法,將模型監控設定新增至批次預測工作:

控制台

請按照操作說明,發出啟用模型監控功能的批次預測要求:

REST API

請按照操作說明,使用 REST API 提出大量預測要求:

建立批次預測要求時,請將下列模型監控設定新增至要求 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 是您要用來接收模型監控警示的電子郵件地址。例如:example@example.com

  • NOTIFICATION_CHANNELS:您希望接收模型監控快訊的 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"
  • FEATURE_1:VALUE_1FEATURE_2:VALUE_2 是您要監控的每項功能的警示門檻。舉例來說,如果您指定 Age=0.4,當 Age 特徵的輸入和基準分布之間的統計距離超過 0.4 時,模型監控功能就會記錄快訊。根據預設,每個分類和數值特徵都會以 0.3 的閾值值進行監控。

如要進一步瞭解模型監控設定,請參閱監控工作參考資料

Python

請參閱範例筆記本,瞭解如何針對自訂表格模型,透過模型監控功能執行批次預測工作。

Model Monitoring 會透過電子郵件自動通知您工作更新和快訊。

存取偏差指標

您可以使用下列方法存取批次預測作業的偏差指標:

主控台 (次元表)

您可以使用 Google Cloud 控制台查看每個受監控特徵的特徵分布直方圖,瞭解哪些變更會導致偏移情形:

  1. 前往「批次預測」頁面:

    前往「批次預測」

  2. 在「批次預測」頁面中,按一下要分析的批次預測工作。

  3. 按一下「Model Monitoring Alerts」分頁,即可查看模型輸入特徵的清單,以及相關資訊 (例如每個特徵的快訊門檻)。

  4. 如要分析某個功能,請按一下該功能的名稱。頁面會顯示該特徵的特徵分布直方圖。

    將資料分布以直方圖呈現,可讓您快速掌握資料變化。之後,您可以調整特徵產生管道或重新訓練模型。

    直方圖:顯示偏差偵測的輸入資料分布和訓練資料分布示例。

控制台 (JSON 檔案)

使用 Google Cloud 主控台以 JSON 格式存取指標:

  1. 前往「批次預測」頁面:

    前往「批次預測」

  2. 按一下批次預測監控工作的名稱。

  3. 按一下「監控屬性」分頁標籤。

  4. 按一下「Monitoring output directory」連結,系統會將您導向 Cloud Storage 值區。

  5. 按一下「metrics/資料夾。

  6. 按一下「skew/資料夾。

  7. 按一下 feature_skew.json 檔案,系統會將您導向「Object details」(物件詳細資料) 頁面。

  8. 使用下列任一選項開啟 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

請參閱範例筆記本,瞭解如何在使用模型監控功能執行批次預測工作後,存取自訂表格模型的偏差指標。

對批次預測監控失敗情形進行偵錯

如果批次預測監控工作失敗,您可以在 Google Cloud 控制台中找到除錯記錄:

  1. 前往「批次預測」頁面。

    前往「批次預測」

  2. 按一下失敗的批次預測監控工作名稱。

  3. 按一下「監控屬性」分頁標籤。

  4. 按一下「Monitoring output directory」連結,系統會將您導向 Cloud Storage 值區。

  5. 按一下「logs/資料夾。

  6. 按一下任一 .INFO 檔案,系統會導向「Object details」頁面。

  7. 使用下列任一選項開啟記錄檔案:

    • 按一下「下載」,然後在本機文字編輯器中開啟檔案。

    • 使用 gsutil URI 路徑,在 Cloud Shell 或本機終端機中執行 gcloud storage cat gsutil_URI

筆記本教學課程

請參閱這些端對端教學課程,進一步瞭解如何使用 Vertex AI 模型監控功能,取得模型的圖表和統計資料。

AutoML

自訂

XGBoost 模型

Vertex Explainable AI 特徵歸因

批次預測

表格式模型的設定

後續步驟