ML Observability: Überwachen des Modellverhaltens im Laufe der Zeit

Das Verhalten des Modells kann sich im Laufe der Zeit aufgrund von Eingabeabweichungen, veralteten Trainingsannahmen und Problemen in der Datenpipeline sowie den üblichen Faktoren wie Änderungen an der zugrunde liegenden Hardware- und Software und der fließenden Natur des Datenverkehrs, ändern. Mit ML Observability können Sie die Qualität der Produktionsmodelle, die Sie über die Snowflake Model Registry bereitgestellt haben, in mehreren Dimensionen wie Leistung, Abweichung und Volumen verfolgen.

Derzeit unterstützt der Modellmonitor Regressions- und binäre Klassifikationsmodelle.

Bemerkung

Um mit ML Observability zu beginnen, sehen Sie sich den Quickstart an.

ML Observability-Workflow

Wenn Sie ein Modell, das in der Snowflake Model Registry protokolliert wurde, für die Inferenz verwenden, erhalten Sie die Ergebnisse in Form eines Snowpark- oder pandas-DataFrame, je nach Art des Eingabe-DataFrame, der an die Inferenzmethode übergeben wurde. Diese Daten stammen normalerweise aus Snowflake. Selbst in Fällen, in denen die Inferenz außerhalb von Snowflake ausgeführt wird, ist es üblich, die Ergebnisse in Snowflake zu speichern. Mit ML Observability können Sie die Leistung Ihres Modells in diesen beiden Szenarios überwachen, indem Sie mit den gespeicherten Inferenzdaten arbeiten. Der typische Workflow ist unten dargestellt.

ML Observability-Workflow

In den Überwachungsprotokollen werden die Schlussfolgerungsdaten und die Vorhersagen gespeichert, sodass das ML-Observability-Feature die Veränderungen der Vorhersagen im Laufe der Zeit beobachten kann. Die Überwachungsprotokolle werden in einer Tabelle gespeichert, die eine ID, einen Zeitstempel, Features, Vorhersagen und ein Ground-Truth-Label enthält, das angibt, ob es sich bei einer bestimmten Zeile um eine Vorhersage oder um beobachtete Daten handelt. Die Grundstruktur ist unten dargestellt.

ML Observability in Aktion

Sie müssen für jede Modellversion, die Sie überwachen möchten, explizit ein Modellmonitorobjekt erstellen. Jede Modellversion kann genau einen Monitor haben und jeder Monitor kann genau eine Modellversion überwachen; sie können nicht gemeinsam genutzt werden. Das Monitorobjekt aktualisiert automatisch die Monitorprotokolle durch Abfrage der Quelldaten und aktualisiert die Überwachungsberichte auf der Grundlage der Protokolle.

Jeder Monitor kapselt die folgenden Informationen:

  • Die zu überwachende Modellversion.

  • Die Tabelle, in der die Monitorprotokolle gespeichert werden.

  • Die minimale zeitliche Granularität, in der Daten gespeichert werden (Aggregationsfenster), derzeit mindestens 1 Tag.

  • Eine optionale Basistabelle für vergleichende metrische Operationen wie die Abweichung.

Voraussetzungen

Bevor Sie beginnen, vergewissern Sie sich, dass Sie Folgendes haben:

  • Ein Snowflake-Konto

  • Version 1.7.1 oder höher des snowflake-ml-python Python-Pakets.

  • Vertrautheit mit dem Snowflake Model Registry.

Erstellen eines Modellmonitors

Erstellen Sie einen Modellmonitor mit dem Befehl CREATE MODEL MONITOR. Der Modellmonitor muss in demselben Schema erstellt werden wie die zu überwachende Modellversion. Sie müssen über die Berechtigung CREATE MODEL MONITOR für das Schema verfügen, in dem der Monitor erstellt wird. Sie können maximal 250 Modellmonitore pro Konto erstellen.

Weitere Informationen zum Befehl CREATE MODEL MONITOR finden Sie unter CREATE MODEL MONITOR.

Tipp

Informationen zu anderen SQL-Befehlen, die Sie mit Modellmonitoren verwenden können, finden Sie unter Befehle für Modellmonitore.

Vorübergehendes Stoppen und Fortsetzen der Überwachung

Sie können einen Modellmonitor mit ALTER MODEL MONITOR … SUSPEND anhalten (vorübergehend stoppen). Um die Überwachung wieder aufzunehmen, rufen Sie ALTER MODEL MONITOR … RESUME auf.

Automatisches Anhalten bei Ausfall der Aktualisierung

Modellmonitore halten Aktualisierungen automatisch an, wenn fünf aufeinanderfolgende Aktualisierungsfehler in Bezug auf die Quelltabellen festgestellt werden. Sie können den Status und die Ursache des Anhaltens der Aktualisierung mit dem Befehl DESCRIBE MODEL MONITOR einsehen. Die Ausgabe enthält u. a. die folgenden Spalten:

  • aggregation_status: Der Wert in dieser Spalte ist ein JSON-Objekt. Einer oder mehrere der Werte in diesem Objekt werden SUSPENDED sein, wenn der Modellmonitor angehalten wird.

  • aggregation_last_error: Der Wert in dieser Spalte ist ein JSON-Objekt, das den spezifischen SQL-Fehler enthält, der das Anhalten verursacht hat.

Nachdem Sie die Ursache des Aktualisierungsfehlers behoben haben, setzen Sie den Monitor fort, indem Sie ALTER MODEL MONITOR … RESUME aufrufen.

Anzeigen von Überwachungsberichten

Um Überwachungsberichte einzusehen, besuchen Sie das ML Monitoring Dashboard in Snowsight. Wählen Sie im Navigationsbereich von Snowsight AI & ML und dann Models aus. Die resultierende Liste enthält alle Modelle in der Snowflake Model Registry in allen Datenbanken und Schemas, auf die Ihre aktuelle Rolle Zugriff hat.

Öffnen Sie die Detailseite eines Modells, indem Sie die entsprechende Zeile in der Liste Models auswählen. Auf der Detailseite werden wichtige Informationen zum Modell angezeigt, darunter die Beschreibung des Modells, Tags und Monitore.

Die Liste Monitors auf der Detailseite zeigt die Liste der Modellmonitore, die Modellversionen, denen sie zugeordnet sind, ihren Status und den Zeitpunkt ihrer Erstellung an.

Öffnen Sie die Dashboard-Seite eines Modellmonitors, indem Sie die entsprechende Zeile in der Monitorliste auswählen. Das Dashboard enthält Diagramme, die die wichtigsten Kennzahlen des Modells im Laufe der Zeit anzeigen. Welche Diagramme genau angezeigt werden, hängt von der Art des Modells ab, auf dem der Monitor basiert (d. h. binäre Klassifizierung oder Regression).

Auf dem Dashboard können Sie die folgenden Aktionen durchführen:

  • Ändern Sie den Bereich der Diagramme, indem Sie auf den Zeitbereichselektor klicken.

  • Ändern Sie die angezeigten Diagramme, indem Sie auf die Schaltfläche Settings klicken. (Bewegen Sie den Mauszeiger über einen Metriknamen, um weitere Informationen darüber zu erhalten)

  • Vergleichen Sie die Modellmonitore, indem Sie auf das Dropdown-Menü Modellauswahl Compare klicken.

  • Zeigen Sie weitere Informationen über den Modellmonitor an, indem Sie Display monitor details auswählen.

Anforderungen an die Zugriffssteuerung

Die folgenden Berechtigungen sind für die Arbeit mit Modellmonitorobjekten erforderlich.

Befehl

Erforderliche Berechtigungen

CREATE MODEL MONITOR

  • CREATE MODEL MONITOR-Berechtigung für das Schema, in dem Sie das Modell erstellen möchten.

  • SELECT auf Datenquelle (Tabelle oder Ansicht)

  • USAGE für Datenbank, Schema, Warehouse und Modell

SHOW MODEL MONITORS

Jede Berechtigung auf dem Modellmonitor

DESCRIBE MODEL MONITOR

Jede Berechtigung auf dem Modellmonitor

ALTER MODEL MONITOR

MODIFY auf dem Modellmonitor

DROP MODEL MONITOR

OWNERSHIP auf dem Modellmonitor

Modellmonitor-Dashboard

USAGE für das Modell und den Modellmonitor

Bekannte Einschränkungen

Die folgenden Beschränkungen gelten für Modellmonitore:

  • Die Monitore müssen in derselben Datenbank und demselben Schema erstellt werden wie die zu überwachende Modellversion.

  • Derzeit werden nur Modelle mit einfacher Regression und binärer Klassifizierung unterstützt.

  • Mindestens eine Vorhersagespalte (Klasse oder Punktzahl) ist erforderlich. Die aktuellen Spalten sind optional, werden aber für die Berechnung der Genauigkeitsmetriken benötigt.

  • Wenn keine Basisdaten zur Verfügung gestellt werden, kann die Abweichung nicht berechnet werden. Sie müssen den Monitor löschen und neu erstellen, um Basisdaten hinzuzufügen.

  • Eine bestimmte Spalte kann nur einmal im Monitor verwendet werden. Sie können beispielsweise nicht dieselbe Spalte sowohl als ID als auch als Vorhersage verwenden.

  • Modellmonitore erwarten, dass Ihre Daten keine ungültigen Werte wie Nullen, NaNs, +/-Inf, Wahrscheinlichkeitswerte außerhalb des Bereichs 0-1, Klassen, die nicht genau 0 oder 1 sind, oder mehr als zwei Klassen in einer PREDICTION_CLASS_COLUMNS Spalte enthalten. Solche Probleme können dazu führen, dass der Monitor ausfällt und schließlich angehalten wird.

  • Zeitstempelspalten müssen vom Typ TIMESTAMP_NTZ oder DATE sein. Vorhersage- und tatsächliche Spalten müssen vom Typ NUMBER sein.

  • Aggregationsfenster müssen in Tagen angegeben werden.

  • Die Anzahl der überwachten Features darf maximal 500 betragen.

  • Sie können maximal 250 Monitore erstellen.

Hinweise zu Kosten

Computing von virtuellen Warehouses

Modellmonitore laufen in einem virtuellen Warehouse. Für dieses Warehouse fallen Kosten an, wenn der Benutzer den Dienst erstellt und jedes Mal, wenn der Monitor aktualisiert wird. Ein virtuelles Warehouse wird auch verwendet, wenn das zugehörige Snowsight-Dashboard geladen wird, und es fallen Gebühren an.

Speicher

Modellmonitore materialisieren die Quelldaten in einer Tabelle, die in Ihrem Konto gespeichert ist.

Cloud Services Compute

Modellmonitore verwenden Cloud Services Compute, um Aktualisierungen auszulösen, wenn sich ein zugrunde liegendes Basisobjekt geändert hat. Die Computekosten für Clouddienste werden nur in Rechnung gestellt, wenn die täglichen Kosten für Clouddienst mehr als 10 % der täglichen Warehouse-Kosten für das Konto betragen.