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.

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.

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.
Abfrage der Überwachungsergebnisse¶
Jeder Modellmonitor, den Sie erstellen, verfügt über die folgenden Metriken:
Drift-Metriken: Verteilungsänderungen oder Datenverschiebungen
Leistungsmetriken: Verteilungsänderungen oder Datenverschiebungen
Statistische Metriken: Zählungen oder Nullwerte
Um die vom Monitor berechneten Metriken abzufragen, verwenden Sie die Monitor-Metrikfunktionen. Die Metrikfunktionen beziehen die Metriken von den Modellmonitorobjekten. Sie können die Ergebnisse der Metrikfunktionen verwenden, um benutzerdefinierte Dashboards in Streamlit oder anderen zentralisierten Überwachungstools zu erstellen.
Wichtig
Sie müssen über die folgenden Berechtigungen verfügen, um mit Modellmonitorobjekten zu arbeiten:
Befehl |
Erforderliche Berechtigungen |
---|---|
CREATE MODEL MONITOR |
|
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 |
Verwenden Sie die folgende SQL-Vorlage, um die Driftmetrik von Ihrem Modellmonitor abzurufen.
SELECT *
FROM TABLE(MODEL_MONITOR_DRIFT_METRIC (
<model_monitor_name>,
<drift_metric_name>,
<column_name>,
<granularity>,
<start_time>,
<end_time>
)
)
Verwenden Sie die folgende SQL-Vorlage, um die Leistungsmetrik von Ihrem Modellmonitor abzurufen.
SELECT *
FROM TABLE(MODEL_MONITOR_PERFORMANCE_METRIC (
<model_monitor_name>,
<metric_name>,
<granularity>,
<start_time>,
<end_time>
)
)
Verwenden Sie die folgende SQL-Vorlage, um die statistische Metrik von Ihrem Modellmonitor abzurufen.
SELECT *
FROM TABLE(MODEL_MONITOR_STAT_METRIC (
<model_monitor_name>,
<metric_name>,
<granularity>,
<start_time>,
<end_time>
)
)
Sie können Alarme und Benachrichtigungen für Ihre Überwachungsmetriken einrichten. Weitere Informationen dazu finden Sie unter Alerts und Benachrichtigungen.
Bekannte Einschränkungen¶
Die folgenden Beschränkungen gelten für Modellmonitore:
Monitore müssen sich in derselben Datenbank und demselben Schema befinden wie die Modellversion.
Es werden nur Einzelausgangsregressions- und binäre Klassifizierungsmodelle unterstützt.
Mindestens eine Vorhersagespalte (Klasse oder Punktzahl) ist erforderlich. Die eigentlichen Spalten sind optional, werden aber für die Genauigkeitsmetriken benötigt.
Für die Driftberechnung sind Basisdaten erforderlich. Wenn Sie keine Basisdaten hinzufügen möchten, müssen Sie den Monitor löschen und neu erstellen.
Jede Spalte kann nur einmal im Monitor verwendet werden. Sie können z. B. nicht dieselbe Spalte als ID-Spalte und als Vorhersagespalte verwenden.
Die Daten dürfen keine ungültigen Werte enthalten (Nullen, NaNs, +/-Inf, Wahrscheinlichkeitswerte außerhalb von 0-1, nicht-binäre Klassen oder mehr als zwei Klassen in einer PREDICTION_CLASS_COLUMNS-Spalte), um Überwachungsfehler und Aussetzungen zu vermeiden.
Zeitstempelspalten müssen vom Typ
TIMESTAMP_NTZ
sein; Vorhersage- und Ist-Spalten müssenNUMBER
sein.Sie müssen die Aggregationsfenster in Tagen angeben.
Es können maximal 500 Features überwacht werden.
Es können bis zu 250 Monitore erstellt werden.
Hinweise zu Kosten¶
Virtuelles Warehouse-Computing:
Modellmonitore verwenden ein virtuelles Warehouse, wodurch Kosten bei der Erstellung und jeder Aktualisierung entstehen.
Das Laden des Snowsight-Dashboards erfolgt ebenfalls über ein virtuelles Warehouse, wofür zusätzliche Kosten anfallen.
Speicher:
Modellmonitore materialisieren die Quelldaten in eine 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.