Ejecuta trabajos de supervisión

Cuando ejecutas un trabajo, Model Monitoring v2 consume datos de tus conjuntos de datos de destino y de referencia, calcula métricas y, posiblemente, genera alertas. Model Monitoring v2 ofrece trabajos a pedido para la supervisión ad hoc o trabajos programados para la supervisión continua. Independientemente de la opción que elijas, cada trabajo es una sola ejecución por lotes.

Para obtener más información sobre los objetivos de supervisión y los modelos compatibles, consulta Descripción general de Model Monitoring v2 y Configura Model Monitoring.

Ejecuta un trabajo a pedido

Ejecuta un trabajo de supervisión único. Establece los conjuntos de datos de referencia y de destino, así como las especificaciones de supervisión para los objetivos que se supervisarán. Tu configuración anula cualquier valor predeterminado, si se establece, que defina el monitor del modelo.

Console

  1. En la consola de Google Cloud , ve a la página Monitoring.

    Ir a Monitoring

  2. Haz clic en el monitor de modelos para el que deseas ejecutar un trabajo de supervisión.

  3. En la página de detalles del supervisor de modelos, haz clic en Ejecutar ahora para configurar el trabajo de supervisión.

  4. Configura tu trabajo o usa los valores predeterminados definidos en el monitor del modelo.

  5. Haz clic en Ejecutar.

Python SDK

from vertexai.resources.preview import ml_monitoring

FEATURE_THRESHOLDS = {
  "culmen_length_mm": 0.001,
  "body_mass_g": 0.002,
}

FEATURE_DRIFT_SPEC=ml_monitoring.spec.DataDriftSpec(
  categorical_metric_type="l_infinity",
  numeric_metric_type="jensen_shannon_divergence",
  default_categorical_alert_threshold=0.001,
  default_numeric_alert_threshold=0.002,
  feature_alert_thresholds=FEATURE_THRESHOLDS,
)

PREDICTION_OUTPUT_DRIFT_SPEC=ml_monitoring.spec.DataDriftSpec(
  categorical_metric_type="l_infinity",
  numeric_metric_type="jensen_shannon_divergence",
  default_categorical_alert_threshold=0.001,
  default_numeric_alert_threshold=0.001,
)

FEATURE_ATTRIBUTION_SPEC=ml_monitoring.spec.FeatureAttributionSpec(
  default_alert_threshold=0.0003,
  feature_alert_thresholds={"cnt_ad_reward":0.0001},
)

EXPLANATION_SPEC=ExplanationSpec(
  parameters=ExplanationParameters(
      {"sampled_shapley_attribution": {"path_count": 2}}
  ),
  metadata=ExplanationMetadata(
      inputs={
          "cnt_ad_reward": ExplanationMetadata.InputMetadata({
              "input_tensor_name": "cnt_ad_reward",
              "encoding": "IDENTITY",
              "modality": "numeric"
          }),
          ...
      },
      ...
  )
)

TRAINING_DATASET=ml_monitoring.spec.MonitoringInput(
  gcs_uri=TRAINING_URI,
  data_format="csv"
)

TARGET_DATASET=ml_monitoring.spec.MonitoringInput(
  table_uri=BIGQUERY_URI
)

model_monitoring_job=my_model_monitor.run(
  display_name=JOB_DISPLAY_NAME,
  baseline_dataset=TRAINING_DATASET,
  target_dataset=TARGET_DATASET,
  tabular_objective_spec=ml_monitoring.spec.TabularObjective(
      # Optional: set to monitor input feature drift.
      feature_drift_spec=FEATURE_DRIFT_SPEC,

      # Optional: set to monitor prediction output drift.
      prediction_output_drift_spec=PREDICTION_OUTPUT_DRIFT_SPEC,

      # Optional: set to monitor feature attribution drift.
      feature_attribution_spec=FEATURE_ATTRIBUTION_SPEC
  ),

  # Optional: additional configurations to override default values.
  explanation_config=EXPLANATION_SPEC,
  notification_spec=NOTIFICATION_SPEC,
  output_spec=OUTPUT_SPEC
)

Programa ejecuciones continuas

Puedes establecer una o más ejecuciones programadas para un monitor de modelos. Para usar la supervisión continua con especificaciones de tiempo, tu conjunto de datos debe tener una columna de marca de tiempo para que Model Monitoring v2 pueda recuperar los datos del período especificado.

Console

  1. En la consola de Google Cloud , ve a la página Monitoring.

    Ir a Monitoring

  2. Haz clic en el supervisor de modelos para el que deseas configurar la supervisión continua.

  3. Haz clic en Programar una ejecución recurrente.

  4. Establece tus conjuntos de datos de destino y de referencia, y, luego, haz clic en Continuar.

  5. Establece los objetivos que se supervisarán, sus umbrales y la configuración de notificaciones cuando se genere una alerta.

  6. Haz clic en Continuar.

  7. Configura un programa para los trabajos recurrentes:

    1. Especifica un nombre para el programador.
    2. En Hora de inicio, especifica cuándo comenzará el primer trabajo.
    3. Para Frecuencia, usa una expresión cron para establecer la frecuencia y, luego, configura la zona horaria.
    4. En Finaliza, especifica cuándo finaliza el programador.
  8. Haz clic en Crear.

Python SDK

Para establecer la frecuencia de los trabajos de supervisión, usa una expresión cron.

my_model_monitoring_schedule=my_model_monitor.create_schedule(
  display_name=SCHEDULE_DISPLAY_NAME,
  # Every day at 0:00(midnight)
  cron='"0 * * * *"',
  baseline_dataset=ml_monitoring.spec.MonitoringInput(
      endpoints=[ENDPOINT_RESOURCE_NAME],
      offset="24h",
      window="24h",
  ),
  target_dataset=ml_monitoring.spec.MonitoringInput(
      endpoints=[ENDPOINT_RESOURCE_NAME],
      window="24h"
  ),
  tabular_objective_spec=ml_monitoring.spec.TabularObjective(
      # Optional: set to monitor input feature drift.
      feature_drift_spec=FEATURE_DRIFT_SPEC,

      # Optional: set to monitor prediction output drift.
      prediction_output_drift_spec=PREDICTION_OUTPUT_DRIFT_SPEC,

      # Optional: set to monitor feature attribution drift.
      feature_attribution_spec=FEATURE_ATTRIBUTION_SPEC
  ),

  # Optional: additional configurations to override default values.
  explanation_config=EXPLANATION_SPEC,
  output_spec=OUTPUT_SPEC,
  notification_spec=NOTIFICATION_SPEC,
)

Cómo pausar o reanudar un programa

Puedes pausar y reanudar un programa para omitir o detener temporalmente las ejecuciones de trabajos de supervisión.

Console

  1. En la consola de Google Cloud , ve a la página Monitoring.

    Ir a Monitoring

  2. Haz clic en el supervisor de modelos que contiene la programación que deseas modificar.

  3. En la página de detalles, ve a la pestaña Programaciones.

  4. Haz clic en la programación que deseas modificar.

  5. Haz clic en Pausar o Reanudar para pausar o reanudar el programa.

Python SDK

# Pause schedule
my_model_monitor.pause_schedule(my_monitoring_schedule.name)

# Resume schedule
my_model_monitor.resume_schedule(my_monitoring_schedule.name)

Borra un programa

Borra una programación si no la usas. Tus datos existentes y los trabajos creados anteriormente también se conservarán.

Console

  1. En la consola de Google Cloud , ve a la página Monitoring.

    Ir a Monitoring

  2. Haz clic en el supervisor de modelos que contiene la programación que deseas modificar.

  3. En la página de detalles, ve a la pestaña Programaciones.

  4. Haz clic en la programación que deseas modificar.

  5. Haz clic en Borrar y, luego, en Borrar de nuevo para confirmar.

Python SDK

my_model_monitor.delete_schedule(my_monitoring_schedule.name)

Analiza los resultados del trabajo de supervisión

Puedes usar la Google Cloud consola para visualizar las distribuciones de datos de cada objetivo de supervisión y conocer qué cambios generaron un desvío con el tiempo.

Las visualizaciones muestran un histograma que compara la distribución de datos entre los datos de referencia y los de destino. Según tu nivel de tolerancia, puedes, por ejemplo, decidir ajustar la canalización de generación de atributos o volver a entrenar el modelo.

Ver detalles del trabajo

Consulta los detalles sobre la ejecución de un trabajo de supervisión, como una lista de los atributos supervisados y los que generaron una alerta.

Console

  1. En la consola de Google Cloud , ve a la página Monitoring.

    Ir a Monitoring

  2. Haz clic en el monitor del modelo que contiene el trabajo que deseas analizar.

  3. En la página Detalles del monitor, haz clic en la pestaña Ejecuciones.

  4. En la lista de ejecuciones, haz clic en una para ver sus detalles, como todas las funciones incluidas en una ejecución.

    En el siguiente ejemplo, se muestra una comparación de la distribución para la función country de los trabajos de predicción por lotes. La consola de Google Cloud también proporciona detalles sobre la comparación según la métrica, como la cantidad de valores únicos, el valor medio y la desviación estándar.

    Histogramas que muestran un ejemplo de distribución de atributos para un conjunto de datos de destino y un conjunto de datos de referencia

Ver detalles de la función

Consulta información sobre una función y una lista de trabajos de supervisión que incluyen la función.

Console

  1. En la consola de Google Cloud , ve a la página Monitoring.

    Ir a Monitoring

  2. Haz clic en el supervisor de modelos que contiene los trabajos que deseas analizar.

  3. En la pestaña Resumen, puedes ver un resumen que incluye las tendencias en la desviación de todos los objetivos supervisados si tienes configurada la supervisión continua. También puedes profundizar en objetivos específicos para ver detalles como los nombres de las funciones supervisadas y una lista de las ejecuciones de supervisión.

    En el siguiente ejemplo, se muestra una comparación de la distribución para el atributo país. Después del histograma, puedes ver qué ejecuciones generaron una alerta o seleccionar otro trabajo de supervisión que incluya datos de supervisión para esta función.

    Histogramas que muestran un ejemplo de distribución de datos de entrada para un conjunto de datos objetivo y un conjunto de datos de referencia.