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

  1. 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
    
    Copy
  2. Aktivieren Sie die Conda-Umgebung:

    conda activate snowflake-ml
    
    Copy
  3. Installieren Sie snowflake-ml-python aus dem Snowflake-conda-Kanal

    conda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ snowflake-ml-python
    
    Copy

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.

  1. Erstellen und aktivieren Sie Ihre virtuelle Python-Umgebung:

    python3 -m virtualenv venv
    source venv/bin/activate
    
    Copy
  2. Installieren Sie das snowflake-ml-python-Paket:

    python -m pip install snowflake-ml-python
    
    Copy

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
Copy

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]'
Copy

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()
Copy

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()
Copy

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()
Copy

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")
Copy

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)
Copy