Usar el registro de inferencias online

En el caso de los modelos tabulares de AutoML, los modelos de imagen de AutoML y los modelos entrenados personalizados, puedes habilitar o inhabilitar los registros de inferencia durante el despliegue del modelo o la creación del endpoint. En esta página se explican los distintos tipos de registros de inferencia disponibles y cómo habilitarlos o inhabilitarlos.

Tipos de registros de inferencia

Hay varios tipos de registros de inferencia que puedes usar para obtener información de tus nodos de inferencia:

  • Registro de contenedores: registra los flujos stdout y stderr de tus nodos de inferencia en Cloud Logging. Estos registros son necesarios para la depuración.

    • En el endpoint de servicio v1, el registro de contenedores está habilitado de forma predeterminada. Puedes inhabilitarlo cuando despliegues un modelo. También puedes inhabilitar o habilitar el registro cuando mutas el modelo desplegado.

    • En el endpoint de servicio v1beta1, el registro de contenedores está inhabilitado de forma predeterminada. Puedes habilitarla al desplegar un modelo. También puedes inhabilitar o habilitar el registro cuando modifiques el modelo desplegado.

  • Registro de acceso: registra información como la marca de tiempo y la latencia de cada solicitud en Cloud Logging.

    En los endpoints de los servicios v1 y v1beta1, el registro de acceso está inhabilitado de forma predeterminada. Puedes habilitar el registro de acceso cuando despliegues un modelo en un endpoint.

  • Registro de solicitudes y respuestas, que registra una muestra de solicitudes y respuestas de inferencia online en una tabla de BigQuery.

    Para habilitar el registro de solicitudes y respuestas, crea o parchea el endpoint de inferencia.

Puedes habilitar o inhabilitar cada tipo de registro por separado.

Configuración de registro de inferencias

Puede habilitar o inhabilitar los registros de inferencia online al crear un endpoint, desplegar un modelo en el endpoint o modificar un modelo desplegado.

Para actualizar los ajustes de los registros de acceso, debes desplegar tu modelo y, a continuación, volver a desplegarlo con los nuevos ajustes. Puedes actualizar la configuración de los registros de contenedores sin volver a desplegar el modelo.

La inferencia online con una alta frecuencia de consultas por segundo (CPS) puede generar un número considerable de registros, que están sujetos a los precios de Cloud Logging. Para estimar los precios de los registros de inferencia online, consulta la sección sobre registros de Estimación de facturas. Para reducir este coste, puedes inhabilitar el registro de inferencias.

Habilitar e inhabilitar los registros de inferencia

En los siguientes ejemplos se destaca dónde modificar los ajustes de registro predeterminados:

Consola

Cuando implementas un modelo en un endpoint o creas un endpoint en la consolaGoogle Cloud , puedes especificar qué tipos de registros de inferencia quieres habilitar en el paso Registro. Marca las casillas para habilitar Registro de acceso o Registro de contenedor, o desmarca las casillas para inhabilitar estos registros.

Usa la API REST para actualizar la configuración de los registros de contenedores.

Usa la API REST para habilitar el registro de solicitudes y respuestas. La consolaGoogle Cloud y la CLI de gcloud no admiten la configuración de registro de solicitudes y respuestas.

Para obtener más contexto sobre cómo desplegar modelos, consulta el artículo Desplegar un modelo con la consola de Google Cloud .

gcloud

Para cambiar el comportamiento predeterminado de los registros que se habilitan en los modelos implementados, añade marcas al comando gcloud:

Endpoint de servicio v1

Ejecuta 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

Endpoint de servicio v1beta1

Ejecuta 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

Usa la API REST para actualizar la configuración de los registros de contenedores.

Usa la API REST para habilitar el registro de solicitudes y respuestas. La consolaGoogle Cloud y la CLI de gcloud no admiten la configuración de registro de solicitudes y respuestas.

Para obtener más contexto sobre cómo desplegar modelos, consulta el artículo Desplegar un modelo con la API de Vertex AI.

REST

Para cambiar el comportamiento predeterminado de los registros que se habilitan en los modelos implementados, define los campos correspondientes como True:

Endpoint de servicio v1

Para inhabilitar el registro de contenedores, asigna el valor True al campo disableContainerLogging cuando llames a projects.locations.endpoints.deployModel o projects.locations.endpoints.mutateDeployedModel.

Para habilitar el registro de acceso, asigna el valor True a enableAccessLogging cuando implementes el modelo con projects.locations.endpoints.deployModel.

Endpoint de servicio v1beta1

Para habilitar el registro de contenedores, asigna el valor True al campo enableContainerLogging cuando llames a projects.locations.endpoints.deployModel o projects.locations.endpoints.mutateDeployedModel.

Para habilitar el registro de acceso, asigna el valor True a enableAccessLogging cuando implementes el modelo con projects.locations.endpoints.deployModel.

Para obtener más contexto sobre cómo desplegar modelos, consulta el artículo Desplegar un modelo con la API de Vertex AI.

Registro de solicitudes y respuestas

Solo puedes habilitar el registro de solicitudes y respuestas cuando creas un endpoint con projects.locations.endpoints.create o cuando modificas un endpoint con projects.locations.endpoints.patch.

El registro de solicitudes y respuestas se realiza a nivel de endpoint, por lo que se registran las solicitudes enviadas a cualquier modelo implementado en el mismo endpoint.

Cuando cree o modifique un endpoint, rellene el campo predictRequestResponseLoggingConfig del recurso Endpoint con las siguientes entradas:

  • enabled: asigna el valor True para habilitar el registro de solicitudes y respuestas.

  • samplingPercentage: número entre 0 y 1 que define la fracción de solicitudes que se deben registrar. Por ejemplo, asigna el valor 1 para registrar todas las solicitudes o 0.1 para registrar el 10% de las solicitudes.

  • BigQueryDestination: la tabla de BigQuery que se va a usar para registrar. Si solo especifica un nombre de proyecto, se creará un conjunto de datos con el nombre logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID, donde ENDPOINT_DISPLAY_NAME sigue las reglas de nomenclatura de BigQuery. Si no especificas un nombre de tabla, se creará una tabla con el nombre request_response_logging.

    El esquema de la tabla de BigQuery debe tener el siguiente aspecto:

    Nombre del campoTipoModo
    endpointSTRINGADMITE VALORES NULOS
    deployed_model_idSTRINGADMITE VALORES NULOS
    logging_timeTIMESTAMPADMITE VALORES NULOS
    request_idNUMERICADMITE VALORES NULOS
    request_payloadSTRINGREPETIDO
    response_payloadSTRINGREPETIDO

A continuación, se muestra un ejemplo de configuración:

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

Registro de solicitudes y respuestas de inferencia para endpoints dedicados y endpoints de Private Service Connect

En el caso de los endpoints dedicados y los endpoints de Private Service Connect, puedes usar el registro de solicitudes y respuestas para registrar las cargas útiles de las solicitudes y las respuestas de menos de 10 MB (las cargas útiles de mayor tamaño se omiten automáticamente) de los modelos de TensorFlow, PyTorch, sklearn y XGBoost.

El registro de solicitudes y respuestas solo está disponible para los métodos predict y rawPredict.

Para habilitar el registro de solicitudes y respuestas, rellena el campo predictRequestResponseLoggingConfig del recurso Endpoint con las siguientes entradas:

  • enabled: asigna el valor True para habilitar el registro de solicitudes y respuestas.

  • samplingRate: la fracción de solicitudes y respuestas que se deben registrar. Asigna un número mayor que 0 e inferior o igual a 1. Por ejemplo, asigna el valor 1 para registrar todas las solicitudes o 0.1 para registrar el 10% de las solicitudes.

  • BigQueryDestination: la ubicación de BigQuery del contenido de salida, como URI de un proyecto o una tabla.

A continuación, se muestra un ejemplo de configuración para crear un endpoint dedicado con el registro de solicitudes y respuestas habilitado:

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints \
-d '{displayName: "ENDPOINT_NAME", \
     dedicatedEndpointEnabled: true, \
     predictRequestResponseLoggingConfig: { \
       enabled: true, \
       samplingRate: 1.0, \
       bigqueryDestination: { \
          outputUri:"bq://PROJECT_ID" \
       } \
     } \
   }'

Haz los cambios siguientes:

  • LOCATION_ID: la región en la que usas Vertex AI.
  • PROJECT_NUMBER: el número de proyecto de tu Google Cloud proyecto.
  • ENDPOINT_NAME: el nombre visible del endpoint.
  • PROJECT_ID: el ID del proyecto de Google Cloud .

A continuación, se muestra un ejemplo de configuración para crear un endpoint de Private Service Connect con el registro de solicitudes y respuestas habilitado:

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints \
-d '{displayName: "ENDPOINT_NAME", \
     privateServiceConnectConfig: { \
       enablePrivateServiceConnect: true, \
       projectAllowlist: ["ALLOWED_PROJECTS"] \
     }, \
     predictRequestResponseLoggingConfig: { \
       enabled: true, \
       samplingRate: 1.0, \
       bigqueryDestination: { \
          outputUri:"bq://PROJECT_ID" \
       } \
     } \
   }'

Haz los cambios siguientes:

  • ALLOWED_PROJECTS: lista separada por comas de IDs de proyectos, Google Cloud cada uno entre comillas. Por ejemplo, ["PROJECTID1", "PROJECTID2"]. Si un proyecto no está incluido en esta lista, no podrás enviar solicitudes de inferencia al endpoint de Vertex AI desde él. Asegúrate de incluir VERTEX_AI_PROJECT_ID en esta lista para poder llamar al endpoint desde el mismo proyecto en el que se encuentra.

Registro de solicitudes y respuestas y Model Monitoring v1

El registro de solicitudes y respuestas y Model Monitoring v1 usan la misma tabla de BigQuery en el backend para registrar las solicitudes entrantes. Para evitar cambios inesperados en esta tabla de BigQuery, se aplican las siguientes limitaciones cuando se usan ambas funciones al mismo tiempo:

  • Si un endpoint tiene habilitada la monitorización de modelos, no puedes habilitar el registro de solicitudes y respuestas en el mismo endpoint.

  • Si habilitas el registro de solicitudes y respuestas y, a continuación, la monitorización de modelos en el mismo endpoint, no podrás cambiar la configuración del registro de solicitudes y respuestas.

Siguientes pasos