Développement de modèles de ML Snowflake¶
Snowflake ML est une plateforme très flexible qui vous permet d’utiliser votre code open-source (OSS) pour entraîner des modèles de machine learning directement sur vos données. Cette approche élimine la nécessité de déplacer des données complexes tout en vous permettant d’utiliser vos bibliothèques, outils et processus de développement ML préférés.
Snowflake ML s’intègre aux sources de données compatibles avec Snowflake pour accélérer les flux de travail ML à l’aide de pipelines d’ingestion de données optimisés. Les APIs distribuées avancées permettent une mise à l’échelle efficace de l’entraînement et de l’ajustement des modèles. Vous pouvez accéder à toutes les fonctions ML de Snowflake à partir d’un environnement notebook avec une image d’exécution ML, ce qui vous évite de devoir gérer les paquets et l’infrastructure.
Entraîner et optimiser vos modèles¶
Construire avec Notebooks sur Container Runtime¶
Container Runtime pour ML fournit un environnement ML prédéfini avec les paquets les plus courants. Vous pouvez ajouter en toute sécurité des bibliothèques provenant de référentiels PyPI publics ou privés pour personnaliser votre environnement. Ses APIs distribuées vous permettent de transformer les données et d’exécuter des flux de travail AI/ML à l’échelle.
En plus d’utiliser les APIs distribuées de Snowflake pour mettre à l’échelle vos flux de travail, vous pouvez également utiliser Ray. Ray est un cadre open-source qui fournit un moyen simple et flexible de faire évoluer les applications Python. Il vous permet d’exécuter votre code en parallèle sur plusieurs nœuds. Pour plus d’informations sur l’utilisation de Ray avec Snowflake ML, consultez le Guide de prise en main de Ray.

Les notebooks de Container Runtime sont des notebooks Snowflake intégrés au Container Runtime. Ils offrent des fonctions telles qu’une image d’environnement d’exécution ML prédéfinie, le traitement distribué, les pools de calcul CPU et les pools de calcul GPU. Si vous êtes un scientifique des données ou un ingénieur ML, les notebooks Container Runtime peuvent être particulièrement utiles pour vos tâches de développement ML.
Exécution distante à partir de n’importe quel IDE externe¶
Vous pouvez également utiliser votre IDE externe préféré, tel que Visual Studio Code ou un notebook Jupyter basé sur le Cloud, et exécuter à distance les flux de travail ML dans le Container Runtime. Pour exécuter vos flux de travail à distance, annotez votre code Python, vos fonctions ou vos fichiers et exécutez-les dans une instance Container Runtime. Pour plus d’informations, voir Exécuter une fonction Python en tant que tâche Snowflake ML.
Développer votre code¶
Ingérer des données directement dans des objets open source¶
Utilisez le Data Connector pour un chargement optimisé des données depuis vos tables et zones de préparation Snowflake dans des objets open source tels que les dataframes pandas, les ensembles de données PyTorch et les ensembles de données TensorFlow. Data Connector utilise le traitement distribué du Container Runtime pour accélérer l’ingestion. Une fois chargées, vous pouvez utiliser les données avec n’importe quelle bibliothèque open-source.
Grâce au Data Connector, vous pouvez charger des données structurées et non structurées provenant de sources multiples. Outre sa polyvalence, il offre de meilleures performances que to_pandas
pour charger de grands ensembles de données.
Entraîner avec les cadres OSS¶
Nous vous recommandons d’utiliser votre code open source existant ou d’entraîner les modèles directement dans Snowflake avec des bibliothèques open source.
Vous pouvez utiliser les fonctions suivantes pour vos flux de travail ML Snowflake :
Importez des fonctions développées et gérées dans Snowflake Feature Store.
Utilisez Snowpark pour mettre à l’échelle le prétraitement et la transformation de vos données.
Mettez vos données en mémoire avec les APIs du Data Connector.
Tirez parti des derniers frameworks OSS pour concevoir des fonctions, entraîner des modèles et les évaluer.
Faire évoluer les charges de travail à l’aide des APIs distribuées¶
L’entraînement des modèles ML sur de grands ensembles de données peut dépasser les ressources d’un seul nœud. Grâce aux APIs distribuées de Snowflake, vous pouvez mettre à l’échelle les flux de travail d’ingénierie des fonctions et d’entraînement sur plusieurs nœuds afin d’améliorer les performances. Avec les APIs distribuées, vous pouvez faire ce qui suit :
Tirer parti des fonctions de prétraitement distribuées dans snowflake.ml.modeling.preprocessing.
Mettre à l’échelle l’entraînement de votre modèle sur un ou plusieurs nœuds à l’aide des APIs d’entraînement optimisées dans Container Runtime pour ML.
Ajuster les hyperparamètres à l’aide d’un HPO distribué¶
Accélérer le réglage des hyperparamètres avec le HPO distribué de Snowflake ML, optimisé pour les données stockées dans Snowflake. Vous pouvez également utiliser des bibliothèques open source comme hyperopt ou optuna.
Opérationnaliser les flux de travail d’entraînement¶
Tâches Snowflake ML vous permettent d’exécuter à distance des charges de travail ML basées sur Python, ce qui facilite l’opérationnalisation des travaux développés de manière interactive dans des environnements tels que les notebooks de Snowflake. Cela garantit un entraînement et une notation ML sûrs et reproductibles, et une intégration parfaite aux pipelines CI/CD.
Planifier l’exécution périodique des tâches et des pipelines ML¶
Utilisez Introduction aux tâches pour construire des DAGs complexes afin de représenter des pipelines d’entraînement ML, où chaque tâche correspond à une phase de votre flux de travail. Ces pipelines peuvent s’exécuter selon une planification ou être déclenchés par des événements. Vous pouvez allouer des ressources à chaque étape en fonction des besoins, ce qui permet d’optimiser votre pipeline. Snowsight fournit des outils intégrés pour afficher, gérer et modifier ces pipelines.
Grâce à l’intégration git de Snowflake, vous pouvez également configurer des hooks git pour construire et déclencher les pipelines ML qui correspondent le mieux à votre configuration CI/CD.