Modellmonitoring – Übersicht
In diesem Dokument wird beschrieben, wie BigQuery ML die Überwachung von Modellen für maschinelles Lernen (ML) durch die Bewertung und den Vergleich der von einem Modell verwendeten Daten unterstützt. Dazu gehört der Vergleich der Bereitstellungsdaten eines Modells mit seinen Trainingsdaten sowie der Vergleich neuer Bereitstellungsdaten mit zuvor verwendeten Bereitstellungsdaten.
Die Daten, die von Ihren Modellen verwendet werden, sind ein wichtiger Aspekt von ML, da sie sich auf die Modellleistung auswirken. Es ist besonders wichtig, alle Abweichungen zwischen Ihren Trainings- und Bereitstellungsdaten zu verstehen, damit Ihre Modelle im Laufe der Zeit genau bleiben. Ein Modell funktioniert am besten mit Bereitstellungsdaten, die den Trainingsdaten ähneln. Wenn die Bereitstellungsdaten von den Daten abweichen, die zum Trainieren des Modells verwendet wurden, kann sich die Leistung des Modells verschlechtern, auch wenn sich das Modell selbst nicht geändert hat.
BigQuery ML bietet Funktionen, mit denen Sie Ihre Trainings- und Bereitstellungsdaten auf Datenabweichung und Datendrift analysieren können:
- Eine Datenabweichung tritt auf, wenn die Verteilung von Featurewerten für Trainingsdaten erheblich von den Bereitstellungsdaten in der Produktion abweicht. Trainingsstatistiken für das Modell werden während des Modelltrainings gespeichert. Daher sind die ursprünglichen Trainingsdaten nicht erforderlich, um die Abweichungserkennung zu verwenden.
- Ein Daten-Drift tritt auf, wenn sich die Verteilung der Featuredaten in der Produktion im Laufe der Zeit erheblich verändert Die Drifterkennung wird für aufeinanderfolgende Datenbereiche unterstützt, z. B. zwischen verschiedenen Tagen mit Bereitstellungsdaten. So können Sie benachrichtigt werden, wenn sich die Bereitstellungsdaten im Laufe der Zeit ändern, bevor die Datasets zu stark voneinander abweichen, um das Modell neu zu trainieren.
Verwenden Sie die folgenden Funktionen, um Modelle in BigQuery ML zu überwachen:
ML.DESCRIBE_DATA
: Berechnet deskriptive Statistiken für eine Reihe von Trainings- oder Serving-Daten.ML.VALIDATE_DATA_SKEW
: Berechnen Sie die Statistiken für eine Reihe von Bereitstellungsdaten und vergleichen Sie sie dann mit den Trainingsdatenstatistiken, die beim Trainieren eines BigQuery ML-Modells berechnet wurden, um ungewöhnliche Unterschiede zwischen den beiden Datensätzen zu identifizieren. Statistiken werden nur für Featurespalten in den Bereitstellungsdaten berechnet, die mit Featurespalten in den Trainingsdaten übereinstimmen, um eine bessere Leistung und niedrigere Kosten zu erzielen.ML.VALIDATE_DATA_DRIFT
: Berechnen und vergleichen Sie die Statistiken für zwei Sätze von Bereitstellungsdaten, um ungewöhnliche Unterschiede zwischen den beiden Datensätzen zu identifizieren.ML.TFDV_DESCRIBE
: Berechnen Sie detaillierte deskriptive Statistiken für eine Reihe von Trainings- oder Bereitstellungsdaten. Diese Funktion bietet dasselbe Verhalten wie die TensorFlowtfdv.generate_statistics_from_csv
API.ML.TFDV_VALIDATE
: Vergleichen Sie die Statistiken für Trainings- und Bereitstellungsdatenstatistiken oder zwei Sätze von Bereitstellungsdatenstatistiken, um ungewöhnliche Unterschiede zwischen den beiden Datensätzen zu identifizieren. Diese Funktion bietet dasselbe Verhalten wie die TensorFlowvalidate_statistics
API.
Monitoring-Anwendungsfälle
In diesem Abschnitt wird beschrieben, wie Sie die BigQuery ML-Modellmonitoringfunktionen in gängigen Monitoring-Anwendungsfällen verwenden.
Grundlegendes Monitoring von Datenabweichungen
Dieser Anwendungsfall ist geeignet, wenn Sie ein Modell schnell entwickeln und auf Datenabweichung überwachen möchten und keine detaillierten Abweichungsstatistiken benötigen, die in eine vorhandene Monitoringlösung integriert werden können.
Typische Schritte für diesen Anwendungsfall:
- Führen Sie die Funktion
ML.DESCRIBE_DATA
für Ihre Trainings- und Bereitstellungsdaten aus, um sicherzustellen, dass beide Datasets angemessen miteinander verglichen werden und innerhalb der erwarteten Parameter liegen. - Erstellen Sie ein BigQuery ML-Modell und trainieren Sie es mit den Trainingsdaten.
- Führen Sie die Funktion
ML.VALIDATE_DATA_SKEW
aus, um die Statistiken der Bereitstellungsdaten mit den Statistiken der Trainingsdaten zu vergleichen, die während der Modellerstellung berechnet wurden. So können Sie feststellen, ob eine Datenabweichung vorliegt. - Wenn es eine Datenabweichung gibt, untersuchen Sie die Ursache, passen Sie die Trainingsdaten entsprechend an und trainieren Sie dann das Modell neu.
Grundlegendes Monitoring von Datendrifts
Dieser Anwendungsfall ist geeignet, wenn Sie ein Modell schnell entwickeln und auf Datendrift überwachen möchten und keine detaillierten Driftstatistiken benötigen, die in eine vorhandene Monitoringlösung integriert werden können.
Typische Schritte für diesen Anwendungsfall:
- Führen Sie die Funktion
ML.DESCRIBE_DATA
für Ihre Trainings- und Bereitstellungsdaten aus, um sicherzustellen, dass beide Datasets angemessen miteinander verglichen werden und innerhalb der erwarteten Parameter liegen. - Erstellen Sie ein BigQuery ML-Modell und trainieren Sie es mit den Trainingsdaten.
- Führen Sie die Funktion
ML.VALIDATE_DATA_DRIFT
aus, um die Statistiken für zwei verschiedene Bereitstellungs-Datasets zu vergleichen und festzustellen, ob Datendrifts auftreten. Sie können beispielsweise die aktuellen Bereitstellungsdaten mit historischen Bereitstellungsdaten aus einem Tabellen-Snapshot oder mit den Features vergleichen, die zu einem bestimmten Zeitpunkt bereitgestellt werden, die Sie mit der FunktionML.FEATURES_AT_TIME
abrufen können. - Wenn es Datendrifts gibt, untersuchen Sie die Ursache, passen Sie die Trainingsdaten entsprechend an und trainieren Sie dann das Modell neu.
Erweitertes Monitoring von Datenabweichungen oder -drifts
Dieser Anwendungsfall ist geeignet, wenn Sie detaillierte Statistiken zu Abweichung oder Drift benötigen, die in eine vorhandene Monitoringlösung integriert werden können, oder für andere Zwecke.
Typische Schritte für diesen Anwendungsfall:
- Führen Sie die Funktion
ML.TFDV_DESCRIBE
in Intervallen, die für Ihre Monitoringlösung geeignet sind, für Ihre Trainings- und Bereitstellungsdaten aus und speichern Sie die Abfrageergebnisse. In diesem Schritt können Sie zukünftige Bereitstellungsdaten mit Trainings- und Bereitstellungsdaten aus der Vergangenheit vergleichen. Führen Sie die Funktion
ML.TFDV_VALIDATE
für Ihre Trainings- und Bereitstellungsdatenstatistiken oder für zwei Sätze von Bereitstellungsdatenstatistiken aus, um eine Datenabweichung bzw. ein Feature-Drift zu bewerten. Die Trainings- und Bereitstellungsdaten müssen als TensorFlow-DatasetFeatureStatisticsList
-Protokollpuffer im JSON-Format bereitgestellt werden. Sie können einen Protocol Buffer im richtigen Format generieren, indem Sie die FunktionML.TFDV_DESCRIBE
ausführen, oder Sie können ihn außerhalb von BigQuery laden. Das folgende Beispiel zeigt, wie Sie die Abweichung von Merkmalen bewerten:DECLARE stats1 JSON; DECLARE stats2 JSON; SET stats1 = ( SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.training`) ); SET stats2 = ( SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.serving`) ); SELECT ML.TFDV_VALIDATE(stats1, stats2, 'SKEW'); INSERT `myproject.mydataset.serve_stats` (t, dataset_feature_statistics_list) SELECT CURRENT_TIMESTAMP() AS t, stats1;
Bei Datenabweichungen oder -drifts untersuchen Sie die Ursache, passen die Trainingsdaten entsprechend an und trainieren dann das Modell neu.
Visualisierung von Monitoring-Daten
Einige Monitoring-Funktionen bieten eine Integration mit Vertex AI Model Monitoring, sodass Sie Diagramme und Grafiken verwenden können, um die Ausgabe der Modellmonitoring-Funktion zu analysieren.
Die Verwendung von Vertex AI-Visualisierungen bietet folgende Vorteile:
- Interaktive Visualisierungen: In der Vertex AI Console können Sie Datenverteilungen, Messwerte für Abweichung und Messwerte für Drift mithilfe von Diagrammen und Grafiken untersuchen.
- Verlaufsanalyse: Mit Vertex AI-Visualisierungen können Sie die Ergebnisse des Modellmonitorings im Zeitverlauf verfolgen. So können Sie Trends und Muster bei Datenänderungen erkennen und Modelle proaktiv aktualisieren und verwalten.
- Zentrale Verwaltung: Sie können die Überwachung für alle BigQuery ML- und Vertex AI-Modelle im einheitlichen Vertex AI-Dashboard verwalten.
Sie können die Visualisierung der ML.VALIDATE_DATA_DRIFT
-Funktionsausgabe mit dem MODEL
-Argument der Funktion aktivieren. Sie können die Visualisierung der Ausgabe der Funktion ML.VALIDATE_DATA_SKEW
mit dem Argument enable_visualization_link
dieser Funktion aktivieren.
Sie können die Monitoring-Visualisierung nur für Modelle verwenden, die bei Vertex AI registriert sind. Sie können ein vorhandenes Modell mit der ALTER MODEL
-Anweisung registrieren.
Monitoring automatisieren
Sie können das Monitoring automatisieren, indem Sie eine geplante Abfrage verwenden, um die Monitoring-Funktion auszuführen, die Ausgabe auszuwerten und das Modell neu zu trainieren, wenn Anomalien erkannt werden. Sie müssen E‑Mail-Benachrichtigungen im Rahmen der Einrichtung der geplanten Abfrage aktivieren.
Ein Beispiel für die Automatisierung der Funktion ML.VALIDATE_DATA_SKEW
finden Sie unter Automatisierte Erkennung von Abweichungen.