用于批量预测的 Vertex AI Model Monitoring

本页面介绍如何配置批量预测作业请求以包含一次性 Model Monitoring 分析。对于批量预测,Model Monitoring 支持分类和数值输入特征的特征偏差检测。

如需使用 Model Monitoring 偏差分析创建批量预测作业,您必须在请求中同时包含模型的批量预测输入数据和原始训练数据。您只能在创建新的批量预测作业时添加 Model Monitoring 分析。

如需详细了解偏差,请参阅 Model Monitoring 简介

如需了解如何为在线(实时)预测设置 Model Monitoring,请参阅使用 Model Monitoring

前提条件

如需将 Model Monitoring 与批量预测搭配使用,请完成以下操作:

  1. 在 Vertex AI Model Registry 中准备好可用的模型,可以是表格 AutoML 或表格自定义训练类型。

  2. 将您的训练数据上传到 Cloud StorageBigQuery,并获取数据的 URI 链接。

    • 对于使用 AutoML 训练的模型,您可以使用训练数据集的数据集 ID
  3. Model Monitoring 会将训练数据与批量预测输出进行比较。请确保为训练数据和批量预测输出使用受支持的文件格式:

    模型类型 训练数据 批量预测输出
    自定义训练 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 配置添加到批量预测作业:

控制台

按照相关说明在启用 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 是您用于接收 Model Monitoring 提醒的电子邮件地址。例如 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 时,Model Monitoring 会记录提醒。默认情况下,每个分类和数值特征都会受监控,并且阈值为 0.3。

如需详细了解 Model Monitoring 配置,请参阅 Monitoring 作业参考

Python

如需使用 Model Monitoring 针对自定义表格模型运行批量预测作业,请参阅示例笔记本

Model Monitoring 会自动通过电子邮件通知您作业更新和提醒。

访问偏差指标

您可以使用以下方法访问批量预测作业的偏差指标:

控制台(直方图)

使用 Google Cloud 控制台查看每个受监控特征的特征分布直方图,并了解哪些更改随时间变化会导致偏差:

  1. 前往批量预测页面:

    前往“批量预测”

  2. 批量预测页面上,点击要分析的批量预测作业。

  3. 点击 Model Monitoring 提醒标签页以查看模型的输入特征列表以及相关信息(例如每个特征的提醒阈值)。

  4. 如需分析特征,请点击特征的名称。此时会显示一个页面,其中显示该特征的特征分布直方图。

    通过以直方图的形式直观呈现数据分布,您可以快速关注数据中发生的变化。之后,您可以决定调整特征生成流水线或重新训练模型。

    显示进行偏差检测的示例输入数据分布和训练数据分布的直方图。

控制台(JSON 文件)

使用 Google Cloud 控制台访问 JSON 格式的指标:

  1. 前往批量预测页面:

    前往“批量预测”

  2. 点击批量预测监控作业的名称。

  3. 点击 Monitoring 属性标签页。

  4. 点击 Monitoring 输出目录链接,这会将您转到 Cloud Storage 存储桶。

  5. 点击 metrics/ 文件夹。

  6. 点击 skew/ 文件夹。

  7. 点击 feature_skew.json 文件,即可进入对象详情页面。

  8. 使用以下任一选项打开 JSON 文件:

  • 点击下载,然后在本地文本编辑器中打开该文件。

  • 使用 gsutil URI 文件路径在 Cloud Shell 或本地终端中运行 gsutil 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. 点击 Monitoring 属性标签页。

  4. 点击 Monitoring 输出目录链接,这会将您转到 Cloud Storage 存储桶。

  5. 点击 logs/ 文件夹。

  6. 点击其中一个 .INFO 文件,即可转到对象详细信息页面。

  7. 使用以下任一选项打开日志文件:

    • 点击下载,然后在本地文本编辑器中打开该文件。

    • 使用 gsutil URI 文件路径在 Cloud Shell 或本地终端中运行 gsutil cat GSUTIL_URI

笔记本教程

详细了解如何使用 Vertex AI Model Monitoring 通过这些端到端教程获取模型的可视化内容和统计信息。

AutoML

自定义

XGBoost 模型

Explainable AI 特征归因

批量预测

表格模型的设置

后续步骤