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 Snowflake 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¶
Créez l’environnement conda dans lequel vous installerez Snowflake ML. Si vous préférez utiliser un environnement existant, ignorez cette étape.
conda create --name snowpark-ml
Activez l’environnement conda :
conda activate snowflake-ml
Installer
snowflake-ml-python
à partir du canal conda Snowflakeconda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ snowflake-ml-python
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 Snowflake 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.
Créez et activez votre environnement virtuel Python :
python3 -m virtualenv venv source venv/bin/activate
Installez le paquet
snowflake-ml-python
:python -m pip install snowflake-ml-python
Installation des dépendances en option¶
Certaines APIs nécessitent des dépendances qui ne sont pas installées comme des dépendances de snowflake-ml-python
. Par défaut, scikit-learn est installé. Les autres paquets tels que lightgbm, xgboost, keras, pytorch et autres sont des dépendances en option.
Si vous planifiez d’utiliser le module snowflake.ml.modeling.lightgbm
, installez lightgbm. Utilisez les commandes suivantes pour activer votre environnement conda et installer lightgbm depuis le canal conda Snowflake.
conda activate snowflake-ml
conda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ lightgbm
Utilisez les commandes suivantes pour activer votre environnement virtuel et installer lightgbm à l’aide de pip
.
source venv/bin/activate
python -m pip install 'snowflake-ml-python[lightgbm]'
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()
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()
Spécification d’un entrepôt.¶
Beaucoup de fonctionnalités Snowflake ML, 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 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()
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")
Référence API¶
La référence API de Snowflake 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)