Exécuter des tâches de surveillance

Lorsque vous exécutez une tâche, Model Monitoring v2 consomme les données de vos ensembles de données cible et de référence, calcule des métriques et génère potentiellement des alertes. Model Monitoring v2 propose des tâches à la demande pour une surveillance ad hoc, ou des tâches planifiées pour une surveillance continue. Quelle que soit l'option choisie, chaque tâche correspond à une exécution par lots unique.

Pour en savoir plus sur les objectifs de surveillance et les modèles compatibles, consultez les pages Présentation de Model Monitoring v2 et Configurer la surveillance des modèles.

Exécuter une tâche à la demande

Exécuter un job de surveillance ponctuel Définissez les ensembles de données cibles et de référence, ainsi que les spécifications de surveillance pour les objectifs à surveiller. Le cas échéant, votre configuration remplace les valeurs par défaut définies par la surveillance de modèle.

Console

  1. Dans Google Cloud Console, accédez à la page Monitoring.

    Accéder à Monitoring

  2. Cliquez sur la surveillance de modèle pour laquelle vous souhaitez exécuter une tâche de surveillance.

  3. Sur la page d'informations de la surveillance du modèle, cliquez sur Exécuter maintenant pour configurer la tâche de surveillance.

  4. Configurez votre tâche ou utilisez les valeurs par défaut définies dans la surveillance de modèle.

  5. Cliquez sur Exécuter.

SDK Python

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_condition=0.0003,
  feature_alert_conditions={"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
)

Planifier des exécutions continues

Vous pouvez définir une ou plusieurs exécutions de programmation pour une surveillance de modèle. Pour utiliser la surveillance continue avec des spécifications temporelles, votre ensemble de données doit comporter une colonne d'horodatage afin que Model Monitoring v2 puisse récupérer les données de la période spécifiée.

Console

  1. Dans Google Cloud Console, accédez à la page Monitoring.

    Accéder à Monitoring

  2. Cliquez sur la surveillance du modèle pour laquelle vous souhaitez configurer la surveillance continue.

  3. Cliquez sur Planifier une exécution récurrente.

  4. Définissez vos ensembles de données cibles et de référence, puis cliquez sur Continuer.

  5. Définissez les objectifs à surveiller, leurs seuils et les paramètres de notification lorsqu'une alerte est générée.

  6. Cliquez sur Continuer.

  7. Configurez un calendrier pour les tâches récurrentes :

    1. Spécifiez un nom pour le programmeur.
    2. Dans le champ Start time (Heure de début), indiquez à quel moment la première tâche commence.
    3. Pour le paramètre Fréquence, utilisez une expression Cron pour définir la fréquence, puis définissez le fuseau horaire.
    4. Pour Fin, indiquez quand le planificateur se termine.
  8. Cliquez sur Créer.

SDK Python

Pour définir la fréquence des tâches de surveillance, utilisez une expression 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(
      feature_drift_spec=FEATURE_DRIFT_SPEC
  ),
  output_spec=OUTPUT_SPEC,
  notification_spec=NOTIFICATION_SPEC,
)

Suspendre ou reprendre une programmation

Vous pouvez suspendre et reprendre une programmation pour ignorer ou interrompre temporairement les exécutions de tâches de surveillance.

Console

  1. Dans Google Cloud Console, accédez à la page Monitoring.

    Accéder à Monitoring

  2. Cliquez sur la surveillance de modèle contenant la programmation à modifier.

  3. Sur la page d'informations, accédez à l'onglet Planifications.

  4. Cliquez sur la programmation à modifier.

  5. Cliquez sur Suspendre ou Reprendre pour suspendre ou reprendre la programmation.

SDK Python

# Pause schedule
my_model_monitor.pause_schedule(my_monitoring_schedule.name)

# Resume schedule
my_model_monitor.resume_schedule(my_monitoring_schedule.name)

Supprimer une programmation

Supprimez une planification si vous ne l'utilisez pas. Vos données existantes sont conservées, ainsi que les tâches créées précédemment.

Console

  1. Dans Google Cloud Console, accédez à la page Monitoring.

    Accéder à Monitoring

  2. Cliquez sur la surveillance de modèle contenant la programmation à modifier.

  3. Sur la page d'informations, accédez à l'onglet Planifications.

  4. Cliquez sur la programmation à modifier.

  5. Cliquez sur Supprimer, puis à nouveau sur Supprimer pour confirmer l'opération.

SDK Python

my_model_monitor.delete_schedule(my_monitoring_schedule.name)

Analyser les résultats des tâches de surveillance

Vous pouvez utiliser la console Google Cloud pour visualiser les distributions de données pour chaque objectif de surveillance et découvrir quelles modifications ont entraîné une dérive au fil du temps.

Les visualisations montrent un histogramme comparant la distribution des données entre les données cibles et de référence. En fonction de votre niveau de tolérance, vous pouvez, par exemple, décider d'ajuster votre pipeline de génération de caractéristiques ou de réentraîner le modèle.

Afficher les informations sur le job

Affichez les détails de l'exécution d'un job de surveillance, tels qu'une liste des caractéristiques surveillées et des caractéristiques qui ont généré une alerte.

Console

  1. Dans Google Cloud Console, accédez à la page Monitoring.

    Accéder à Monitoring

  2. Cliquez sur la surveillance de modèle contenant la tâche à analyser.

  3. Sur la page Monitor details (Détails de la surveillance), cliquez sur l'onglet Runs (Exécutions).

  4. Dans la liste des exécutions, cliquez sur une exécution pour en afficher les détails, tels que toutes les caractéristiques incluses dans une exécution.

    L'exemple suivant montre une comparaison de distribution pour la caractéristique pays des tâches de prédiction par lot. La console Google Cloud fournit également des informations sur la comparaison en fonction de la métrique, telles que le nombre de valeurs uniques, la valeur moyenne et l'écart type.

    Histogrammes illustrant un exemple de distribution de caractéristiques pour un ensemble de données cible et un ensemble de données de référence.

View feature details

Afficher des informations sur une fonctionnalité et la liste des tâches de surveillance qui l'incluent.

Console

  1. Dans Google Cloud Console, accédez à la page Monitoring.

    Accéder à Monitoring

  2. Cliquez sur la surveillance du modèle qui contient les tâches à analyser.

  3. Dans l'onglet Aperçu, vous pouvez consulter un récapitulatif qui inclut les tendances de dérive pour tous les objectifs surveillés si vous avez configuré la surveillance continue. Vous pouvez également explorer plus en détail des objectifs particuliers pour obtenir des détails tels que les noms des caractéristiques surveillées et une liste des exécutions de surveillance.

    L'exemple suivant montre une comparaison de distribution pour la caractéristique country. Après l'histogramme, vous pouvez voir quelles exécutions ont généré une alerte ou sélectionner un autre job de surveillance incluant des données de surveillance pour cette fonctionnalité.

    Histogrammes illustrant un exemple de distribution des données d'entrée pour un ensemble de données cible et un ensemble de données de référence.