En el caso de los modelos tabulares de AutoML, los modelos de imágenes de AutoML y los modelos entrenados personalizados, puedes habilitar o inhabilitar los registros de inferencia durante la implementación del modelo o la creación de extremos. En esta página, se explican los diferentes tipos de registros de inferencia disponibles y cómo habilitarlos o inhabilitarlos.
Tipos de registros de inferencia
Existen varios tipos de registros de inferencia que puedes usar para obtener información de los nodos de inferencia:
Registro de contenedores, que registra las transmisiones
stdout
ystderr
de los nodos de inferencia en Cloud Logging. Estos registros son necesarios para la depuración.En el extremo del servicio
v1
, el registro de contenedores está habilitado de forma predeterminada. Puedes inhabilitarlo cuando implementes un modelo. También puedes inhabilitar o habilitar el registro cuando mutes el modelo implementado.En el extremo del servicio
v1beta1
, el registro de contenedores está inhabilitado de forma predeterminada. Puedes habilitarlo cuando implementas un modelo. También puedes inhabilitar o habilitar el registro cuando mutes el modelo implementado.
Registro de acceso, que registra información como la marca de tiempo y la latencia de las solicitudes a Cloud Logging.
En los extremos del servicio
v1
yv1beta1
, el registro de acceso está inhabilitado de forma predeterminada. Puedes habilitar el registro de acceso cuando implementas un modelo en un extremo.Registro de solicitud-respuesta, que registra una muestra de solicitudes y respuestas de inferencia en línea en una tabla de BigQuery.
Para habilitar el registro de solicitudes y respuestas, crea o aplica parches al extremo de inferencia.
Puedes habilitar o inhabilitar cada tipo de registro de forma independiente.
Configuración del registro de inferencias
Puedes habilitar o inhabilitar los registros de inferencia en línea cuando crees un extremo, implementes un modelo en él o mutes un modelo implementado.
Para actualizar la configuración de los registros de acceso, debes anular la implementación de tu modelo y, luego, volver a implementar el modelo con tu nueva configuración. Puedes actualizar la configuración para los registros de contenedores sin volver a implementar tu modelo.
La inferencia en línea a una tasa alta de consultas por segundo (QPS) puede generar una cantidad considerable de registros, que están sujetos a los precios de Cloud Logging. Si quieres calcular los precios de tus registros de inferencia en línea, consulta Calcula tus facturas para el registro. Para reducir este costo, puedes inhabilitar el registro de inferencia.
Inhabilita y habilita los registros de inferencia
En los siguientes ejemplos, se destaca dónde modificar la configuración de registro predeterminada:
Console
Cuando implementas un modelo en un extremo o creas un extremo nuevo en la consola deGoogle Cloud , puedes especificar qué tipos de registros de inferencia habilitar en el paso de Logging. Selecciona las casillas de verificación para habilitar Registro de acceso o Registro de contenedores, o desmarca las casillas de verificación a fin de inhabilitar estos registros.
Usa la API de REST para actualizar la configuración de los registros de contenedores.
Usa la API de REST para habilitar el registro de solicitudes y respuestas. La consola deGoogle Cloud y la CLI de gcloud no admiten la configuración de registro de solicitudes y respuestas.
Para ver más contexto sobre cómo implementar modelos, consulta Implementa un modelo con la consola de Google Cloud .
gcloud
A fin de cambiar el comportamiento predeterminado para el que se habilitan los registros en los modelos implementados, agrega marcas al comando gcloud
:
Extremo 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
Extremo 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 de REST para actualizar la configuración de los registros de contenedores.
Usa la API de REST para habilitar el registro de solicitudes y respuestas. La consola deGoogle Cloud y la CLI de gcloud no admiten la configuración de registro de solicitudes y respuestas.
Para ver más contexto sobre cómo implementar modelos, consulta Implementa un modelo con la API de Vertex AI.
REST
Para cambiar el comportamiento predeterminado de los registros que se habilitan en los modelos implementados, configura los campos relevantes como True
:
Extremo de servicio v1
Para inhabilitar el registro de contenedores, establece el campo disableContainerLogging
en True
cuando llames a projects.locations.endpoints.deployModel
o projects.locations.endpoints.mutateDeployedModel
.
Para habilitar el registro de acceso, configura enableAccessLogging
en True
cuando implementes tu modelo con projects.locations.endpoints.deployModel
.
Extremo de servicio v1beta1
Para habilitar el registro de contenedores, establece el campo enableContainerLogging
en True
cuando llames a projects.locations.endpoints.deployModel
o projects.locations.endpoints.mutateDeployedModel
.
Para habilitar el registro de acceso, configura enableAccessLogging
en True
cuando implementes tu modelo con projects.locations.endpoints.deployModel
.
Para ver más contexto sobre cómo implementar modelos, consulta Implementa un modelo con la API de Vertex AI.
Registro de solicitud-respuesta
Solo puedes habilitar el registro de solicitudes y respuestas cuando creas un extremo con projects.locations.endpoints.create
o aplicas un parche a un extremo existente con projects.locations.endpoints.patch
.
El registro de solicitudes y respuestas se realiza a nivel de extremo, por lo que se registran las solicitudes enviadas a cualquier modelo implementado en el mismo extremo.
Cuando crees o parches un extremo, propaga el campo predictRequestResponseLoggingConfig
del recurso de extremo con las siguientes entradas:
enabled
: Se establece enTrue
para habilitar el registro de solicitudes y respuestas.samplingPercentage
: un número entre 0 o 1 que defina la fracción de solicitudes para registrar. Por ejemplo, establece este valor en1
para registrar todas las solicitudes o en0.1
a fin de registrar el 10% de las solicitudes.BigQueryDestination
: Es la tabla de BigQuery que se usará para el registro. Si solo especificas un nombre de proyecto, se crea un conjunto de datos nuevo con el nombrelogging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID
, en el queENDPOINT_DISPLAY_NAME
sigue las reglas de nombres de BigQuery. Si no especificas un nombre de tabla, se crea una tabla nueva con el nombrerequest_response_logging
.El esquema para la tabla de BigQuery debería verse de la siguiente manera:
Nombre del campo Tipo Mode endpoint
STRING NULLABLE deployed_model_id
STRING NULLABLE logging_time
TIMESTAMP NULLABLE request_id
NUMERIC NULLABLE request_payload
STRING REPEATED response_payload
STRING REPEATED
A continuación, se muestra una configuración de ejemplo:
{ "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 extremos dedicados y extremos de Private Service Connect
En el caso de los extremos dedicados y los extremos de Private Service Connect, puedes usar el registro de solicitudes y respuestas para registrar las cargas útiles de solicitudes y respuestas de menos de 10 MB (las cargas útiles más grandes se omiten automáticamente) para los modelos de TensorFlow, PyTorch, scikit-learn 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, completa el campo predictRequestResponseLoggingConfig
del recurso Endpoint con las siguientes entradas:
enabled
: Se establece enTrue
para habilitar el registro de solicitudes y respuestas.samplingRate
: Es la fracción de solicitudes y respuestas que se registrarán. Se debe establecer en un número mayor que 0 y menor o igual que 1. Por ejemplo, establece este valor en1
para registrar todas las solicitudes o en0.1
para registrar el 10% de las solicitudes.BigQueryDestination
: Es la ubicación de BigQuery para el contenido de salida, como un URI a un proyecto o una tabla.
A continuación, se muestra un ejemplo de configuración para crear un extremo 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" \
} \
} \
}'
Reemplaza lo siguiente:
- LOCATION_ID: la región en la que usas Vertex AI.
- PROJECT_NUMBER: Es el número de tu proyecto Google Cloud.
- ENDPOINT_NAME: el nombre visible para el extremo.
- PROJECT_ID: Es el ID del proyecto de Google Cloud .
A continuación, se muestra un ejemplo de configuración para crear un extremo 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" \
} \
} \
}'
Reemplaza lo siguiente:
ALLOWED_PROJECTS
: Es una lista separada por comas de los IDs de los proyectos Google Cloud, cada uno entre comillas. Por ejemplo,["PROJECTID1", "PROJECTID2"]
. Si un proyecto no está contenido en esta lista, no podrás enviar solicitudes de inferencia al extremo de Vertex AI desde él. Asegúrate de incluir VERTEX_AI_PROJECT_ID en esta lista para que puedas llamar al extremo 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 extremo tiene habilitado Model Monitoring, no puedes habilitar el registro de solicitudes y respuestas para el mismo extremo.
Si habilitas el registro de solicitudes y respuestas y, luego, Model Monitoring en el mismo extremo, no podrás cambiar la configuración del registro de solicitudes y respuestas.
¿Qué sigue?
- Estima precios para el registro de inferencia en línea.
- Implementa un modelo con la consola de Google Cloud o con la API de Vertex AI.
- Aprende a crear una tabla de BigQuery.