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. Sämtliche Features von Snowpark ML sind im Paket snowflake-ml-python verfügbar. 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

Wichtig

Die Installation von snowflake-ml-python aus conda auf einem arm-basierten Mac (mit M1- oder M2-Chip) erfordert beim Erstellen der conda-Umgebung die Angabe der Systemarchitektur. Fügen Sie dazu CONDA_SUBDIR=osx-arm64 in den conda create-Befehl ein: CONDA_SUBDIR=osx-arm64 conda create --name snowpark-ml.

  1. Erstellen Sie die Conda-Umgebung, in der Sie Snowpark 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 snowpark-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 Snowpark 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. Wechseln Sie in Ihr Projektverzeichnis, und aktivieren Sie Ihre virtuelle Python-Umgebung:

    cd ~/projects/ml
    source .venv/bin/activate
    
    Copy
  2. Installieren Sie das snowflake-ml-python-Paket:

    python -m pip install snowflake-ml-python
    
    Copy

Installieren von optionalen Modellierungsabhängigkeiten

Einige Modeling-APIs erfordern Abhängigkeiten, die nicht als Abhängigkeiten von snowflake-ml-python installiert sind. Die Pakete scikit-learn und xgboost werden standardmäßig installiert, aber lightgbm ist eine optionale Abhängigkeit. Wenn Sie Klassen im snowflake.ml.modeling.lightgbm-Namespace verwenden möchten, müssen Sie lightgbm selbst installieren.

Verwenden Sie die folgenden Befehle, um Ihre conda-Umgebung zu aktivieren und lightgbm aus dem Snowflake-Conda-Kanal zu installieren.

conda activate snowpark-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.

.venv/bin/activate
python -m pip install 'snowflake-ml-python[lightgbm]'
Copy

Snowflake kann von Zeit zu Zeit zusätzliche optionale Abhängigkeiten hinzufügen. So installieren Sie alle optionalen Abhängigkeiten mit pip:

.venv/bin/activate
python -m pip install 'snowflake-ml-python[all]'
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 Funktionen von Snowflake ML, z. B. das Training von Modellen oder die 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 SnowQSL configuration file
params = connection_params.SnowflakeLoginOptions("myaccount")
# 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 Snowpark 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