Modellmonitoring – Übersicht

In diesem Dokument wird beschrieben, wie BigQuery ML das Monitoring von Modellen für maschinelles Lernen (ML) durch das Auswerten und Vergleichen der von einem Modell 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 von Abweichungen zwischen Ihren Trainings- und Bereitstellungsdaten ist besonders wichtig, damit Ihre Modelle im Laufe der Zeit genau bleiben. Ein Modell funktioniert am besten mit 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 für die Verwendung der Abweichungserkennung also nicht erforderlich.
  • 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 Daten-Spans unterstützt, z. B. zwischen verschiedenen Tagen von Bereitstellungsdaten. So können Sie benachrichtigt werden, wenn sich die Bereitstellungsdaten im Laufe der Zeit ändern, bevor die Datasets zu stark abweichen, um das Modell neu zu trainieren.

Mit den folgenden Funktionen können Sie Modelle in BigQuery ML überwachen:

  • ML.DESCRIBE_DATA: Berechnen Sie 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 Sätze von Bereitstellungsdaten, um anomale Unterschiede zwischen den beiden Datasets zu ermitteln.
  • ML.TFDV_DESCRIBE: Berechnen Sie detaillierte beschreibende Statistiken für ein Set von Trainings- oder Bereitstellungsdaten. Diese Funktion bietet das gleiche 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 anomale Unterschiede zwischen den beiden Datasets zu identifizieren. Diese Funktion bietet das gleiche Verhalten wie die TensorFlow validate_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 sind:

  1. Führen Sie die Funktion ML.DESCRIBE_DATA für Ihre Trainings- und Bereitstellungsdaten aus, damit beide Datasets angemessen miteinander verglichen werden und innerhalb der erwarteten Parameter liegen.
  2. Erstellen Sie ein BigQuery ML-Modell und trainieren Sie es mit den 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, damit beide Datasets angemessen miteinander verglichen werden und innerhalb der erwarteten Parameter liegen.
  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 eine detaillierte Abweichungs- oder Drift-Statistik in eine vorhandene Monitoringlösung oder für andere Zwecke integriert werden soll.

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 Ihrer Monitoring-Lösung entsprechen, und speichern Sie die Abfrageergebnisse. Mit diesem Schritt können Sie zukünftige Bereitstellungsdaten mit Trainings- und Bereitstellungsdaten zu früheren Zeitpunkten 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 DatasetFeatureStatisticsList-Protokollpuffer von TensorFlow im JSON-Format bereitgestellt werden. Sie können einen Protokollpuffer im richtigen Format generieren, indem Sie die Funktion ML.TFDV_DESCRIBE ausführen, oder Sie können ihn von außerhalb von BigQuery laden. Das folgende Beispiel zeigt, wie die Funktionsabweichung 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 mithilfe einer geplanten Abfrage automatisieren, 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 im Rahmen der Einrichtung der geplanten Abfrage aktivieren.

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