En esta página se describe cómo configurar solicitudes de trabajos de inferencia por lotes para incluir un análisis único de Monitorización de modelos. En el caso de las inferencias por lotes, la monitorización de modelos admite la detección de sesgos de características en las características de entrada categóricas y numéricas.
Para crear una tarea de inferencia por lotes con análisis de sesgo de la supervisión de modelos, debe incluir tanto los datos de entrada de inferencia por lotes como los datos de entrenamiento originales de su modelo en la solicitud. Solo puede añadir análisis de supervisión de modelos al crear tareas de inferencia por lotes.
Para obtener más información sobre el sesgo, consulta la introducción a Model Monitoring.
Para obtener instrucciones sobre cómo configurar Model Monitoring para las inferencias online (en tiempo real), consulta el artículo Usar Model Monitoring.
Requisitos previos
Para usar Model Monitoring con inferencias por lotes, haz lo siguiente:
Tener un modelo disponible en el registro de modelos de Vertex AI que sea de tipo AutoML tabular o entrenamiento personalizado tabular.
Sube tus datos de entrenamiento a Cloud Storage o BigQuery y obtén el enlace URI a los datos.
- En el caso de los modelos entrenados con AutoML, puedes usar el ID del conjunto de datos de tu conjunto de datos de entrenamiento.
Monitorización de modelos compara los datos de entrenamiento con la salida de inferencia por lotes. Asegúrate de usar formatos de archivo compatibles para los datos de entrenamiento y la salida de la inferencia por lotes:
Tipo de modelo Datos de preparación Resultados de la inferencia por lotes Entrenamiento personalizado CSV, JSONL, BigQuery y TfRecord(tf.train.Example) JSONL AutoML tabular CSV, JSONL, BigQuery y TfRecord(tf.train.Example) CSV, JSONL, BigQuery y TFRecord(Protobuf.Value) Opcional: En el caso de los modelos con entrenamiento personalizado, sube el esquema de tu modelo a Cloud Storage. Para usar la monitorización de modelos, es necesario que el esquema calcule la distribución de referencia para detectar sesgos.
Solicitar una inferencia por lotes
Puedes usar los siguientes métodos para añadir configuraciones de monitorización de modelos a las tareas de inferencia por lotes:
Consola
Sigue las instrucciones para hacer una solicitud de inferencia por lotes con la monitorización de modelos habilitada:
API REST
Sigue las instrucciones para enviar una solicitud de inferencia por lotes mediante la API REST:
Cuando crees la solicitud de inferencia por lotes, añade la siguiente configuración de monitorización de modelos al cuerpo JSON de la solicitud:
"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 } } } } ] }
donde:
EMAIL_ADDRESS es la dirección de correo a la que quieres recibir alertas de Monitorización de modelos. Por ejemplo,
example@example.com
.NOTIFICATION_CHANNELS: una lista de canales de notificación de Cloud Monitoring en los que quieres recibir alertas de Monitorización de modelos. Usa los nombres de recurso de los canales de notificaciones, que puedes obtener consultando los canales de notificaciones de tu proyecto. Por ejemplo,
"projects/my-project/notificationChannels/1355376463305411567", "projects/my-project/notificationChannels/1355376463305411568"
.TRAINING_DATASET es el enlace al conjunto de datos de entrenamiento almacenado en Cloud Storage.
- Para usar un enlace a un conjunto de datos de entrenamiento de BigQuery, sustituye el campo
gcsSource
por lo siguiente:
"bigquerySource": { { "inputUri": "TRAINING_DATASET" } }
- Para usar un enlace a un modelo de AutoML, sustituya el campo
gcsSource
por lo siguiente:
"dataset": "TRAINING_DATASET"
- Para usar un enlace a un conjunto de datos de entrenamiento de BigQuery, sustituye el campo
FEATURE_1:VALUE_1 y FEATURE_2:VALUE_2 son los umbrales de alerta de cada función que quieras monitorizar. Por ejemplo, si especifica
Age=0.4
, Monitorización de modelos registra una alerta cuando la distancia estadística entre las distribuciones de entrada y de referencia de la funciónAge
supera 0,4. De forma predeterminada, se monitorizan todas las características categóricas y numéricas con valores de umbral de 0,3.
Para obtener más información sobre las configuraciones de Model Monitoring, consulta la referencia de trabajos de monitorización.
Python
Consulta el cuaderno de ejemplo para ejecutar una tarea de inferencia por lotes con Monitorización de modelos para un modelo tabular personalizado.
Model Monitoring te envía automáticamente notificaciones y alertas sobre los trabajos por correo electrónico.
Acceder a las métricas de sesgo
Puede usar los siguientes métodos para acceder a las métricas de sesgo de los trabajos de inferencia por lotes:
Consola (histograma)
Usa la Google Cloud consola para ver los histogramas de distribución de funciones de cada función monitorizada y descubre qué cambios han provocado sesgos a lo largo del tiempo:
Ve a la página Predicciones por lotes:
En la página Predicciones por lotes, haga clic en la tarea de inferencia por lotes que quiera analizar.
Haga clic en la pestaña Alertas de monitorización de modelos para ver una lista de las características de entrada del modelo, junto con información pertinente, como el umbral de alerta de cada característica.
Para analizar una función, haga clic en su nombre. En una página se muestran los histogramas de distribución de las funciones de esa característica.
Visualizar la distribución de datos en forma de histogramas le permite centrarse rápidamente en los cambios que se han producido en los datos. Después, puedes decidir si quieres ajustar tu flujo de trabajo de generación de funciones o volver a entrenar el modelo.
Consola (archivo JSON)
Usa la Google Cloud consola para acceder a las métricas en formato JSON:
Ve a la página Predicciones por lotes:
Haz clic en el nombre del trabajo de monitorización de inferencia por lotes.
Haga clic en la pestaña Propiedades de monitorización.
Haz clic en el enlace Directorio de salida de la monitorización, que te dirigirá a un segmento de Cloud Storage.
Haz clic en la carpeta
metrics/
.Haz clic en la carpeta
skew/
.Haga clic en el archivo
feature_skew.json
, que le dirigirá a la página Detalles del objeto.Abre el archivo JSON con una de estas opciones:
Haz clic en Descargar y abre el archivo en tu editor de texto local.
Usa la ruta del URI de gsutil para ejecutar
gcloud storage cat gsutil_URI
en Cloud Shell o en tu terminal local.
El archivo feature_skew.json
incluye un diccionario en el que la clave es el nombre de la función y el valor es la asimetría de la función. Por ejemplo:
{ "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
Consulta el cuaderno de ejemplo para acceder a las métricas de sesgo de un modelo tabular personalizado después de ejecutar un trabajo de inferencia por lotes con Model Monitoring.
Depurar errores de monitorización de inferencia por lotes
Si se produce un error en tu tarea de monitorización de inferencia por lotes, puedes encontrar los registros de depuración en la Google Cloud consola:
Ve a la página Predicciones por lotes.
Haga clic en el nombre del trabajo de monitorización de inferencia por lotes fallido.
Haga clic en la pestaña Propiedades de monitorización.
Haz clic en el enlace Directorio de salida de la monitorización, que te dirigirá a un segmento de Cloud Storage.
Haz clic en la carpeta
logs/
.Haga clic en uno de los archivos
.INFO
, que le dirigirá a la página Detalles del objeto.Abre el archivo de registro con una de estas opciones:
Haz clic en Descargar y abre el archivo en tu editor de texto local.
Usa la ruta del URI de gsutil para ejecutar
gcloud storage cat gsutil_URI
en Cloud Shell o en tu terminal local.
Tutoriales de Notebook
Consulta más información sobre cómo usar Vertex AI Model Monitoring para obtener visualizaciones y estadísticas de modelos con estos tutoriales integrales.
AutoML
- Vertex AI Model Monitoring para modelos tabulares de AutoML
- Vertex AI Model Monitoring para la predicción por lotes en modelos de imagen de AutoML
- Vertex AI Model Monitoring para la predicción online en modelos de imagen de AutoML
Personalizado
- Vertex AI Model Monitoring para modelos tabulares personalizados
- Vertex AI Model Monitoring para modelos tabulares personalizados con el contenedor TensorFlow Serving
Modelos XGBoost
Atribuciones de características de Vertex Explainable AI
Inferencia por lotes
Configuración de modelos tabulares
Siguientes pasos
- Consulta cómo usar Monitorización de modelos.
- Consulte cómo calcula Model Monitoring el sesgo entre el entrenamiento y el servicio, y la desviación de la inferencia.