使用在线预测日志记录

对于 AutoML 表格模型、AutoML 图片模型和自定义训练模型,您可以在模型部署端点创建期间启用或停用预测日志。本页面介绍了不同类型的可用预测日志,以及如何启用或停用这些日志。

预测日志的类型

您可以使用多种类型的预测日志从预测节点获取信息:

  • 容器日志记录,用于将来自预测节点的 stdoutstderr 信息流记录到 Cloud Logging 中。调试需要这些日志。

    • v1 服务端点上,容器日志记录默认处于启用状态。您可以在部署模型时停用它。您也可以在变更已部署的模型时停用或启用日志记录。

    • v1beta1 服务端点上,容器日志记录默认处于停用状态。您可以在部署模型时启用它。您也可以在变更已部署的模型时停用或启用日志记录。

  • 访问日志记录,用于将每个请求的时间戳和延迟时间等信息记录到 Cloud Logging 中。

    v1v1beta1 服务端点上,访问日志记录默认处于停用状态。您可以在将模型部署到端点时启用访问日志记录。

  • 请求-响应日志记录,用于将在线预测请求和响应的样本记录到 BigQuery 表中。

    您可以通过创建或修补预测端点来启用请求-响应日志记录。

您可以单独启用或停用各种类型的日志。

预测日志设置

您可以在创建端点、将模型部署到端点或变更已部署的模型时启用或停用在线预测日志。

如需更新访问日志的设置,您必须取消部署模型,然后使用新设置重新部署模型。您可以更新容器日志的设置,而无需重新部署模型。

以较高的每秒查询次数 (QPS) 进行的在线预测可能会生成大量日志,而这些日志要按照 Cloud Logging 价格计费。如需估算在线预测日志的价格,请参阅估算日志记录的账单。如需降低此费用,您可以停用预测日志记录。

启用和停用预测日志

以下示例重点说明了修改默认日志设置的位置:

控制台

在 Google Cloud 控制台中将模型部署到端点或创建新端点时,您可以在日志记录步骤中指定要启用的预测日志的类型。选中相应复选框可启用访问日志记录 (Access logging) 或容器日志记录 (Container logging),清除相应复选框可停用这些日志。

使用 REST API 更新容器日志的设置。

使用 REST API 启用请求-响应日志记录。Google Cloud 控制台和 gcloud CLI 不支持请求-响应日志记录配置。

如需了解有关如何部署模型的更多上下文信息,请参阅使用 Google Cloud 控制台部署模型

gcloud

如需更改在已部署模型中针对其启用日志的默认行为,请在 gcloud 命令中添加标志:

v1 服务端点

运行 gcloud ai endpoints deploy-model

gcloud ai endpoints deploy-model ENDPOINT_ID\
  --region=LOCATION \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --machine-type=MACHINE_TYPE \
  --accelerator=count=2,type=nvidia-tesla-t4 \
  --disable-container-logging \
  --enable-access-logging

v1beta1 服务端点

运行 gcloud beta ai endpoints deploy-model

gcloud beta ai endpoints deploy-model ENDPOINT_ID\
  --region=LOCATION \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --machine-type=MACHINE_TYPE \
  --accelerator=count=2,type=nvidia-tesla-t4 \
  --enable-access-logging \
  --enable-container-logging

使用 REST API 更新容器日志的设置。

使用 REST API 启用请求-响应日志记录。Google Cloud 控制台和 gcloud CLI 不支持请求-响应日志记录配置。

如需详细了解如何部署模型,请参阅使用 Vertex AI API 部署模型

REST

如需更改在已部署模型中针对其启用日志的默认行为,请将相关字段设置为 True

v1 服务端点

如需停用容器日志记录,请在调用 projects.locations.endpoints.deployModelprojects.locations.endpoints.mutateDeployedModel 时将 disableContainerLogging 字段设置为 True

如需启用访问日志记录,请在使用 projects.locations.endpoints.deployModel 部署模型时,将 enableAccessLogging 设置为 True

v1beta1 服务端点

如需启用容器日志记录,请在调用 projects.locations.endpoints.deployModelprojects.locations.endpoints.mutateDeployedModel 时将 enableContainerLogging 字段设置为 True

如需启用访问日志记录,请在使用 projects.locations.endpoints.deployModel 部署模型时,将 enableAccessLogging 设置为 True

如需详细了解如何部署模型,请参阅使用 Vertex AI API 部署模型

请求-响应日志记录

只有在使用 projects.locations.endpoints.create 创建端点或使用 projects.locations.endpoints.patch 修补现有端点时才能启用请求-响应日志记录。

请求-响应日志记录是在端点级别完成的,因此系统会记录发送到同一端点下所有已部署模型的请求。

创建或修补端点时,请使用以下条目填充端点资源predictRequestResponseLoggingConfig 字段:

  • enabled:设置为 True 以启用请求-响应日志记录。

  • samplingPercentage:此标志表示介于 0 和 1 之间的一个数字,用于定义要记录的请求的比例。例如,将此值设置为 1 以便记录所有请求,或设置为 0.1 以便记录 10% 的请求。

  • BigQueryDestination:用于日志记录的 BigQuery 表。如果仅指定项目名称,则系统会创建名为 logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID 的新数据集,其中 ENDPOINT_DISPLAY_NAME 遵循 BigQuery 命名规则。如果您未指定表名称,则系统会创建名为 request_response_logging 的新表。

    BigQuery 表的架构应如下所示:

    字段名称类型模式
    endpointSTRING可以为空
    deployed_model_idSTRING可以为空
    logging_timeTIMESTAMP可以为空
    request_idNUMERIC可以为空
    request_payloadSTRINGREPEATED
    response_payloadSTRINGREPEATED

下面是一个示例配置:

{
   "predict_request_response_logging_config": {
     "enabled": true,
     "sampling_rate": 0.5,
     "bigquery_destination": {
       "output_uri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME"
     }
   }
}

请求-响应日志记录和 Model Monitoring v1

请求-响应日志记录和 Model Monitoring v1 在后端使用相同的 BigQuery 表来记录传入的请求。为防止此 BigQuery 表发生意外更改,请在同时使用这两种功能时实施以下限制:

  • 如果端点启用了模型监控,则不能对同一端点启用请求-响应日志记录。

  • 如果在同一端点上同时启用了请求-响应日志记录和模型监控,则将无法更改请求-响应日志记录配置。

后续步骤