Überwachungsjobs ausführen

Wenn Sie einen Job ausführen, verwendet Model Monitoring v2 Daten aus Ihren Ziel- und Referenz-Datasets, berechnet Messwerte und generiert möglicherweise Benachrichtigungen. Model Monitoring v2 bietet On-Demand-Jobs für Ad-hoc-Monitoring oder geplante Jobs für kontinuierliches Monitoring. Unabhängig von der gewählten Option ist jeder Job eine einzelne Batchausführung.

Weitere Informationen zu Monitoringzielen und unterstützten Modellen finden Sie unter Model Monitoring v2 – Übersicht und Modell-Monitoring einrichten.

Job auf Abruf ausführen

Einen einmaligen Monitoring-Job ausführen Legen Sie die Ziel- und Baseline-Datasets sowie die Monitoring-Spezifikationen für die zu überwachenden Zielvorhaben fest. Mit Ihrer Konfiguration werden alle vom Modellmonitor definierten Standardeinstellungen überschrieben, sofern vorhanden.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Monitoring auf.

    Zu Monitoring

  2. Klicken Sie auf den Model Monitor, für den Sie einen Monitoring-Job ausführen möchten.

  3. Klicken Sie auf der Seite mit den Details zum Modellmonitor auf Jetzt ausführen, um den Monitoring-Job zu konfigurieren.

  4. Konfigurieren Sie den Job oder verwenden Sie die im Modellmonitor definierten Standardeinstellungen.

  5. Klicken Sie auf Ausführen.

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
)

Kontinuierliche Ausführungen planen

Sie können eine oder mehrere geplante Ausführungen für einen Modellmonitor festlegen. Wenn Sie ein kontinuierliches Monitoring mit Zeitangaben verwenden möchten, muss Ihr Dataset eine Zeitstempelspalte haben, damit Model Monitoring v2 die Daten aus dem angegebenen Zeitraum abrufen kann.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Monitoring auf.

    Zu Monitoring

  2. Klicken Sie auf den Modellmonitor, für den Sie ein kontinuierliches Monitoring konfigurieren möchten.

  3. Klicken Sie auf Wiederkehrende Ausführung planen.

  4. Legen Sie die Ziel- und Kontrolldatensätze fest und klicken Sie dann auf Weiter.

  5. Legen Sie die zu überwachenden Zielvorhaben, ihre Grenzwerte und die Benachrichtigungseinstellungen fest, wenn eine Benachrichtigung generiert wird.

  6. Klicken Sie auf Weiter.

  7. Zeitplan für wiederkehrende Jobs konfigurieren:

    1. Geben Sie einen Namen für den Scheduler an.
    2. Geben Sie unter Startzeit an, wann der erste Job gestartet werden soll.
    3. Verwenden Sie für Häufigkeit einen Cron-Ausdruck, um die Häufigkeit festzulegen, und legen Sie dann die Zeitzone fest.
    4. Geben Sie unter Ende an, wann der Zeitplaner endet.
  8. Klicken Sie auf Erstellen.

Python SDK

Verwenden Sie einen Cron-Ausdruck, um die Häufigkeit von Monitoring-Jobs festzulegen.

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

Zeitplan pausieren oder fortsetzen

Sie können einen Zeitplan pausieren und fortsetzen, um Monitoringjobs zu überspringen oder vorübergehend anzuhalten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Monitoring auf.

    Zu Monitoring

  2. Klicken Sie auf den Modellmonitor, der den Zeitplan enthält, den Sie ändern möchten.

  3. Rufen Sie auf der Seite mit den Details den Tab Zeitpläne auf.

  4. Klicken Sie auf den Zeitplan, den Sie ändern möchten.

  5. Klicken Sie auf Anhalten oder Fortsetzen, um den Zeitplan zu pausieren oder fortzusetzen.

Python SDK

# Pause schedule
my_model_monitor.pause_schedule(my_monitoring_schedule.name)

# Resume schedule
my_model_monitor.resume_schedule(my_monitoring_schedule.name)

Zeitplan löschen

Löschen Sie einen Zeitplan, wenn Sie ihn nicht verwenden. Ihre vorhandenen Daten und alle zuvor erstellten Jobs bleiben erhalten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Monitoring auf.

    Zu Monitoring

  2. Klicken Sie auf den Modellmonitor, der den Zeitplan enthält, den Sie ändern möchten.

  3. Rufen Sie auf der Seite mit den Details den Tab Zeitpläne auf.

  4. Klicken Sie auf den Zeitplan, den Sie ändern möchten.

  5. Klicken Sie zum Bestätigen auf Löschen und dann noch einmal auf Löschen.

Python SDK

my_model_monitor.delete_schedule(my_monitoring_schedule.name)

Ergebnisse von Monitoring-Jobs analysieren

Sie können die Google Cloud Console verwenden, um die Datenverteilungen für jedes Monitoring-Ziel zu visualisieren und zu ermitteln, welche Änderungen zu einer Drift geführt haben.

Die Visualisierungen zeigen ein Histogramm, in dem die Datenverteilung zwischen den Ziel- und den Baseline-Daten verglichen wird. Je nach Toleranz können Sie beispielsweise die Pipeline für die Funktionsgenerierung anpassen oder das Modell neu trainieren.

Auftragsdetails aufrufen

Sie können sich Details zu einem ausgeführten Monitoring-Job ansehen, z. B. eine Liste der überwachten Funktionen und welche Funktionen eine Benachrichtigung generiert haben.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Monitoring auf.

    Zu Monitoring

  2. Klicken Sie auf den Modell-Monitor, der den zu analysierenden Job enthält.

  3. Klicken Sie auf der Seite Monitordetails auf den Tab Ausführungen.

  4. Klicken Sie in der Liste der Ausführungen auf eine Ausführung, um Details wie alle in einer Ausführung enthaltenen Funktionen aufzurufen.

    Das folgende Beispiel zeigt einen Verteilungsvergleich für das Attribut Land aus Jobs für die Batch-Prognose. In der Google Cloud Console finden Sie je nach Messwert auch Details zum Vergleich, z. B. die Anzahl der eindeutigen Werte, den Mittelwert und die Standardabweichung.

    Histogramme mit einer Beispiel-Featureverteilung für ein Ziel-Dataset und ein Baseline-Dataset.

Featuredetails ansehen

Informationen zu einem Element und eine Liste der Monitoring-Jobs, die das Element enthalten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Monitoring auf.

    Zu Monitoring

  2. Klicken Sie auf den Modell-Monitor, der die zu analysierenden Jobs enthält.

  3. Auf dem Tab Übersicht sehen Sie eine Zusammenfassung mit Trends bei der Abweichung für alle beobachteten Zielvorhaben, sofern Sie eine kontinuierliche Beobachtung eingerichtet haben. Sie können sich auch bestimmte Zielvorhaben genauer ansehen, um Details wie die Namen der überwachten Funktionen und eine Liste der Überwachungsläufe zu sehen.

    Das folgende Beispiel zeigt einen Verteilungsvergleich für das Land-Attribut. Nach dem Histogramm sehen Sie, für welche Ausführungen eine Benachrichtigung generiert wurde, oder Sie können einen anderen Monitoring-Job auswählen, der Monitoring-Daten für diese Funktion enthält.

    Histogramme mit einer beispielhaften Eingabedatenverteilung für einen Ziel- und einen Baseline-Dataset.