Modellmonitoring – Übersicht

In diesem Dokument wird beschrieben, wie BigQuery ML die Überwachung von Modellen für maschinelles Lernen (ML) durch Bewertung und Vergleich der Daten unterstützt, die in einem Modell verwendet werden. Dazu gehört auch der Vergleich der Bereitstellungsdaten eines Modells mit den Trainingsdaten und der Vergleich neuer Bereitstellungsdaten mit zuvor verwendeten Bereitstellungsdaten.

Die von Ihren Modellen verwendeten Daten sind ein wichtiger Aspekt der ML, da sie sich auf die Modellleistung auswirken. Abweichungen zwischen Trainings- und Bereitstellungsdaten zu verstehen, ist besonders wichtig, damit Ihre Modelle im Laufe der Zeit genau bleiben. Ein Modell funktioniert am besten bei der Bereitstellung von Daten, 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 voneinander abweichen, um das Modell noch einmal zu trainieren.

Mit den folgenden Funktionen können Sie Modelle in BigQuery ML ü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: Detaillierte beschreibende Statistiken für eine Reihe von Trainings- oder Bereitstellungsdaten berechnen. Diese Funktion bietet dasselbe Verhalten wie die TensorFlow tfdv.generate_statistics_from_csv API.
  • ML.TFDV_VALIDATE: Sie können die Statistiken für Trainings- und Bereitstellungsdaten oder zwei Sätze von Bereitstellungsdatenstatistiken vergleichen, um ungewöhnliche Unterschiede zwischen den beiden Datensätzen 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.

Grundlegende Überwachung 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:

  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:

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

  1. Führen Sie die Funktion ML.TFDV_DESCRIBE in Intervallen aus, die zu Ihrer Monitoring-Lösung passen, 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 Protokollbuffer im richtigen Format generieren, indem Sie die Funktion ML.TFDV_DESCRIBE ausführen, oder ihn von außerhalb von BigQuery laden. Im folgenden Beispiel wird gezeigt, wie sich ein Abweichungsfaktor bewerten lässt:

    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;
  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.