Dépôt centralisé stockant, versionnant et servant des fonctionnalités ML avec des métadonnées et des contrôles d'accès, permettant la réutilisation et la cohérence entre les environnements

Ce blog a été initialement publié par Tecton.ai, qui a été acquise par Databricks en août 2025. Depuis cette acquisition, Databricks Feature Store a lancé Declarative Feature APIs, une puissante abstraction pour l'expérimentation de fonctionnalités qui automatise la création de pipelines de fonctionnalités gérés pour les données par lots et en streaming.
Mis à jour le : 15 mai 2025
À propos des auteurs :
Mike Del Balso, PDG et cofondateur de Tecton
Willem Pienaar, Créateur de Feast
Les équipes de données commencent à réaliser que le machine learning opérationnel nécessite de résoudre des problèmes de données qui vont bien au-delà de la création de pipelines de données.
Dans un précédent article, Pourquoi nous avons besoin de DevOps pour les données ML, nous avons mis en évidence certains des défis clés en matière de données auxquels les équipes sont confrontées lors de la mise en production des systèmes ML.
Les systèmes de données de production, qu'il s'agisse d'analyse à grande échelle ou de streaming en temps réel, ne sont pas nouveaux. Cependant, le machine learning opérationnel — l'intelligence basée sur le ML intégrée aux applications destinées aux clients — est nouveau pour la plupart des équipes. Le défi de déployer le machine learning en production à des fins opérationnelles (par exemple, les systèmes de recommandation, la détection de fraude, la personnalisation, etc.) introduit de nouvelles exigences pour nos outils de données.
Un nouveau type d'infrastructure de données spécifique au ML émerge pour rendre cela possible.
De plus en plus, les équipes de science des données et d'ingénierie des données se tournent vers les feature stores pour gérer les ensembles de données et les pipelines de données nécessaires à la mise en production de leurs applications ML. Cet article décrit les composants clés d'un feature store moderne et comment la somme de ces éléments agit comme un multiplicateur de force pour les organisations en réduisant la duplication des efforts d'ingénierie des données, en accélérant le cycle de vie du machine learning et en débloquant un nouveau type de collaboration entre les équipes de science des données.
| Petit rappel : en ML, une fonctionnalité (feature) est une donnée utilisée comme signal d'entrée pour un modèle prédictif. |
| Par exemple, si une société de cartes de crédit tente de prédire si une transaction est frauduleuse, une fonctionnalité utile pourrait être si la transaction a lieu dans un pays étranger, ou comment la taille de cette transaction se compare à la transaction typique du client. Lorsque nous faisons référence à une fonctionnalité, nous faisons généralement référence au concept de ce signal (par exemple, « transaction_in_foreign_country »), et non à une valeur spécifique de la fonctionnalité (par exemple, pas « la transaction #1364 a eu lieu dans un pays étranger »). |
![]() |
« L'interface entre les modèles et les données »
Nous avons introduit les feature stores pour la première fois dans notre article de blog décrivant la plateforme Michelangelo d'Uber. Les feature stores sont depuis devenus un composant nécessaire de la pile de machine learning opérationnel.
Les avantages d'un feature store incluent :
Les feature stores visent à résoudre l'ensemble des problèmes de gestion des données rencontrés lors de la construction et de l'exploitation d'applications ML opérationnelles.
Un feature store est un système de données spécifique au ML qui :

Pour prendre en charge une gestion simple des fonctionnalités, les feature stores fournissent des abstractions de données qui facilitent la construction, le déploiement et la compréhension des pipelines de fonctionnalités dans différents environnements. Par exemple, ils facilitent la définition d'une transformation de fonctionnalité une seule fois, puis le calcul et le service de ses valeurs de manière cohérente dans l'environnement de développement (pour l'entraînement sur des valeurs historiques) et l'environnement de production (pour l'inférence avec des valeurs de fonctionnalités fraîches).
Les feature stores agissent comme un hub central pour les données et les métadonnées des fonctionnalités tout au long du cycle de vie d'un projet ML. Les données d'un feature store sont utilisées pour :
Les feature stores apportent des économies d'échelle aux organisations ML en favorisant la collaboration. Lorsqu'une fonctionnalité est enregistrée dans un feature store, elle devient disponible pour une réutilisation immédiate par d'autres modèles au sein de l'organisation. Cela réduit la duplication des efforts d'ingénierie des données et permet aux nouveaux projets ML de démarrer avec une bibliothèque de fonctionnalités prêtes pour la production.

Les feature stores efficaces sont conçus comme des systèmes modulaires qui peuvent être adaptés à l'environnement dans lequel ils sont déployés. Cinq composants principaux constituent généralement un feature store. Dans le reste de cet article, nous allons passer en revue ces composants et décrire leur rôle dans l'alimentation des applications ML opérationnelles.
Un feature store moderne se compose de 5 éléments principaux : Transformation, Stockage, Service, Surveillance et Registre des fonctionnalités.

Dans les sections suivantes, nous donnerons un aperçu de l'objectif et des capacités typiques de chacune de ces sections.
Les magasins de fonctionnalités fournissent des données de fonctionnalités aux modèles. Ces modèles nécessitent une vue cohérente des fonctionnalités entre l'entraînement et le service. Les définitions des fonctionnalités utilisées pour entraîner un modèle doivent correspondre exactement aux fonctionnalités fournies lors du service en ligne. Lorsqu'elles ne correspondent pas, un biais d'entraînement-service est introduit, ce qui peut entraîner des problèmes de performance du modèle catastrophiques et difficiles à déboguer.

Les magasins de fonctionnalités abstraient la logique et le traitement utilisés pour générer une fonctionnalité, offrant aux utilisateurs un moyen simple et canonique d'accéder à toutes les fonctionnalités d'une entreprise de manière cohérente dans tous les environnements où elles sont nécessaires.
Lors de la récupération de données hors ligne (par exemple, pour l'entraînement), les valeurs de fonctionnalités sont généralement accessibles via des SDK de magasins de fonctionnalités compatibles avec les notebooks. Ils fournissent des vues correctes à un instant T de l'état du monde pour chaque exemple utilisé pour entraîner un modèle (également appelé « voyage dans le temps »).
Pour le service en ligne, un magasin de fonctionnalités fournit un seul vecteur de fonctionnalités à la fois, composé des valeurs de fonctionnalités les plus récentes. Les réponses sont servies via une API haute performance, soutenue par une base de données à faible latence.

Les magasins de fonctionnalités persistent les données de fonctionnalités pour prendre en charge la récupération via les couches de service de fonctionnalités. Ils contiennent généralement une couche de stockage en ligne et hors ligne pour répondre aux exigences des différents systèmes de service de fonctionnalités.

Les couches de stockage hors ligne sont généralement utilisées pour stocker des données de fonctionnalités de plusieurs mois ou années à des fins d'entraînement. Les données des magasins de fonctionnalités hors ligne sont souvent stockées dans des entrepôts de données ou des lacs de données comme S3, BigQuery, Snowflake, Redshift. L'extension d'un lac de données ou d'un entrepôt de données existant pour le stockage de fonctionnalités hors ligne est généralement préférée afin d'éviter les silos de données.
Les couches de stockage en ligne sont utilisées pour persister les valeurs de fonctionnalités pour une recherche à faible latence pendant l'inférence. Elles ne stockent généralement que les dernières valeurs de fonctionnalités pour chaque entité, modélisant essentiellement l'état actuel du monde. Les magasins en ligne sont généralement éventuellement cohérents et n'ont pas d'exigences de cohérence strictes pour la plupart des cas d'utilisation du ML. Ils sont généralement implémentés avec des magasins clé-valeur comme DynamoDB, Redis ou Cassandra.

Les magasins de fonctionnalités utilisent un modèle de données basé sur les entités où chaque valeur de fonctionnalité est associée à une entité (par exemple, un utilisateur) et à un horodatage. Un modèle de données basé sur les entités fournit une structure minimale pour prendre en charge la gestion standardisée des fonctionnalités, s'intègre naturellement aux flux de travail courants d'ingénierie des fonctionnalités et permet des requêtes de récupération simples en production.

Les applications de ML opérationnel nécessitent un traitement régulier des nouvelles données en valeurs de fonctionnalités afin que les modèles puissent faire des prédictions en utilisant une vue à jour du monde. Les magasins de fonctionnalités gèrent et orchestrent les transformations de données qui produisent ces valeurs, et ingèrent également les valeurs produites par des systèmes externes. Les transformations gérées par les magasins de fonctionnalités sont configurées par des définitions dans un registre de fonctionnalités commun (décrit ci-dessous).
La plupart des équipes qui débutent avec les magasins de fonctionnalités disposent déjà de pipelines de données existants produisant des valeurs de fonctionnalités. Il est donc très important que les magasins de fonctionnalités soient adoptables progressivement et qu'ils disposent d'intégrations de premier ordre avec les plateformes de données existantes, permettant aux équipes d'opérationnaliser immédiatement les pipelines ETL existants pour leurs cas d'utilisation ML.
Les magasins de fonctionnalités interagissent couramment avec trois principaux types de transformations de données :
| Type de fonctionnalité | Définition | Source de données d'entrée courante | Exemple |
|---|---|---|---|
| Transformation par lots | Transformations appliquées uniquement aux données au repos | Entrepôt de données, lac de données, base de données | Pays de l'utilisateur, catégorie de produit |
| Transformation en flux | Transformations appliquées aux sources de streaming | Kafka, Kinesis, PubSub | Nombre de clics par verticale par utilisateur au cours des 30 dernières minutes, nombre de vues par annonce au cours de la dernière heure |
| Transformation à la demande | Transformations utilisées pour produire des fonctionnalités basées sur des données qui ne sont disponibles qu'au moment de la prédiction. Ces fonctionnalités ne peuvent pas être pré-calculées. | Application orientée utilisateur | L'utilisateur se trouve-t-il actuellement dans un emplacement pris en charge ? |
Un avantage clé est de faciliter l'utilisation de différents types de fonctionnalités ensemble dans les mêmes modèles.

Les modèles ont besoin d'accéder à des valeurs de fonctionnalités récentes pour l'inférence. Les magasins de fonctionnalités y parviennent en recalculant régulièrement les fonctionnalités de manière continue. Les tâches de transformation sont orchestrées pour garantir que les nouvelles données sont traitées et transformées en nouvelles valeurs de fonctionnalités récentes. Ces tâches sont exécutées sur des moteurs de traitement de données (par exemple, Spark ou Pandas) auxquels le magasin de fonctionnalités est connecté.
Le développement de modèles introduit différentes exigences de transformation. Lors de l'itération sur un modèle, de nouvelles fonctionnalités sont souvent conçues pour être utilisées dans des ensembles de données d'entraînement qui correspondent à des événements historiques (par exemple, tous les achats des 6 derniers mois). Pour prendre en charge ces cas d'utilisation, les magasins de fonctionnalités facilitent l'exécution de « tâches de remplissage rétrospectif » (backfill jobs) qui génèrent et persistent les valeurs historiques d'une fonctionnalité pour l'entraînement. Certains magasins de fonctionnalités remplissent automatiquement les fonctionnalités nouvellement enregistrées pour des plages de temps préconfigurées pour les ensembles de données d'entraînement enregistrés.
Le code de transformation est réutilisé dans différents environnements, ce qui prévient le biais d'entraînement-service et libère les équipes de la nécessité de réécrire le code d'un environnement à l'autre.
Les magasins de fonctionnalités gèrent toutes les ressources liées aux fonctionnalités (calcul, stockage, service) de manière holistique tout au long du cycle de vie des fonctionnalités. En automatisant les tâches d'ingénierie répétitives nécessaires pour mettre une fonctionnalité en production, ils offrent un chemin simple et rapide vers la production. Les optimisations de gestion (par exemple, la suppression des fonctionnalités qui ne sont utilisées par aucun modèle, ou la déduplication des transformations de fonctionnalités entre les modèles) peuvent apporter des gains d'efficacité significatifs, d'autant plus que les équipes sont confrontées à une complexité croissante de la gestion manuelle des fonctionnalités.
Lorsque quelque chose ne va pas dans un système ML, il s'agit généralement d'un problème de données. Les magasins de fonctionnalités sont idéalement positionnés pour détecter et faire remonter ces problèmes. Ils peuvent calculer des métriques sur les fonctionnalités qu'ils stockent et servent, décrivant l'exactitude et la qualité. Les magasins de fonctionnalités surveillent ces métriques pour fournir un signal de la santé globale d'une application ML.

Les données de fonctionnalités peuvent être validées sur la base de schémas définis par l'utilisateur ou d'autres critères structurels. La qualité des données est suivie en surveillant la dérive et le biais d'entraînement-service. Par exemple, les données de fonctionnalités servies aux modèles sont comparées aux données sur lesquelles le modèle a été entraîné afin de détecter les incohérences susceptibles de dégrader les performances du modèle.
Lors de l'exécution de systèmes de production, il est également important de surveiller les métriques opérationnelles. Les magasins de fonctionnalités suivent les métriques opérationnelles liées aux fonctionnalités de base — par exemple, les métriques relatives au stockage des fonctionnalités (disponibilité, capacité, utilisation, obsolescence) ou au service des fonctionnalités (débit, latence, taux d'erreur). D'autres métriques décrivent les opérations de composants système adjacents importants, tels que les métriques opérationnelles pour les moteurs de traitement de données externes (par exemple, taux de réussite des tâches, débit, latence et taux de traitement).
Les magasins de fonctionnalités rendent ces métriques disponibles pour l'infrastructure de surveillance existante. Cela permet de surveiller et de gérer la santé des applications ML avec les outils d'observabilité existants dans la pile de production.
Ayant une visibilité sur les fonctionnalités utilisées par quels modèles, les magasins de fonctionnalités peuvent agréger automatiquement les alertes et les métriques de santé dans des vues pertinentes pour des utilisateurs, des modèles ou des consommateurs spécifiques.
Il n'est pas essentiel que tous les feature stores implémentent un tel monitoring en interne, mais ils devraient au moins fournir les interfaces auxquelles les systèmes de surveillance de la qualité des données peuvent se connecter. Différents cas d'utilisation ML peuvent avoir des besoins de surveillance différents et spécialisés, d'où l'importance de la modularité ici.
Un composant essentiel de tous les feature stores est un registre centralisé de définitions de caractéristiques et de métadonnées standardisées. Le registre agit comme une source unique de vérité pour les informations concernant une caractéristique au sein d'une organisation.

Le registre est une interface centrale pour les interactions des utilisateurs avec le feature store. Les équipes utilisent le registre comme un catalogue commun pour explorer, développer, collaborer et publier de nouvelles définitions au sein des équipes et entre elles.
Les définitions du registre configurent le comportement du système de feature store. Les tâches automatisées utilisent le registre pour planifier et configurer l'ingestion, la transformation et le stockage des données. Il constitue la base des données stockées dans le feature store et de leur organisation. Les API de service utilisent le registre pour une compréhension cohérente des valeurs de caractéristiques qui devraient être disponibles, de qui devrait pouvoir y accéder et de la manière dont elles devraient être servies.
Le registre permet d'attacher des métadonnées importantes aux définitions de caractéristiques. Cela offre une voie pour le suivi de la propriété, des informations spécifiques au projet ou au domaine, et un chemin pour s'intégrer facilement aux systèmes adjacents. Cela inclut des informations sur les dépendances et les versions, utilisées pour le suivi de la lignée.
Pour faciliter les flux de travail courants de débogage, de conformité et d'audit, le registre agit comme un enregistrement immuable de ce qui est disponible analytiquement et de ce qui est réellement en production.
Jusqu'à présent, nous avons examiné les composants minimaux essentiels d'un feature store. En pratique, les entreprises ont souvent des besoins tels que la conformité, la gouvernance et la sécurité qui nécessitent des capacités supplémentaires axées sur l'entreprise. Ce sera le sujet d'un futur article de blog.
Nous considérons les feature stores comme le cœur du flux de données dans les applications ML modernes. Ils s'avèrent rapidement être une infrastructure critique pour les équipes de science des données qui mettent le ML en production. Nous nous attendons à ce que le nombre d'organisations utilisant des feature stores quadruple d'ici 2028
Il existe plusieurs options pour démarrer avec les feature stores :
Nous avons rédigé cet article de blog pour fournir une définition commune des feature stores, car ils émergent comme un composant principal de la pile ML opérationnelle. Nous pensons que l'industrie est sur le point de connaître une explosion d'activités dans cet espace.
(Cet article de blog a été traduit à l'aide d'outils basés sur l'intelligence artificielle) Article original
Abonnez-vous à notre blog et recevez les derniers articles directement dans votre boîte mail.