Python APIs für Snowflake ML¶
Das Python-Paket snowflake-ml-python
stellt Python-APIs bereit, die Verbindungen zu den verschiedenen Workflow-Komponenten von Snowflake-ML herstellen und enthält auch APIs für die Erstellung und das Training Ihrer eigenen Modelle. Sie können diese APIs in Ihrem bevorzugten Python-IDE auf Ihrer eigenen Workstation, in Snowsight Arbeitsblättern oder in Snowflake Notebooks verwenden.
Tipp
Ein Beispiel für einen durchgängigen Workflow zur Verwendung der Bibliothek finden Sie unter Einführung in maschinelles Lernen mit Snowpark ML.
Verwendung von Snowflake ML in Snowflake Notebooks¶
Snowflake Notebooks bietet eine einfach zu bedienende Notebook-Oberfläche für Ihre Datenarbeit, die Python, SQL und Markdown miteinander verbindet. Um die Features von Snowflake ML in Notebooks zu verwenden, wählen Sie das Anaconda Paket snowflake-ml-python
über das Menü Packages am oberen Rand des Notebooks.
Notebooks unterstützen sowohl die Laufzeitoptionen CPU als auch GPU. Für viele Modelle ist es erforderlich oder vorteilhaft, eine GPU zur Verfügung zu haben.
Wichtig
Das snowflake-ml-python
-Paket und seine Abhängigkeiten müssen von der Paketrichtlinie Ihrer Organisation zugelassen sein.
Snowflake ML in Snowsight-Arbeitsblättern verwenden¶
Snowsight Worksheets bietet eine leistungsstarke und vielseitige Methode zur Ausführung von Python-Code. Um die Features von Snowflake ML in Arbeitsblättern zu verwenden, wählen Sie das Paket Anaconda snowflake-ml-python
über das Menü Packages am oberen Rand des Arbeitsblatts.
Wichtig
Das snowflake-ml-python
-Paket und seine Abhängigkeiten müssen von der Paketrichtlinie Ihrer Organisation zugelassen sein.
Lokale Verwendung von Snowflake ML¶
Sie müssen das Paket snowflake-ml-python
installieren, um auf Ihrer eigenen Workstation oder an einem anderen Ort außerhalb von Snowflake zu entwickeln. Alle Features von Snowflake ML sind in einem einzigen Paket verfügbar, snowflake-ml-python
. Sie können das Paket aus dem Snowflake-Conda-Channel mit dem Befehl conda
oder aus dem Python Package Index (PyPI) mit pip
installieren. Conda wird bevorzugt.
Installation über den Snowflake-conda-Kanal¶
Erstellen Sie die conda-Umgebung, in der Sie Snowflake ML installieren werden. Wenn Sie es vorziehen, eine bestehende Umgebung zu verwenden, überspringen Sie diesen Schritt.
conda create --name snowpark-ml
Aktivieren Sie die Conda-Umgebung:
conda activate snowflake-ml
Installieren Sie
snowflake-ml-python
aus dem Snowflake-conda-Kanalconda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ snowflake-ml-python
Tipp
Installieren Sie nach Möglichkeit Pakete aus dem Snowflake-conda-Kanal, um sicherzustellen, dass Sie Pakete erhalten, die mit Snowflake ML validiert wurden.
Installieren von PyPI¶
Sie können snowflake-ml-python
aus dem Python Package Index (PyPI) mithilfe des Standard-Python-Paketmanagers pip
installieren.
Warnung
Verwenden Sie dieses Installationsverfahren nicht, wenn Sie eine Conda-Umgebung verwenden. Verwenden Sie stattdessen die Conda-Anleitung.
Erstellen und aktivieren Sie Ihre virtuelle Python-Umgebung:
python3 -m virtualenv venv source venv/bin/activate
Installieren Sie das
snowflake-ml-python
-Paket:python -m pip install snowflake-ml-python
Installieren optionaler Abhängigkeiten¶
Einige APIs benötigen Abhängigkeiten, die nicht als Abhängigkeiten von snowflake-ml-python
installiert sind. Standardmäßig ist scikit-learn installiert. Andere Pakete wie lightgbm, xgboost, keras, pytorch und andere sind optionale Abhängigkeiten.
Wenn Sie das Modul snowflake.ml.modeling.lightgbm
verwenden möchten, installieren Sie lightgbm. Verwenden Sie die folgenden Befehle, um Ihre conda-Umgebung zu aktivieren und lightgbm aus dem Snowflake-Conda-Kanal zu installieren.
conda activate snowflake-ml
conda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ lightgbm
Verwenden Sie die folgenden Befehle, um Ihre virtuelle Umgebung zu aktivieren und lightgbm mit pip
zu installieren.
source venv/bin/activate
python -m pip install 'snowflake-ml-python[lightgbm]'
Einrichten von Snowpark Python¶
Snowpark Python ist eine Abhängigkeit von snowflake-ml-python
und wird automatisch mit diesem installiert. Wenn Snowpark Python nicht bereits auf Ihrem System eingerichtet ist, müssen Sie möglicherweise zusätzliche Konfigurationsschritte durchführen. Unter Einrichten Ihrer Entwicklungsumgebung für Snowpark Python finden Sie eine Anleitung zum Einrichten von Snowpark Python.
Verbinden mit Snowflake¶
Bevor Sie die Features von Snowflake-ML in Python verwenden, stellen Sie eine Verbindung zu Snowflake über ein Snowpark Session
-Objekt her. Verwenden Sie die Funktion SnowflakeLoginOptions
im Modul snowflake.ml.utils.connection_params
, um die Konfigurationseinstellungen für das Erstellen der Sitzung abzurufen. Die Funktion kann die Verbindungseinstellungen aus einer benannten Verbindung in Ihrer SnowSQL-Konfigurationsdatei oder aus von Ihnen festgelegten Umgebungsvariablen lesen. Die Funktion gibt ein Dictionary mit diesen Parametern zurück, das zum Erstellen einer Verbindung verwendet werden kann.
In den folgenden Beispielen werden die Verbindungsparameter aus der benannten Verbindung myaccount
in der SnowSQL-Konfigurationsdatei gelesen. Um eine Snowpark Python-Sitzung zu erstellen, erstellen Sie einen Builder für die Session
-Klasse und übergeben die Verbindungsinformationen an die configs
-Methode des Builders:
from snowflake.snowpark import Session
from snowflake.ml.utils import connection_params
params = connection_params.SnowflakeLoginOptions("myaccount")
sp_session = Session.builder.configs(params).create()
Sie können die Sitzung nun an jeden weitergeben, der sie benötigt.
Tipp
Um eine Snowpark Python-Sitzung aus einer Verbindung des Snowflake Connector für Python zu erstellen, übergeben Sie das Verbindungsobjekt an den Session-Builder. Hier ist connection
die Verbindung mit dem Snowflake-Konnektor für Python.
session = Session.builder.configs({"connection": connection}).create()
Angeben eines Warehouses¶
Viele Features von Snowflake ML, z. B. Modelltraining oder Inferenz, führen Code in einem Snowflake Warehouse aus. Diese Operationen werden in dem Warehouse ausgeführt, das von der Sitzung vorgegeben wird, die Sie für die Verbindung verwenden. Wenn Sie beispielsweise eine Sitzung aus einer benannten Verbindung Ihrer SnowSQL-Konfigurationsdatei erstellen, können Sie ein Warehouse mit dem Parameter warehousename
in der benannten Konfiguration angeben.
Sie können die Warehouse-Einstellung beim Erstellen des Session
-Objekts hinzufügen, wie hier gezeigt, wenn es noch nicht in der Konfiguration vorhanden ist.
from snowflake.snowpark import Session
from snowflake.ml.utils import connection_params
# Get named connection from SnowSQL configuration file
params = connection_params.SnowflakeLoginOptions(connection_name="my_connection")
# Add warehouse name for model method calls if it's not already present
if "warehouse" not in params:
params["warehouse"] = "mlwarehouse"
sp_session = Session.builder.configs(params).create()
Wenn in der Sitzung kein Warehouse angegeben ist oder wenn Sie ein anderes Warehouse verwenden möchten, rufen Sie die use_warehouse
-Methode der Sitzung auf, um ein Warehouse anzugeben.
sp_session.use_warehouse("mlwarehouse")
API-Referenz¶
Die Snowflake ML API-Referenz enthält die Dokumentation zu allen öffentlich freigegebenen Funktionen. Sie können auch eine ausführliche API-Dokumentation für jede API erhalten, indem Sie die help
-Funktion von Python in einer interaktiven Python-Sitzung verwenden. Beispiel:
from snowflake.ml.modeling.preprocessing import OneHotEncoder
help(OneHotEncoder)