Erstellen, Trainieren und Verwenden eines Snowflake ML-Modells in einer App¶
Unter diesem Thema finden Sie ein Beispiel dafür, wie Sie ein Snowflake ML-Modell innerhalb einer Snowflake Native App mit dem Python-Paket scikit-learn trainieren können. Das Beispiel unter diesem Thema kann verwendet werden, um Modelle anhand von Daten in den Konten der Verbraucher oder Anbieter zu trainieren.
Erstellen eines versionierten Schemas, das die gespeicherten Prozeduren enthält¶
Erstellen Sie im Setup-Skript ein versioniertes Schema, das die gespeicherte Prozedur enthält wie im folgenden Beispiel gezeigt:
Erstellen eines versionierten Schemas für die gespeicherte Prozedur
Erstellen einer gespeicherten Prozedur zum Erstellen und Trainieren eines Modells¶
Erstellen Sie eine gespeicherte Prozedur für die Python-Funktion, die Sie zum Trainieren eines Modells verwenden, wie im folgenden Beispiel gezeigt:
In diesem Beispiel wird eine gespeicherte Prozedur mit dem Namen
py_log_modelerstellt und die Python-Pakete deklariert, die zum Trainieren eines Modells mitscikit-learnerforderlich sind:
snowflake-snowpark-python
scikit-learn
snowflake-ml-python
pandas
numpy
xgboost
Nachdem Sie eine gespeicherte Prozedur erstellt haben, fügen Sie den folgenden Code in den Body der gespeicherten Prozedur ein:
Python-Code in den Body der gespeicherten Prozedur einfügen
Die Funktion
log_modelhat folgende Aufgaben:
Verwendet
pandasundnumpy, um einen DataFrame zu erstellen, der als Trainingsdaten für das Modell dient.Erzeugt eine Instanz von XGBoost, die als Trainingsalgorithmus für die Daten dient.
Ruft die Funktion
fit()von XGBoost auf, um ein Modell zu erstellen und es mit dem Datensatz zu trainieren.Ruft die Funktion
log_model()von Snowflake Model Registry auf, um das Modell zur Modellregistrierung hinzuzufügen.Bemerkung
Von einer Anwendung erstellte Modelle müssen in einer Modellregistrierung gespeichert werden. Anwendungen können nicht auf Modelle zugreifen, die in einem Stagingbereich gespeichert sind.
Optional: Damit Verbraucher die gespeicherte Prozedur ausführen können, um das Modell zu trainieren, gewähren Sie die Berechtigung USAGE für die gespeicherte Prozedur:
Erstellen einer gespeicherten Prozedur zur Ausführung eines Modells¶
Erstellen Sie eine gespeicherte Prozedur für die Python-Funktion, die Sie zum Aufrufen des Modells verwenden.
Python-Code hinzufügen, den Sie zum Aufrufen des Modells verwenden
Die Funktion
run_modelbewirkt Folgendes:
Führt die Funktion
load_iris()aus, um den Iris-Datensatz für maschinelles Lernen zu laden.Verwendet
pandas, um einen DataFrame auf der Grundlage des Iris-Datensatzes zu erstellen.Führt die Funktion
get_model()aus, um die Modellregistrierung zu erhalten.Führt die Vorhersagefunktion für das Modell aus.
Gibt das Ergebnis zurück.
Optional: Damit Verbraucher die gespeicherte Prozedur ausführen können, um das Modell zu trainieren, gewähren Sie die Berechtigung USAGE für die gespeicherte Prozedur:
Gespeicherte Prozeduren ausführen¶
Wenn die Anwendung einer Anwendungsrolle die Berechtigung USAGE für diese gespeicherten Prozeduren gewährt, können Verbraucher die gespeicherten Prozeduren aufrufen, um die Modelle zu trainieren und auszuführen wie in den folgenden Beispielen gezeigt:
Dieser Befehl ruft die gespeicherte Prozedur py_log_model auf, um das Modell zu trainieren.
Dieser Befehl ruft die gespeicherte Prozedur py_call_predict auf, um die Vorhersagefunktion für das Modell aufzurufen.