Vertex AI Model Monitoring para predicciones por lotes

En esta página, se describe cómo configurar las solicitudes de trabajo de predicción por lotes para incluir el análisis único de Model Monitoring. En las predicciones por lotes, Model Monitoring admite la detección de sesgo de atributos para atributos de entrada numéricos y categóricos.

Para crear un trabajo de predicción por lotes con el análisis de sesgo de Model Monitoring, debes incluir tus datos de entrada de predicción por lotes y los datos de entrenamiento originales para tu modelo en la solicitud. Solo puedes agregar el análisis de Model Monitoring cuando creas trabajos de predicción por lotes nuevos.

Para obtener más información sobre el sesgo, consulta Introducción a Model Monitoring.

Si deseas obtener instrucciones para configurar Model Monitoring para predicciones en línea (en tiempo real), consulta Usa Model Monitoring.

Requisitos previos

Para usar Model Monitoring con predicciones por lotes, completa los siguientes pasos:

  1. Tener un modelo disponible en Vertex AI Model Registry que sea de tipo AutoML tabular o de tipo entrenamiento personalizado tabular.

  2. Sube tus datos de entrenamiento a Cloud Storage o BigQuery y obtén el vínculo del URI a los datos.

    • Para los modelos entrenados con AutoML, puedes usar el ID del conjunto de datos para tu conjunto de datos de entrenamiento.
  3. Model Monitoring compara los datos de entrenamiento con el resultado de la predicción por lotes. Asegúrate de usar formatos de archivo compatibles para los datos de entrenamiento y el resultado de la predicción por lotes:

    Tipo de modelo Datos de entrenamiento Salida de la predicción por lotes
    Entrenamiento personalizado CSV, JSONL, BigQuery, TfRecord(tf.train.Example) JSONL
    Tabular de AutoML CSV, JSONL, BigQuery, TfRecord(tf.train.Example) CSV, JSONL, BigQuery, TfRecord(Protobuf.Value)
  4. Para los modelos con entrenamiento personalizado, sube el esquema de tu modelo a Cloud Storage (opcional). Model Monitoring requiere el esquema a fin de calcular la distribución de referencia para la detección de sesgos.

Solicitar una predicción por lotes

Puedes usar estos métodos para agregar configuraciones de Model Monitoring a trabajos de predicción por lotes:

Consola

Sigue las instrucciones para realizar una solicitud de predicción por lotes con Supervisión de modelos habilitado:

API de REST

Sigue las instrucciones para realizar una solicitud de predicción por lotes con la API de REST:

Cuando crees la solicitud de predicción por lotes, agrega la siguiente configuración de Supervisió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 electrónico en la que deseas recibir alertas de Model Monitoring. Por ejemplo, [email protected].

  • NOTIFICATION_CHANNELS: Una lista de canales de notificaciones de Cloud Monitoring en los que deseas recibir alertas de Model Monitoring. Usa los nombres de los recursos para los canales de notificaciones, que puedes recuperar si enumeras los canales de notificaciones en tu proyecto. Por ejemplo, "projects/my-project/notificationChannels/1355376463305411567", "projects/my-project/notificationChannels/1355376463305411568".

  • TRAINING_DATASET es el vínculo al conjunto de datos de entrenamiento almacenado en Cloud Storage.

    • Para usar un vínculo a un conjunto de datos de entrenamiento de BigQuery, reemplaza el campo gcsSource por lo siguiente:
    "bigquerySource": {
        {
          "inputUri": "TRAINING_DATASET"
        }
     }
    
    • Para usar un vínculo a un modelo de AutoML, reemplaza el campo gcsSource por lo siguiente:
    "dataset": "TRAINING_DATASET"
  • FEATURE_1:VALUE_1 y FEATURE_2:VALUE_2 es el umbral de alertas de cada función que deseas supervisar. Por ejemplo, si especificas Age=0.4, Model Monitoring registra una alerta cuando la distancia estadística entre las distribuciones de entrada y modelo de referencia para el atributo Age excede 0.4. De forma predeterminada, se supervisa cada atributo categórico y numérico, con valores de umbral de 0.3.

Para obtener más información sobre las opciones de configuración de Model Monitoring, consulta la referencia de trabajos de Monitoring.

Python

Consulta el notebook de ejemplo a fin de ejecutar un trabajo de predicción por lotes con Supervisión de modelos para un modelo tabular personalizado.

Supervisión de modelos te notifica automáticamente las actualizaciones y alertas de trabajos por correo electrónico.

Accede a métricas de sesgo

Puedes usar los siguientes métodos para acceder a las métricas de sesgo para trabajos de predicción por lotes:

Consola (Histograma)

Usa la consola de Google Cloud para ver los histogramas de distribución de atributos de cada atributo supervisado y descubrir qué cambios generaron un sesgo con el tiempo:

  1. Ve a la página Predicciones por lotes.

    Ir a Predicciones por lotes

  2. En la página Predicciones por lotes, haz clic en el trabajo de predicción por lotes que quieras analizar.

  3. Haz clic en la pestaña Alertas de Model Monitoring para ver una lista de los atributos de entrada del modelo, junto con la información pertinente, como el límite de las alertas de cada atributo.

  4. Para analizar un atributo, haz clic en su nombre. En una página, se muestran los histogramas de distribución de atributos para ese atributo.

    La visualización de la distribución de datos como histogramas te permite enfocarte con rapidez en los cambios que ocurrieron en los datos. Después, puedes decidir ajustar la canalización de generación de atributos o volver a entrenar el modelo.

    Histogramas que muestran un ejemplo de distribución de datos de entrada y distribución de datos de entrenamiento para la detección de sesgos.

Consola (archivo JSON)

Usa la consola de Google Cloud para acceder a las métricas en formato JSON:

  1. Ve a la página Predicciones por lotes.

    Ir a Predicciones por lotes

  2. Haz clic en el nombre del trabajo de supervisión de la predicción por lotes.

  3. Haz clic en la pestaña Propiedades de Monitoring.

  4. Haz clic en el vínculo Directorio de salida de Monitoring, que te dirige a un bucket de Cloud Storage.

  5. Haz clic en la carpeta metrics/.

  6. Haz clic en la carpeta skew/.

  7. Haz clic en el archivo feature_skew.json, que te dirige a la página Detalles del objeto.

  8. Abre el archivo JSON con una de las siguientes opciones:

  • Haz clic en Descargar y abre el archivo en tu editor de texto local.

  • Usa la ruta del archivo URI de gsutil para ejecutar gsutil cat GSUTIL_URI en tu Cloud Shell o tu terminal local.

El archivo feature_skew.json incluye un diccionario en el que la clave es el nombre del atributo y el valor es el sesgo del atributo. 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 notebook de ejemplo para acceder a las métricas de sesgo de un modelo tabular personalizado después de ejecutar un trabajo de predicción por lotes con Model Monitoring.

Depura fallas de supervisión de la predicción por lotes

Si tu trabajo de supervisión de predicción por lotes falla, puedes encontrar registros de depuración en la consola de Google Cloud:

  1. Ve a la página Predicciones por lotes

    Ir a Predicciones por lotes

  2. Haz clic en el nombre del trabajo de supervisión de la predicción por lotes con errores.

  3. Haz clic en la pestaña Propiedades de Monitoring.

  4. Haz clic en el vínculo Directorio de salida de Monitoring, que te dirige a un bucket de Cloud Storage.

  5. Haz clic en la carpeta logs/.

  6. Haz clic en cualquiera de los archivos .INFO, que te llevará a la página Detalles del objeto.

  7. Abre el archivo de registros con cualquiera de las opciones:

    • Haz clic en Descargar y abre el archivo en tu editor de texto local.

    • Usa la ruta del archivo URI de gsutil para ejecutar gsutil cat GSUTIL_URI en tu Cloud Shell o tu terminal local.

Instructivos para uso de notebooks

Obtén más información sobre cómo usar Vertex AI Model Monitoring para obtener visualizaciones y estadísticas de los modelos con estos instructivos de extremo a extremo.

AutoML

Personalizado

Modelos de XGBoost

Atribuciones de atributos de Explainable AI

Predicción por lotes

Configuración para modelos tabulares

¿Qué sigue?