Snowpark ML : boîte à outils de machine learning pour Snowflake¶
Snowpark ML est un ensemble d’outils, contenant notamment des SDKs et l’infrastructure sous-jacente, pour développer et déployer des modèles de machine learning. Avec Snowpark ML, vous pouvez prétraiter les données et former, gérer et déployer des modèles ML, le tout dans Snowflake. Vous bénéficiez des performances, de l’évolutivité, de la stabilité et de la gouvernance éprouvées de Snowflake à chaque étape du workflow de machine learning.
Snowpark ML fonctionne avec Snowpark Python. Vous pouvez ainsi utiliser des DataFrames Snowpark pour contenir vos données d’entraînement ou de test et pour recevoir vos résultats de prédiction.
Vous pouvez utiliser Snowpark ML lorsque vous écrivez des applications client Snowpark Python dans un IDE compatible.
Composants clés de Snowpark ML¶
Snowpark ML fournit des APIs pour prendre en charge chaque zone de préparation d’un processus de développement et de déploiement de machine learning de bout en bout, et comprend deux composants clés : Snowpark ML Development et Snowpark ML Ops.
Snowpark ML Development¶
Snowpark ML Development comprend une collection d’APIs Python que vous pouvez utiliser pour développer des modèles efficacement à l’intérieur de Snowflake.
Le paquet de modélisation (
snowflake.ml.modeling
) fournit des APIs pour le prétraitement des données, l’ingénierie des fonctions et l’entraînement des modèles. Le paquet comprend également un module de prétraitement avec des APIs qui utilisent des ressources de calcul fournies par un Entrepôts optimisés pour Snowpark pour fournir des transformations de données évolutives. Ces APIs sont basées sur des bibliothèques ML familières, notamment scikit-learn, xgboost et lightgbm.Un ensemble à venir de connecteurs de frameworks fournissent un approvisionnement en données optimisé, sécurisé et performant pour les frameworks Pytorch et Tensorflow dans leurs formats de chargeur de données natifs. Pour un accès anticipé à la documentation, contactez votre représentant Snowflake.
Snowpark ML Ops¶
Snowpark ML Ops complète l’API Snowpark ML Development en fournissant des capacités de gestion de modèles et un déploiement intégré dans Snowflake.
L”API FileSet fournit une API compatible Python fsspec pour matérialiser les données dans une zone de préparation interne de Snowflake à partir d’une requête ou d’un DataFrame Snowpark, ainsi qu’un certain nombre de méthodes pratiques pour travailler avec les données et alimenter PyTorch et TensorFlow avec.
Le registre des modèles est une API Python permettant de gérer les modèles au sein de Snowflake et de les déployer dans des entrepôts Snowflake en tant que fonctions vectorisées définies par l’utilisateur (UDFs). Pour un accès anticipé à la documentation du registre des modèles, contactez votre représentant Snowflake.
Installation de Snowpark ML¶
Toutes les fonctions de Snowpark ML sont disponibles dans un seul paquet, snowflake-ml-python
.
Vous pouvez installer Snowpark ML 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 de Snowpark ML à partir du canal conda Snowflake¶
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
Activez l’environnement conda :
conda activate snowpark-ml
Installez Snowpark ML depuis le canal conda Snowflake :
conda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ snowflake-ml-python
Astuce
Lorsque vous travaillez à partir de Snowpark ML, installez les paquets du dépôt Snowflake dans la mesure du possible. Vous êtes ainsi assuré de recevoir des paquets qui ont été validés avec Snowpark ML.
Installation de Snowpark ML à partir de PyPI¶
Vous pouvez installer le paquet Snowpark ML à 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.
Allez dans le répertoire de votre projet et activez votre environnement virtuel Python :
cd ~/projects/ml source .venv/bin/activate
Installez le paquet Snowpark ML.
python -m pip install snowflake-ml-python
Mise en place de Snowpark Python¶
Snowpark Python est une dépendance de Snowpark ML et est installé automatiquement lorsque vous installez Snowpark ML. Si Snowpark Python n’est pas 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.
Authentification à Snowflake¶
Certaines parties de Snowpark ML nécessitent que vous vous authentifiiez auprès de Snowflake. Vous pouvez le faire avec un objet Connecteur Snowflake pour Python Connection
ou une Session
Snowpark Python. Les deux méthodes sont équivalentes ; utilisez celle qui convient le mieux à votre application.
Utilisez la fonction SnowflakeLoginOptions
du module snowflake.ml.utils.connection_params
pour obtenir les paramètres de configuration permettant de créer la connexion ou 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 ou une session. 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 connexion Connecteur Snowflake pour Python, transmettez les informations de configuration renvoyées par connection_params
à snowflake.connector.connect
:
from snowflake import connector
from snowflake.ml.utils import connection_params
params = connection_params.SnowflakeLoginOptions("myaccount")
sf_connection = connector.connect(**params)
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 connexion ou la session à toute fonction de Snowpark ML qui en a besoin.
Considérations relatives aux clients¶
Lorsque vous entraînez et utilisez des modèles dans Snowflake, vous exécutez le code dans un entrepôt virtuel, ce qui entraîne des coûts de calcul. Ces coûts varient en fonction du type de modèle et de la quantité de données utilisées pour la formation et la prédiction.
Voir Comprendre le coût du calcul pour obtenir des informations générales sur les coûts de calcul de Snowflake.
Autres lectures¶
Consultez les ressources suivantes pour obtenir des informations sur Snowpark ML Modeling et Snowpark ML Ops.
Modélisation
Le dossier Examples dans le Google Drive Snowpark ML contient des Jupyter notebooks pour explorer les fonctions de Snowpark ML.
Ops
Contactez votre représentant Snowflake pour un accès anticipé à la documentation sur les fonctions à venir.
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étaillée sur l’API pour n’importe quelle classe en utilisant la fonction help
de Python dans une session interactive de Python. Par exemple :
from snowflake.ml.modeling.preprocessing import OneHotEncoder
help(OneHotEncoder)