Modellmonitoring – Übersicht

In diesem Dokument wird beschrieben, wie BigQuery ML das Monitoring von ML-Modellen (maschinelles Lernen) durch Bewertung und Vergleich der verwendeten Daten unterstützt. Dazu gehört der Vergleich der Bereitstellungsdaten eines Modells mit seinen Trainingsdaten und der Vergleich neuer Bereitstellungsdaten mit zuvor verwendeten Bereitstellungsdaten.

Das Verständnis der von Ihren Modellen verwendeten Daten ist ein wichtiger Aspekt von ML, da diese Daten die Modellleistung beeinflussen. Das Verständnis der Abweichungen zwischen den Trainings- und Bereitstellungsdaten ist besonders wichtig, um sicherzustellen, dass 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. Die Trainingsstatistiken für das Modell werden während des Modelltrainings gespeichert. Die ursprünglichen Trainingsdaten sind also 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 werden Sie benachrichtigt, wenn sich die Bereitstellungsdaten im Laufe der Zeit ändern, bevor die Datensätze zu stark auseinanderdriften, um das Modell noch einmal zu trainieren.

Verwenden Sie die folgenden Funktionen, um Modelle in BigQuery ML zu überwachen:

  • ML.DESCRIBE_DATA: Berechnet beschreibende Statistiken für eine Reihe von Trainings- oder Bereitstellungsdaten.
  • 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 Bereitstellungsdatensätze, um ungewöhnliche Unterschiede zwischen den beiden Datensätzen zu identifizieren.
  • ML.TFDV_DESCRIBE: Berechnen Sie detaillierte Statistiken für ein Set von Trainings- oder Bereitstellungsdaten. Diese Funktion bietet dasselbe Verhalten wie die TensorFlow tfdv.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 Datasets zu identifizieren. Diese Funktion bietet dasselbe Verhalten wie die TensorFlow validate_statistics API.

Monitoring-Anwendungsfälle

In diesem Abschnitt wird beschrieben, wie Sie die Funktionen zum Überwachen von BigQuery ML-Modellen in gängigen Anwendungsfällen für das Monitoring 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 sind:

  1. Führen Sie die Funktion ML.DESCRIBE_DATA für Ihre Trainings- und Bereitstellungsdaten aus, um sicherzustellen, dass sich beide Datensätze angemessen miteinander vergleichen lassen und innerhalb der erwarteten Parameter liegen.
  2. Erstellen Sie ein BigQuery ML-Modell und trainieren Sie es anhand der Trainingsdaten.
  3. 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.
  4. 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 sind:

  1. Führen Sie die Funktion ML.DESCRIBE_DATA für Ihre Trainings- und Bereitstellungsdaten aus, um dafür zu sorgen, dass beide Datasets korrekt miteinander verglichen werden und sich innerhalb der erwarteten Parameter befinden.
  2. Erstellen Sie ein BigQuery ML-Modell und trainieren Sie es mit den Trainingsdaten.
  3. 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 Funktion ML.FEATURES_AT_TIME abrufen können.
  4. 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 Abweichungs- oder Driftstatistiken in eine vorhandene Monitoringlösung oder für andere Zwecke einbinden möchten.

Typische Schritte für diesen Anwendungsfall sind:

  1. Führen Sie die Funktion ML.TFDV_DESCRIBE für Ihre Trainings- und Bereitstellungsdaten in Intervallen aus, die für Ihre Monitoring-Lösung geeignet sind, und speichern Sie die Abfrageergebnisse. In diesem Schritt können Sie zukünftige Bereitstellungsdaten mit Trainings- und Bereitstellungsdaten aus der Vergangenheit vergleichen.
  2. 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-Protokoll-Buffer im JSON-Format bereitgestellt werden. Sie können einen Protokollpuffer im richtigen Format generieren, indem Sie die Funktion ML.TFDV_DESCRIBE ausführen, oder ihn außerhalb von BigQuery laden. Das folgende Beispiel zeigt, wie die Featureabweichung bewertet wird:

    DECLARE stats1 JSON;
    DECLARE stats2 JSON;
    
    SET stats1 = (
      SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.training`)
    );
    SET stats2 = (
      SELECT * 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;
  3. Bei Datenabweichungen oder -drifts untersuchen Sie die Ursache, passen die Trainingsdaten entsprechend an und trainieren dann das Modell neu.

Monitoring automatisieren

Sie können das Monitoring automatisieren, indem Sie eine geplante Abfrage verwenden, um die Monitoringfunktion auszuführen, die Ausgabe zu bewerten und das Modell neu zu trainieren, wenn Anomalien erkannt werden. Sie müssen E-Mail-Benachrichtigungen aktivieren, wenn Sie die geplante Abfrage einrichten.

Ein Beispiel für die Automatisierung der Funktion ML.VALIDATE_DATA_SKEW finden Sie unter Abweichungserkennung automatisieren.