APIs Python pour Snowflake ML

Le paquet snowflake-ml-python Python fournit des APIs Python qui se connectent aux différents composants de flux de travail Snowflake ML et comprend également des APIs pour construire et entraîner vos propres modèles. Vous pouvez utiliser ces APIs dans votre IDE Python préféré sur votre propre poste de travail, dans des feuilles de calcul Snowsight ou dans des Notebooks Snowflake.

Astuce

Voir Introduction au machine learning avec Snowpark ML pour un exemple de workflow de bout en bout avec cette bibliothèque.

Utilisation de Snowflake ML dans Snowflake Notebooks

Snowflake Notebooks fournit une interface de notebook facile à utiliser pour votre travail sur les données, mélangeant Python, SQL, et Markdown. Pour utiliser les fonctionnalités de ML Snowflake, choisissez le paquet Anaconda snowflake-ml-python en utilisant le menu Packages en haut du carnet.

Les Notebooks prennent en charge les deux options d’exécution de CPU et de GPU. De nombreux types de modèles nécessitent ou bénéficient d’un GPU disponible.

Important

Le paquet snowflake-ml-python et ses dépendances doivent être autorisés par la politique de paquets de votre entreprise.

Utilisation de Snowflake ML dans Snowsight Worksheets

Snowsight Worksheets fournit une méthode puissante et polyvalente pour exécuter du code Python. Pour utiliser les fonctionnalités de ML Snowflake dans les feuilles de calcul, choisissez le paquet Anaconda snowflake-ml-python en utilisant le menu Packages en haut de la feuille de calcul.

Important

Le paquet snowflake-ml-python et ses dépendances doivent être autorisés par la politique de paquets de votre entreprise.

Utilisation de Snowflake ML en local

Vous devez installer le paquet snowflake-ml-python pour développer sur votre propre poste de travail ou ailleurs en dehors de Snowflake. Toutes les fonctions de Snowpark ML sont disponibles dans un seul paquet, snowflake-ml-python. Vous pouvez installer le paquet depuis le canal conda de Snowflake en utilisant la commande conda ou depuis le Python Package Index (PyPI) en utilisant pip. Conda est conseillé.

Installation du canal conda Snowflake

Important

L’installation de snowflake-ml-python à partir de conda sur un Mac basé sur arm (avec une puce M1 ou M2) nécessite de spécifier l’architecture du système lors de la création de l’environnement conda. Pour ce faire, incluez CONDA_SUBDIR=osx-arm64 dans la commande conda create : CONDA_SUBDIR=osx-arm64 conda create --name snowpark-ml.

  1. Créez l’environnement conda dans lequel vous installerez Snowpark ML : Si vous préférez utiliser un environnement existant, ignorez cette étape.

    conda create --name snowpark-ml
    
    Copy
  2. Activez l’environnement conda :

    conda activate snowpark-ml
    
    Copy
  3. Installez snowflake-ml-python à partir du canal conda Snowflake :

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

Astuce

Installez les paquets à partir du canal conda Snowflake chaque fois que cela est possible pour vous assurer de recevoir les paquets qui ont été validés avec Snowpark ML.

Installation à partir de PyPI

Vous pouvez installer snowflake-ml-python à partir de l’index des paquets Python (PyPI) en utilisant le gestionnaire de paquets Python standard, pip.

Avertissement

N’utilisez pas cette procédure d’installation si vous utilisez un environnement conda. Utilisez plutôt les instructions conda.

  1. Allez dans le répertoire de votre projet et activez votre environnement virtuel Python :

    cd ~/projects/ml
    source .venv/bin/activate
    
    Copy
  2. Installez le paquet snowflake-ml-python :

    python -m pip install snowflake-ml-python
    
    Copy

Installation de dépendances de modélisation en option

Certaines APIs de modélisation nécessitent des dépendances qui ne sont pas installées comme des dépendances de snowflake-ml-python. Les paquets scikit-learn et xgboost sont installés par défaut, mais lightgbm est une dépendance en option. Si vous prévoyez d’utiliser des classes dans l’espace de noms snowflake.ml.modeling.lightgbm, installez vous-même lightgbm.

Utilisez les commandes suivantes pour activer votre environnement conda et installer lightgbm depuis le canal conda Snowflake.

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

Utilisez les commandes suivantes pour activer votre environnement virtuel et installer lightgbm à l’aide de pip.

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

Snowflake peut ajouter des dépendances en option supplémentaires de temps en temps. Pour installer toutes les dépendances en option à l’aide de pip :

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

Mise en place de Snowpark Python

Snowpark Python est une dépendance de snowflake-ml-python et est installé automatiquement avec. Si Snowpark Python n’est pas déjà installé sur votre système, il se peut que vous deviez effectuer des étapes de configuration supplémentaires. Voir Configuration de votre environnement de développement pour Snowpark Python pour les instructions d’installation de Snowpark Python.

Connexion à Snowflake

Avant d’utiliser les fonctionnalités ML de Snowflake en Python, connectez-vous à Snowflake à l’aide d’un objet Session Snowpark. Utilisez la fonction SnowflakeLoginOptions du module snowflake.ml.utils.connection_params pour obtenir les paramètres de configuration permettant de créer la session. La fonction peut lire les paramètres de la connexion à partir d’une connexion nommée dans votre fichier de configuration SnowSQL ou à partir des variables d’environnement que vous avez définies. Elle renvoie un dictionnaire contenant ces paramètres, qui peut être utilisé pour créer une connexion.

Les exemples suivants lisent les paramètres de connexion à partir de la connexion nommée myaccount dans le fichier de configuration SnowSQL. Pour créer une session Snowpark Python, créez un constructeur pour la classe Session et transmettez les informations de connexion à la méthode configs du constructeur :

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

Vous pouvez maintenant transmettre la session à toute session qui en a besoin.

Astuce

Pour créer une session Snowpark Python à partir d’une connexion Snowflake Connector pour Python, transmettez l’objet de connexion au constructeur de session. Ici, connection est la connexion du connecteur Snowflake pour Python.

session = Session.builder.configs({"connection": connection}).create()
Copy

Spécification d’un entrepôt.

Beaucoup de fonctionnalités de ML Snowflake, telles que l’entraînement ou l’inférence de modèles, exécutent du code dans un entrepôt Snowflake. Ces opérations sont exécutées dans l’entrepôt spécifié par la session que vous utilisez pour vous connecter. Par exemple, si vous créez une session à partir d’une connexion nommée dans votre fichier de configuration SnowSQL, vous pouvez spécifier un entrepôt en utilisant le paramètre warehousename dans la configuration nommée.

Vous pouvez ajouter le paramètre d’entrepôt lors de la création de l’objet Session comme indiqué ici, s’il n’existe pas déjà dans la configuration.

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

Si aucun entrepôt n’est spécifié dans la session ou si vous souhaitez utiliser un autre entrepôt, appelez la méthode use_warehouse de la session pour spécifier un entrepôt.

sp_session.use_warehouse("mlwarehouse")
Copy

Référence API

La référence API de Snowpark ML comprend la documentation sur toutes les fonctionnalités publiées. Vous pouvez également obtenir une documentation d’API détaillée sur n’importe quelle API en utilisant la fonction help de Python dans une session interactive de Python. Par exemple :

from snowflake.ml.modeling.preprocessing import OneHotEncoder

help(OneHotEncoder)
Copy