Esegui job di monitoraggio

Quando esegui un job, Model Monitoring v2 utilizza i dati dei set di dati di destinazione e di base, calcola le metriche e potenzialmente genera avvisi. Model Monitoring v2 offre job on demand per il monitoraggio ad hoc o job pianificati per il monitoraggio continuo. Indipendentemente dall'opzione scelta, ogni job è una singola esecuzione batch.

Per ulteriori informazioni sugli obiettivi di monitoraggio e sui modelli supportati, consulta Panoramica di Model Monitoring v2 e Configurare Model Monitoring.

Esegui un job on demand

Esegui un job di monitoraggio una tantum. Imposta i set di dati target e di base, nonché le specifiche di monitoraggio per gli obiettivi da monitorare. La tua configurazione esegue l'override di eventuali valori predefiniti, se impostati, definiti dal monitoraggio del modello.

Console

  1. Nella console Google Cloud , vai alla pagina Monitoring.

    Vai a Monitoring

  2. Fai clic sul monitor del modello per il quale vuoi eseguire un job di monitoraggio.

  3. Nella pagina dei dettagli del monitoraggio del modello, fai clic su Esegui ora per configurare il job di monitoraggio.

  4. Configura il job o utilizza i valori predefiniti definiti nel monitoraggio del modello.

  5. Fai clic su Esegui.

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_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
)

Pianificare esecuzioni continue

Puoi impostare una o più esecuzioni della pianificazione per un monitor del modello. Per utilizzare il monitoraggio continuo con le specifiche temporali, il set di dati deve avere una colonna timestamp in modo che Model Monitoring v2 possa recuperare i dati dall'intervallo di tempo specificato.

Console

  1. Nella console Google Cloud , vai alla pagina Monitoring.

    Vai a Monitoring

  2. Fai clic sul monitoraggio del modello per cui vuoi configurare il monitoraggio continuo.

  3. Fai clic su Pianifica un'esecuzione ricorrente.

  4. Imposta i set di dati target e di base e poi fai clic su Continua.

  5. Imposta gli obiettivi da monitorare, le relative soglie e le impostazioni di notifica quando viene generato un avviso.

  6. Fai clic su Continua.

  7. Configura una pianificazione per i job ricorrenti:

    1. Specifica un nome per lo scheduler.
    2. Per Ora di inizio, specifica quando inizierà il primo job.
    3. Per Frequenza, utilizza un'espressione cron per impostare la frequenza, quindi imposta il fuso orario.
    4. Per Termina, specifica quando termina lo strumento di pianificazione.
  8. Fai clic su Crea.

SDK Python

Per impostare la frequenza dei job di monitoraggio, utilizza un'espressione 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,
)

Mettere in pausa o riprendere una programmazione

Puoi mettere in pausa e riprendere una pianificazione per saltare o interrompere temporaneamente le esecuzioni dei job di monitoraggio.

Console

  1. Nella console Google Cloud , vai alla pagina Monitoring.

    Vai a Monitoring

  2. Fai clic sul monitor del modello contenente la pianificazione da modificare.

  3. Nella pagina dei dettagli, vai alla scheda Pianificazioni.

  4. Fai clic sulla programmazione da modificare.

  5. Fai clic su Pausa o Riprendi per mettere in pausa o riprendere la pianificazione.

SDK Python

# Pause schedule
my_model_monitor.pause_schedule(my_monitoring_schedule.name)

# Resume schedule
my_model_monitor.resume_schedule(my_monitoring_schedule.name)

Elimina una pianificazione

Elimina una programmazione se non la utilizzi. I dati esistenti rimangono invariati, così come i job creati in precedenza.

Console

  1. Nella console Google Cloud , vai alla pagina Monitoring.

    Vai a Monitoring

  2. Fai clic sul monitor del modello contenente la pianificazione da modificare.

  3. Nella pagina dei dettagli, vai alla scheda Pianificazioni.

  4. Fai clic sulla programmazione da modificare.

  5. Fai clic su Elimina e di nuovo su Elimina per confermare.

SDK Python

my_model_monitor.delete_schedule(my_monitoring_schedule.name)

Analizzare i risultati del job di monitoraggio

Puoi utilizzare la console Google Cloud per visualizzare le distribuzioni dei dati per ogni obiettivo di monitoraggio e scoprire quali modifiche hanno portato alla deriva nel tempo.

Le visualizzazioni mostrano un istogramma che confronta la distribuzione dei dati tra i dati target e quelli di riferimento. In base al tuo livello di tolleranza, potresti, ad esempio, decidere di modificare la pipeline di generazione delle caratteristiche o di conservare il modello.

Visualizza i dettagli del job

Visualizza i dettagli di un'esecuzione del job di monitoraggio, ad esempio un elenco delle funzionalità monitorate e quali funzionalità hanno generato un avviso.

Console

  1. Nella console Google Cloud , vai alla pagina Monitoring.

    Vai a Monitoring

  2. Fai clic sul monitor del modello che contiene il job da analizzare.

  3. Nella pagina Dettagli monitor, fai clic sulla scheda Esecuzioni.

  4. Nell'elenco delle corse, fai clic su una corsa per visualizzarne i dettagli, ad esempio tutte le funzionalità incluse.

    L'esempio seguente mostra un confronto della distribuzione per la funzionalità paese dei job di previsione batch. La console Google Cloud fornisce anche dettagli sul confronto a seconda della metrica, ad esempio il numero di valori univoci, il valore medio e la deviazione standard.

    Istogrammi che mostrano la distribuzione delle caratteristiche di esempio per un set di dati di destinazione
e un set di dati di base.

Visualizza dettagli delle funzionalità

Visualizza le informazioni su una funzionalità e un elenco di job di monitoraggio che includono la funzionalità.

Console

  1. Nella console Google Cloud , vai alla pagina Monitoring.

    Vai a Monitoring

  2. Fai clic sul monitor del modello che contiene i job da analizzare.

  3. Nella scheda Panoramica puoi visualizzare un riepilogo, che include le tendenze della deriva per tutti gli obiettivi monitorati se hai configurato il monitoraggio continuo. Puoi anche esaminare in dettaglio obiettivi specifici per visualizzare dettagli come i nomi delle funzionalità monitorate e un elenco delle esecuzioni di monitoraggio.

    L'esempio seguente mostra un confronto della distribuzione per la funzionalità Paese. Dopo l'istogramma, puoi vedere quali esecuzioni hanno generato un avviso o selezionare un altro job di monitoraggio che includa i dati di monitoraggio per questa funzionalità.

    Istogrammi che mostrano la distribuzione dei dati di input di esempio per un set di dati di destinazione e un set di dati di base.