Vertex AI Model Monitoring for batch inferences

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

如要使用模型監控偏差分析功能建立批次推論工作,您必須在要求中同時納入批次推論輸入資料和模型的原始訓練資料。只有在建立新的批次推論工作時,才能新增模型監控分析。

如要進一步瞭解偏差,請參閱「模型監控簡介」。

如要瞭解如何為線上 (即時) 推論設定模型監控功能,請參閱「使用模型監控功能」。

必要條件

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

  1. 在 Vertex AI Model Registry 中,提供表格 AutoML 或表格自訂訓練類型的模型。

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

    • 如果是使用 AutoML 訓練的模型,則可改用訓練資料集的資料集 ID
  3. 模型監控會比較訓練資料與批次推論輸出內容。請務必使用支援的檔案格式,儲存訓練資料和批次推論輸出內容:

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

要求批次推論

您可以使用下列方法,將 Model Monitoring 設定新增至批次推論工作:

控制台

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

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 是您要接收模型監控快訊的電子郵件地址。例如:[email protected]

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

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

Python

請參閱範例筆記本,瞭解如何使用 Model Monitoring 為自訂表格模型執行批次推論工作。

Model Monitoring 會透過電子郵件自動通知工作的最新消息和快訊。

存取偏斜指標

您可以使用下列方法,存取批次推論作業的偏斜指標:

控制台 (直方圖)

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

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

    前往「批次預測」

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

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

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

    以直方圖呈現資料分布情形,可讓您快速掌握資料的變化。之後,您可能會決定調整特徵生成管道或重新訓練模型。

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

控制台 (JSON 檔案)

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

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

    前往「批次預測」

  2. 按一下批次推論監控工作的名稱。

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

  4. 按一下「監控輸出目錄」連結,系統會將您導向 Cloud Storage bucket。

  5. 按一下 metrics/ 資料夾。

  6. 按一下 skew/ 資料夾。

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

  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

如要存取自訂表格模型的偏差指標,請參閱範例筆記本,並使用 Model Monitoring 執行批次推論工作。

排解批次推論監控失敗問題

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

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

    前往「批次預測」

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

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

  4. 按一下「監控輸出目錄」連結,系統會將您導向 Cloud Storage bucket。

  5. 按一下 logs/ 資料夾。

  6. 按一下任一 .INFO 檔案,系統會將您導向「物件詳細資料」頁面。

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

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

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

筆記本教學課程

如要進一步瞭解如何使用 Vertex AI Model Monitoring 取得模型的可視化資料和統計資料,請參閱這些端對端教學課程。

AutoML

自訂

XGBoost 模型

Vertex Explainable AI 特徵歸因

批次推論

表格模型設定

後續步驟