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 permettant d’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 de votre choix.

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 comprend une collection d’APIs Python qui vous permet de développer des modèles efficacement à l’intérieur de Snowflake.

  • Le paquet de modélisation (snowflake.ml.modeling), qui 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 tirent parti 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és sur des bibliothèques ML familières, notamment scikit-learn, xgboost et lightgbm.

  • Un ensemble à venir de connecteurs de frameworks qui 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, une suite de fonctions à venir, 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. Pour un accès anticipé à la documentation relative à ces fonctions, contactez votre représentant 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 de commodité pour travailler avec ces données.

  • 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).

Premiers pas avec Snowpark ML

Toutes les fonctions de Snowpark ML sont disponibles dans une seule bibliothèque. Vous pouvez l’installer à partir d’un fichier que nous fournissons via un canal conda local ou à partir de PyPi. Un canal conda officiel sera disponible à l’avenir ; cependant, le téléchargement du paquet directement depuis notre site restera le meilleur moyen d’obtenir la dernière version.

Mise en place de Snowpark Python

Snowpark ML fonctionne avec Snowpark Python. Voir Configuration de votre environnement de développement pour Snowpark Python pour les instructions d’installation et de configuration de Snowpark Python.

Installation de Snowpark ML à partir d’une chaîne locale de conda

Tout d’abord, créez un canal conda local. Conda recevra alors les fichiers depuis ce canal et les installera dans votre environnement conda. Vous ne devez effectuer ces démarches qu’une seule fois.

  1. Installez conda-build.

    conda install conda-build
    
    Copy
  2. Créez un répertoire quelque part sur votre ordinateur pour stocker les fichiers du canal. Vous pouvez utiliser n’importe quel nom.

    mkdir -p ~/conda-snowpark-ml
    
    Copy
  3. Téléchargez la dernière version de Snowpark ML depuis notre Google Drive. Chaque version se trouve dans son propre dossier. Ouvrez le dossier qui contient la version souhaitée, puis téléchargez le fichier .tar.bz2 dans ce dossier. Enregistrez-le dans le dossier du canal que vous avez créé à l’étape précédente (par exemple, ~/conda-snowpark-ml).

  4. Créez le canal à l’aide de conda index.

    conda index ~/conda-snowpark-ml
    
    Copy

    Lorsqu’une nouvelle version de Snowpark ML est publiée, téléchargez-la dans le même dossier, puis lancez la même commande conda index pour la rendre disponible dans le canal.

Après avoir créé un canal conda local, vous pouvez installer Snowpark ML dans votre projet. Suivez les étapes suivantes.

  1. Activez l’environnement conda que vous souhaitez utiliser (dans l’exemple, ml-env).

    conda activate ml-env
    
    Copy
  2. Installez le paquet à partir du canal local. Le paquet ML de Snowflake dépend d’autres paquets de Snowflake, spécifiez donc également le canal conda de Snowflake.

    conda install -c file://path/to/conda-snowpark-ml -c https://repo.anaconda.com/pkgs/snowflake/ \
    https://repo.anaconda.com/pkgs/snowflake/ snowflake-ml-python
    
    Copy

    Cette commande doit être saisie sur une seule ligne.

    Notez que vous devez spécifier le chemin réel du dossier du canal que vous avez créé précédemment. Ce chemin peut être différent de celui que vous avez utilisé dans les étapes précédentes, où vous pouviez utiliser ~ comme raccourci vers votre répertoire personnel.

Installation de Snowpark ML à partir de PyPI

Vous pouvez également 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.

  1. Activez votre environnement virtuel Python si vous en utilisez un.

    source .venv/bin/activate
    
    Copy
  2. Installez le paquet Snowpark ML.

    python -m pip install snowflake-ml-python
    
    Copy

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.

Consultez 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.

Contactez votre représentant Snowflake pour un accès anticipé à la documentation sur les fonctions à venir.

Référence API

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

Une référence préliminaire de l’API est disponible sur notre Google Drive en tant qu’archive ZIP. Téléchargez le fichier de référence de l’API, décompressez-le et ouvrez le fichier index.html dans le dossier obtenu.