Supervisar el desvío y la desviación de la atribución de atributos

Vertex AI Model Monitoring admite la atribución de atributos (puntuaciones de importancia de los atributos) y detecta el sesgo y el desvío de los atributos de entrada categóricos y numéricos según Vertex Explainable AI.

En esta página, se describen los siguientes atributos de Model Monitoring:

  • Detección de desvío o sesgo de la atribución de atributos para modelos implementados en extremos de predicción en línea de Vertex AI
  • Alertas para cambios en atribuciones de atributos
  • Visualización y análisis del desvío o sesgo de la atribución de atributos

Introducción a la supervisión basada en atribuciones de atributos

Las atribuciones de atributos explican la predicción de un modelo en una entrada determinada mediante la atribución de la predicción a los atributos de la entrada individual. Las puntuaciones de atribución son proporcionales a la contribución del atributo a la predicción de un modelo. Por lo general, se firman, lo que indica si un atributo ayuda a aumentar o reducir la predicción. Las atribuciones en todos los atributos deben sumar la puntuación de predicción del modelo.

La supervisión de atribuciones de atributos implica realizar un seguimiento de las atribuciones de atributos asociadas con las predicciones de un modelo en la producción a lo largo del tiempo. La idea clave es realizar un seguimiento de los cambios en la contribución de un atributo a las predicciones, en lugar de los valores del atributo en sí. Un cambio en la puntuación de atribución de un atributo clave suele ser un indicador importante de que el atributo cambió de una manera que puede afectar la exactitud de las predicciones del modelo.

La supervisión de las atribuciones de controles tiene varios beneficios, incluida la capacidad de realizar las siguientes acciones:

  • Realiza un seguimiento de los atributos más importantes. Un gran cambio en la atribución de un atributo significa que la contribución de este a la predicción cambió. Debido a que la predicción es igual a la suma de las contribuciones de atributos, un gran desvío de atribución (de los atributos más importantes) por lo general indica un gran desvío en las predicciones del modelo.
  • Supervisa todas las representaciones de atributos Las atribuciones de atributos siempre son numéricas, sin importar el tipo de atributo subyacente. Además, debido a su naturaleza aditiva, las atribuciones a un atributo multidimensional (por ejemplo, las incorporaciones) se pueden reducir a un solo valor numérico mediante la suma de las atribuciones entre dimensiones. Esto permite el uso de métodos de detección de desvíos estándar de una variable para todos los tipos de atributos.
  • Ten en cuenta las interacciones de los atributos. La atribución a un atributo explica la contribución del atributo a la predicción, tanto de forma individual como por sus interacciones con otros atributos. Si las interacciones de un atributo con otros atributos cambian, la distribución de las atribuciones a un atributo cambia, incluso si la distribución marginal del atributo permanece igual.
  • Supervisa grupos de atributos. Debido a que las atribuciones son aditivas, podemos agregar atribuciones a atributos relacionados para obtener la atribución de un grupo de atributos. Por ejemplo, en un modelo de préstamos de crédito, podemos combinar la atribución a todos los atributos relacionados con el tipo de préstamo (por ejemplo, “grado”, “subgrado”, “propósito”) para obtener una sola atribución de préstamo. Se puede hacer un seguimiento de esta atribución a nivel de grupo para supervisar los cambios en el grupo de atributos.

Habilita el sesgo de atribución de atributos o la detección de desvío

Si deseas habilitar la supervisión de desvíos de la atribución de atributos para tu modelo, haz lo siguiente:

  1. Para habilitar Vertex Explainable AI en tu modelo, configura las explicaciones. Específicamente, el modelo debe implementarse con ExplanationParameters.

  2. Después de configurar el modelo para las explicaciones, habilita la supervisión de la puntuación de atribución mediante los siguientes pasos:

    • Configura el campo enableFeatureAttributes como verdadero en ExplanationConfig.
    • Opcional. Para especificar un explanationBaseline, proporciona una de las siguientes opciones:

  3. Establece el tipo de supervisión en sesgo o desvío.

    A fin de habilitar la detección de sesgo de la atribución de atributos en un modelo, debes proporcionar el TrainingDataset que se usó para entrenar el modelo o el explanationBaseline en ExplanationConfig.

    Para habilitar la detección de desvíos, los datos de entrenamiento o un modelo de referencia de explicación no son obligatorios.

  4. Especifica una dirección de correo electrónico de usuario para recibir notificaciones. Este es un parámetro obligatorio.

  5. Configura la tasa de muestreo de la solicitud de predicción.

    Para la rentabilidad, por lo general, es suficiente supervisar un subconjunto de las entradas de producción de un modelo. Este parámetro controla la fracción de las solicitudes de predicción entrantes que se registran y analizan con fines de supervisión.

    Este es un parámetro opcional. Si el usuario no configura este parámetro, el servicio de registros del modelo de Monitoring registra todas las solicitudes de predicción.

  6. Establece la frecuencia de la supervisión.

    La frecuencia de supervisión determina la frecuencia con la que las entradas de un modelo implementado se supervisan para detectar sesgos o desvíos. Con la frecuencia especificada, se ejecuta un trabajo de supervisión y se realiza la supervisión en las entradas registradas recientemente. Cada trabajo de supervisión supervisa las entradas registradas entre las marcas de tiempo (hora límite, ventana de supervisión, tiempo límite). La frecuencia de supervisión determina el período, o el tamaño del período de supervisión, de los datos registrados que se analizan en cada ejecución de supervisión. En Google Cloud Console, puedes ver la hora en que se ejecuta cada trabajo de supervisión y visualizar los datos analizados en cada trabajo.

    El nivel de detalle mínimo es 1 hora. Si usas el SDK de Cloud para configurar un trabajo de supervisión de modelos, el valor predeterminado se establece en 24 horas.

  7. Especifica una lista de los atributos que se deben supervisar, junto con sus umbrales de alerta.

    Puedes especificar qué atributos de entrada supervisar, junto con el umbral de alertas para cada atributo. El umbral de alerta determina cuándo generar una alerta. Estos límites indican la métrica de distancia estadística calculada entre la distribución de los atributos de entrada y su modelo de referencia correspondiente. Puedes configurar un valor de umbral independiente para cada atributo supervisado.

    Si no se proporciona esta lista, de forma predeterminada, se supervisa cada atributo categórico y numérico, con los siguientes valores de umbral predeterminados:

    • Atributo categórico: 0.3
    • Atributo numérico: 0.3

Parámetros de configuración en el alcance del extremo

Un extremo de predicción en línea puede alojar varios modelos. Cuando habilitas la detección de sesgo o desvío en un extremo, se comparten los siguientes parámetros de configuración en todos los modelos alojados en ese extremo:

  • Tipo de detección
  • Frecuencia de supervisión
  • Fracción de las solicitudes de entrada supervisadas

Para los otros parámetros de configuración, se pueden establecer valores diferentes para cada modelo.

Puedes ver los parámetros de configuración en Google Cloud Console.

Crea un trabajo de supervisión de modelos

Para configurar la detección de sesgo o desvío, puedes crear un trabajo de supervisión de la implementación del modelo con el SDK de Cloud.

Detección de sesgos

Si el conjunto de datos de entrenamiento está disponible, puedes crear un trabajo de supervisión de modelos con detección de sesgo para todos los modelos implementados en el extremo.ENDPOINT_ID mediante la ejecucióngcloud ai model-monitoring-jobs create:

gcloud ai model-monitoring-jobs create \
    --project=PROJECT_ID \
    --region=REGION \
    --display-name=MONITORING_JOB_NAME \
    --emails=EMAIL_ADDRESS_1,EMAIL_ADDRESS_2 \
    --endpoint=ENDPOINT_ID \
    --feature-thresholds=FEATURE_1=THRESHOLD_1,FEATURE_2=THRESHOLD_2 \
    --feature-attribution-thresholds=FEATURE_1=THRESHOLD_1,FEATURE_2=THRESHOLD_2 \
    --prediction-sampling-rate=SAMPLING_RATE \
    --monitoring-frequency=MONITORING_FREQUENCY \
    --target-field=TARGET_FIELD \
    --bigquery-uri=BIGQUERY_URI

En el comando anterior, se toma el conjunto de datos de entrenamiento de BigQuery, que se encuentra en el siguiente formato:

"bq://\.\.\"

También puedes especificar el conjunto de datos de entrenamiento desde Cloud Storage en formato CSV o TFRecord.

Para usar CSV, reemplaza la marca bigquery-uri por --data-format=csv --gcs-uris=gs://some_bucket/some_file.

Para usar TFRecord, reemplaza la marca bigquery-uri por --data-format=tf-record --gcs-uris=gs://some_bucket/some_file.

También puedes usar un conjunto de datos administrado para AutoML tabular si reemplazas la marca bigquery-uri por --dataset=dataset-id.

Detección de desvíos

Si el conjunto de datos de entrenamiento no está disponible, puedes crear un trabajo de supervisión de modelos con detección de desvíos para todos los modelos implementados en el extremo.ENDPOINT_ID mediante la ejecución de gcloud ai model-monitoring-jobs create:

gcloud ai model-monitoring-jobs create \
    --project=PROJECT_ID \
    --region=REGION \
    --display-name=MONITORING_JOB_NAME \
    --emails=EMAIL_ADDRESS_1,EMAIL_ADDRESS_2 \
    --endpoint=ENDPOINT_ID \
    --feature-thresholds=FEATURE_1=THRESHOLD_1,FEATURE_2=THRESHOLD_2 \
    --feature-attribution-thresholds=FEATURE_1=THRESHOLD_1,FEATURE_2=THRESHOLD_2 \
    --prediction-sampling-rate=SAMPLING_RATE \
    --monitoring-frequency=MONITORING_FREQUENCY

Comandos del SDK de supervisión de modelos

Puedes actualizar, pausar y borrar un trabajo de supervisión de modelos mediante el SDK de Cloud.

Por ejemplo, para actualizar la frecuencia de supervisión del trabajo de Model Monitoring 123 en el proyecto example en la región us-central1, haz lo siguiente:

gcloud ai model-monitoring-jobs update 123 \
    --monitoring-frequency=1 --project=example --region=us-central1

Para pausar el trabajo, sigue estos pasos:

gcloud ai model-monitoring-jobs pause 123 --project=example \
    --region=us-central1

Para reanudar el trabajo, ejecuta lo siguiente:

gcloud ai model-monitoring-jobs resume 123 --project=example \
    --region=us-central1

Para borrar el trabajo, ejecuta este comando:

gcloud ai model-monitoring-jobs pause 123 --project=example \
    --region=us-central1

Para obtener más información, consulta model-monitoring-jobs en el SDK de Cloud.

API de trabajos de supervisión de modelos

Para obtener más información sobre la detección de sesgos o desvíos, consulta los documentos de la API de Model Monitoring.

Alertas por correo electrónico

Para los siguientes eventos, Model Monitoring envía una alerta por correo electrónico a cada dirección de correo electrónico especificada cuando se creó el trabajo de supervisión del modelo:

  • Cada vez que se supera un umbral de alertas
  • Cada vez que se configura la detección de desvío o desvío
  • Cada vez que se actualiza una configuración de trabajo de supervisión de un modelo existente

Las alertas por correo electrónico contienen la siguiente información pertinente:

  • La hora en la que se ejecutó el trabajo de supervisión
  • El nombre del atributo que tiene sesgo o desvío
  • El umbral de alertas y la distancia de la puntuación de la atribución

Analiza datos de sesgo y desvío

Puedes usar Cloud Console para visualizar las atribuciones de atributos de cada función supervisada y descubrir qué cambios generaron un sesgo o un desvío. Puedes ver las distribuciones de valores de atributos como una serie temporal o un histograma.

Cuadro de evaluación que muestra un ejemplo de atribución de atributos de datos de predicción y de atribución de atributos de datos de entrenamiento para la detección de sesgos.

En un sistema de aprendizaje automático estable, la importancia relativa de los atributos suele permanecer relativamente estable en el tiempo. Si un atributo importante pierde importancia, podría ser señal de que algo cambió en ese atributo. Las causas comunes de la desviación o el sesgo de la importancia de los atributos incluyen las siguientes:

  • Cambios en la fuente de datos
  • Cambios en los registros y el esquema de datos
  • Cambios en la combinación o el comportamiento del usuario final (por ejemplo, debido a cambios estacionales o eventos de valores atípicos)
  • Cambios ascendentes en los atributos generados por otro modelo de aprendizaje automático. Por ejemplo:
    • Actualizaciones del modelo que causan un aumento o una disminución de la cobertura (en general o de un valor de clasificación individual)
    • Un cambio en el rendimiento del modelo (que cambia el significado del atributo)
    • Actualizaciones a la canalización de datos, que pueden causar una disminución de la cobertura general

¿Qué sigue?