Snowflake Feature Store¶
Note
L’API Snowflake Feature Store est disponible dans le paquet Snowpark ML Python (snowflake-ml-python
) v1.5.0 et ultérieure.
Le Snowflake Feature Store permet aux scientifiques des données et aux ingénieurs de ML de créer, maintenir et utiliser des caractéristiques de ML de la science des données et des charges de travail de ML, le tout dans Snowflake.
De manière générale, les caractéristiques sont des éléments de données utilisés comme entrées dans un modèle de machine learning. De nombreuses colonnes d’un ensemble de données, telles que la température ou la présence, peuvent être utilisées telles quelles comme caractéristiques. Dans d’autres cas, une colonne peut être rendue plus utile pour l’entraînement via le prétraitement et la transformation. Par exemple, vous pouvez dériver une caractéristique de jour de la semaine à partir d’un horodatage pour permettre au modèle de détecter des modèles hebdomadaires. D’autres transformations de caractéristiques courantes impliquent l’agrégation, la différenciation ou le décalage temporel des données. L”ingénierie des caractéristiques est le processus qui consiste à décider des caractéristiques nécessaires à vos modèles et à définir la manière dont elles seront dérivées des données brutes.
Un Feature Store vous permet de standardiser les transformations de caractéristiques couramment utilisées dans un référentiel central, permettant ainsi la réutilisation, contribuant à réduire la duplication des données et des efforts et améliorant la productivité. Il permet également de maintenir les caractéristiques en les mettant à jour sur de nouvelles données sources, en fournissant toujours des caractéristiques correctes, cohérentes et récentes dans une source unique de vérité. En cultivant la cohérence dans la façon dont les caractéristiques sont extraites des données brutes, un Feature Store peut également vous aider à améliorer vos pipeplines ML de production plus robustes.
Snowflake Feature Store est conçu pour faciliter la création, le stockage et la gestion des fonctionnalités pour les charges de travail de science des données et de machine learning. Hébergé nativement dans Snowflake, le Snowflake Feature Store offre les avantages suivants :
Vos données restent sécurisées, entièrement sous votre contrôle et votre gouvernance, et ne quittent jamais Snowflake.
L’UI de Snowsight Feature Store facilite la recherche et la découverte de caractéristiques.
L’accès est géré avec précision avec le contrôle d’accès basé sur les rôles.
Les principaux avantages du Snowflake Feature Store incluent la prise en charge des points suivants :
Données par lots et en streaming, avec des mises à jour automatiques efficaces à mesure que de nouvelles données arrivent
Remplissez et corrigez les caractéristiquess à un moment précis avec ASOF JOIN
Transformations de caractéristiques créées en Python ou SQL
Mise à jour et actualisation automatiques des valeurs des caractéristiques à partir des données sources avec les vues de caractéristiques gérées par Snowflake
Possibilité d’utiliser des pipelines de caractéristiques gérés par l’utilisateur avec des outils externes tels que dbt
Le Snowflake Feature Store est entièrement intégré au Snowflake Model Registry et d’autres fonctionnalités de ML Snowflake pour un ML de production de bout en bout.
L’illustration suivante montre comment le Snowflake Feature Store s’intègre dans un pipeline de machine learning :

Les données brutes peuvent être obtenues par lots à partir de tables ou de vues ou à partir de sources de données en streaming.
Les données brutes sont ensuite transformées par des fonctionnalités définies par les ingénieurs de données, ce qui donne lieu à une table des fonctionnalités.
La table des fonctionnalités peut être utilisée pour générer des ensembles de données d’entraînement utilisés pour les modèles d’entraînement dans Snowpark ML, ou pour enrichir les données de test utilisées par le modèle pour faire des prédictions.
Comment cela fonctionne-t-il ?¶
Note
Un Feature Store dans Snowflake est simplement un schéma. Vous pouvez créer un nouveau schéma à utiliser comme Feature Store ou utiliser un schéma existant.
Un Feature Store contient des vues de fonctionnalités. Une vue de fonctionnalités encapsule un pipeline Python ou SQL permettant de transformer des données brutes en une ou plusieurs caractéristiques connexes. Toutes les caractéristiques définies dans une vue de fonctionnalité sont actualisées à partir des données sources en même temps.
Astuce
Les utilisateurs qui ont accès à plusieurs Feature Stores peuvent combiner des vues de fonctionnalités provenant de plusieurs Feature Stores pour créer des ensembles de données d’entraînement et d’inférence
Le Snowflake Feature Store prend en charge deux types de vues de fonctionnalités :
Gérée par Snowflake : le Snowflake Feature Store actualise les fonctionnalités dans la vue des fonctionnalités pour vous, de manière incrémentielle et efficace, selon un calendrier que vous spécifiez.
Externe : un autre processus en dehors du Feature Store gère les fonctionnalités dans la vue des fonctionnalités. Ce type de vue de fonctionnalités est destiné à être utilisé avec des outils tels que dbt.
Les vues de fonctionnalités sont organisées dans le Feature Store en fonction des entités auxquelles elles s’appliquent. Une entité est une abstraction de niveau supérieur qui représente l’objet d’une fonctionnalité. Par exemple, dans un Feature Store pour un service de streaming de films, les principales entités peuvent être les utilisateurs et les films. Les données brutes relatives aux films et à l’activité des utilisateurs peuvent être converties en fonctions utiles telles que la durée de visionnage d’un film et la durée de la session de l’utilisateur. Les vues de fonctionnalités contenant ces fonctionnalités peuvent être balisées avec des entités pertinentes.
Modèle de données back-end¶
Les objets du Feature Store ont implémentés en tant qu’objets Snowflake. Tous les objets du Feature Store sont donc soumis aux règles de contrôle d’accès de Snowflake.
Objet du Feature Store |
Objet Snowflake |
---|---|
Feature Store |
|
vue des fonctions |
|
entité |
|
fonctionnalité |
colonne dans une table dynamique ou dans une vue |
Les propriétés des vues de fonctionnalités (telles que le nom et l’entité) sont implémentées en tant que balises sur les tables ou vues dynamiques.
Vous pouvez effectuer des requêtes ou manipuler les objets Snowflake à l’aide de SQL. Les modifications que vous apportez via SQL sont reflétées dans l’API Python et inversement.
Astuce
Tous les objets d’un Snowflake Feature Store sont stockés dans le schéma du Feature Store. Pour supprimer complètement un Feature Store, assurez-vous que le schéma ne contient aucune autre ressource, puis supprimez le schéma.
Prise en main¶
Note
L’API Snowflake Feature Store Python fait partie du paquet Python de Snowpark ML, snowflake-ml-python
. Vous pouvez l’utiliser sur votre système local dans votre IDE Python préféré ou dans une feuille de travail ou un notebook Snowsight. Pour plus de détails, voir APIs Python pour Snowflake ML.
Commencez votre voyage avec Présentation du Snowflake Feature Store pour une introduction aux concepts du Snowflake Feature Store. Ensuite, faites une révision avec des Démarrages rapides de Snowflake, y compris :
Développer et gérer des modèles de ML avec le Snowflake Feature Store et le registre de modèles. Il s’agit d’une démonstration du cycle de développement ML complet avec le Feature Store et le registre de modèles.
Premiers pas avec l’API Snowflake Feature Store. Ceci est un aperçu des APIs Feature Store Python.
Guide avancé du Snowflake Feature Store. Il s’agit d’un exemple plus avancé du Feature Store et des pipelines.
Premiers pas avec Snowflake Feature Store et dbt. Ceci montre comment enregistrer des fonctionnalités à partir d’un pipeline DBT dans Snowflake Feature Store.
Voir Fonctionnalités communes et modèles de requête pour des exemples de types spécifiques de transformations de fonctionnalités.
Note
Ici, ce ne sont que des exemples, et si vous suivez l’exemple, vous pourriez avoir besoin de droits supplémentaires sur des données, des produits ou des services tiers qui ne sont pas détenus ou fournis par Snowflake. Snowflake ne garantit pas l’exactitude de ces exemples.