监控特征归因偏差和偏移

Vertex 模型监控支持特征归因(特征重要性得分),并根据 Vertex Explainable AI 检测分类和数值输入特征的偏差和偏移。

本页面介绍模型监控的以下功能:

  • 部署到 Vertex AI 在线预测端点的模型的特征归因偏差或偏移检测
  • 特征归因更改提醒
  • 特征归因偏差或偏移的可视化和分析

基于特征归因的监控简介

特征归因通过将预测归因于单个输入的特征,来解释模型的给定输入预测。归因得分与特征对模型预测结果的贡献成正比。它们通常是有符号的,表明某个特征是否有助于提高或降低预测。所有特征的归因必须添加到模型的预测分数中。

监控特征归因包括跟踪随时间变化在生产环境中与模型预测相关联的特征归因。关键思路是跟踪特征对预测的贡献中的更改,而不是特征值本身。关键特征的归因得分变化通常是一个强有力的信号,表明特征发生了变化,可能会影响模型的预测准确率。

监控特征归因具有多项优势,包括能够:

  • 跟踪最重要的特征。特征归因的大幅变化表示特征对预测的贡献发生了变化。由于预测等于特征贡献的总和,因此重大归因偏移(最重要的特征)通常表示模型预测出现重大偏移。
  • 监控所有特征表示法。无论底层特征类型如何,特征归因始终是数值。此外,由于它们的可加性,多维特征(例如嵌入)的归因可以通过添加跨维度的归因来减少为单个数值。这允许对所有特征类型使用标准单变量偏移检测方法。
  • 说明特征交互。特征归因说明了特征对预测的贡献,无论是单独使用还是通过与其他特征的交互。如果特征与其他特征的交互发生变化,则特征的归因分布也会发生变化,即使特征的边缘分布保持不变。
  • 监控特征组。由于归因是可加的,因此我们可以将归因添加到相关特征,以获取特征组的归因。例如,在信用贷款模型中,我们可以将贷款类型相关的所有特征(例如,“grade”、“sub_grade”、“purpose”)的归因进行组合以获取单个贷款归因。随后可以跟踪该组级层归因,以监控特征组的更改。

启用特征归因偏差或偏移检测

如需为模型启用特征归因偏移监控,请执行以下步骤:

  1. 如需为模型启用 Explainable AI,请为模型配置说明。具体来说,需要使用 ExplanationParameters 部署模型。

  2. 为模型配置说明后,请通过执行以下操作启用归因得分监控功能:

    • ExplanationConfig 中将 enableFeatureAttributes 字段设置为 true。
    • (可选)通过提供以下各项之一来指定 explanationBaseline

  3. 将监控类型设置为偏差或偏移

    如需为模型启用特征归因偏差检测,您需要提供用于训练模型的 TrainingDatasetExplanationConfig 中的 explanationBaseline

    如需启用偏移检测,不需要训练数据或说明基准。

  4. 指定接收通知的用户电子邮件地址。这是一个必需的参数。

  5. 设置预测请求采样率。

    为了提高成本效益,通常只需监控模型的部分输入即可。此参数控制出于监控目的而记录和分析的传入预测请求的比例。

    这是一个可选参数。如果用户未配置此参数,模型监控服务会记录所有预测请求。

  6. 设置监控频率。

    监控频率决定了监控已部署模型的输入是否存在偏差或漂移的频率。监控作业将以指定频率对最近记录的输入运行并执行监控。每个监控作业都会监控时间戳之间记录的输入(截止时间-监控期-截止时间)。监控频率决定了每次监控运行中分析的所记录数据的时间范围或监控窗口大小。在 Google Cloud Console 中,您可以查看每个监控作业运行的时间,还可以直观呈现在每个作业中分析的数据。

    最小粒度为 1 小时。如果您使用 Cloud SDK 设置模型监控作业,则默认值为 24 小时。

  7. 指定要监控的特征列表及其提醒阈值。

    您可以指定要监控的输入特征,以及每个特征的提醒阈值。提醒阈值决定了何时抛出提醒。这些阈值表示在输入特征分布与其对应的基准之间计算得出的统计距离指标。您可以为每个受监控特征配置单独的阈值。

    默认情况下,如果未提供此列表,则会监控每个分类和数值特征,并使用以下默认阈值:

    • 分类特征:0.3
    • 数字特征:0.3

端点范围内的配置参数

在线预测端点可以托管多个模型。如果您对某个端点启用偏差或偏移检测,则会在该端点上托管的所有模型之间共享以下配置参数:

  • 检测类型
  • 监控频率
  • 监控输入请求的比例

对于其他配置参数,您可为每个模型设置不同的值。

您可以在 Google Cloud Console 中查看配置参数。

创建模型监控作业

如需设置偏差检测或偏移检测,您可以使用 Cloud SDK 创建模型部署监控作业。

偏差检测

如果训练数据集可用,您可通过运行 gcloud beta ai model-monitoring-jobs create 为端点ENDPOINT_ID下所有已部署的模型创建带有偏差检测的模型监控作业:

gcloud beta ai model-monitoring-jobs create \
    --project=PROJECT_ID \
    --region=REGION \
    --display-name=MONITORING_JOB_NAME \
    --emails=EMAIL_ADDRESS_1,EMAIL_ADDRESS_2 \
    --endpoint=ENDPOINT_ID \
    --feature-thresholds=FEATURE_1=THRESHOLD_1,FEATURE_2=THRESHOLD_2 \
    --feature-attribution-thresholds=FEATURE_1=THRESHOLD_1,FEATURE_2=THRESHOLD_2 \
    --prediction-sampling-rate=SAMPLING_RATE \
    --monitoring-frequency=MONITORING_FREQUENCY \
    --target-field=TARGET_FIELD \
    --bigquery-uri=BIGQUERY_URI

上述命令从 BigQuery 中获取训练数据集,并采用以下格式:

"bq://\.\.\"

您还可以以 CSV 或 TFRecord 格式指定 Cloud Storage 中的训练数据集。

如需使用 CSV,请将 bigquery-uri 标志替换为 --data-format=csv --gcs-uris=gs://some_bucket/some_file

如需使用 TFRecord,请将 bigquery-uri 标志替换为 --data-format=tf-record --gcs-uris=gs://some_bucket/some_file

您还可以将代管式数据集用于表格 AutoML,方法是将 bigquery-uri 标志替换为 --dataset=dataset-id

偏移检测

如果训练数据集不可用,您可以通过运行 gcloud beta ai model-monitoring-jobs create 为端点 ENDPOINT_ID 下所有已部署模型创建具有偏移检测的模型监控作业:

gcloud beta ai model-monitoring-jobs create \
    --project=PROJECT_ID \
    --region=REGION \
    --display-name=MONITORING_JOB_NAME \
    --emails=EMAIL_ADDRESS_1,EMAIL_ADDRESS_2 \
    --endpoint=ENDPOINT_ID \
    --feature-thresholds=FEATURE_1=THRESHOLD_1,FEATURE_2=THRESHOLD_2 \
    --feature-attribution-thresholds=FEATURE_1=THRESHOLD_1,FEATURE_2=THRESHOLD_2 \
    --prediction-sampling-rate=SAMPLING_RATE \
    --monitoring-frequency=MONITORING_FREQUENCY

Model Monitoring SDK 命令

您可以使用 Cloud SDK 更新、暂停和删除模型监控作业。

例如,如需更新 us-central1 区域中项目 example 下的模型监控作业 123 的监控频率,请执行以下频率:

gcloud beta ai model-monitoring-jobs update 123 \
    --monitoring-frequency=1 --project=example --region=us-central1

如需暂停作业,请执行以下操作:

gcloud beta ai model-monitoring-jobs pause 123 --project=example \
    --region=us-central1

如需恢复作业,请运行以下命令:

gcloud beta ai model-monitoring-jobs resume 123 --project=example \
    --region=us-central1

如需删除作业,请运行以下命令:

gcloud beta ai model-monitoring-jobs pause 123 --project=example \
    --region=us-central1

如需了解详情,请参阅 Cloud SDK 中的 model-monitoring-jobs

模型监控作业 API

如需详细了解偏差或偏移检测,请参阅 Model Monitoring API 文档

电子邮件提醒

对于以下事件,模型监控会向创建模型监控作业时指定的每个电子邮件地址发送电子邮件提醒:

  • 每次超过提醒阈值时
  • 每次设置偏差或偏移检测时
  • 每次更新现有模型监控作业配置时

电子邮件提醒包含相关信息,其中包括:

  • 监控作业运行的时间
  • 有偏差或偏移的特征的名称
  • 提醒阈值以及归因得分距离

分析偏差和偏移数据

您可以使用 Cloud Console 直观呈现每个受监控特征的特征归因,并了解哪些更改导致偏差或偏移。您可以将特征值分布视为时间序列或直方图

展示了偏差检测的预测数据特征归因和训练数据特征归因的统计信息摘要图表

在稳定的机器学习系统中,特征的相对重要性通常在一段时间内保持相对稳定。如果某个重要特征的重要性下降,则可能表示该特征发生了一些变化。特征重要性偏移或偏差的常见原因包括:

  • 数据源更改
  • 数据架构和日志记录更改
  • 最终用户组合和/或行为更改(例如,由于季节性变化或离群值事件而发生变化)
  • 通过另一个机器学习模型生成的特征的上游更改。以下是一些示例:
    • 导致覆盖率增加或减少的模型更新(整体或单个分类值)
    • 模型性能的变化(改变特征的含义)
    • 更新到该数据流水线,这可能会降低总体覆盖率

后续步骤