Qu'est-ce qu'un magasin de fonctionnalités ?

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 allant bien au-delà de la création de pipelines de données.
Dans un article précédent, Why We Need DevOps for ML Data, nous avons souligné certains des principaux défis liés aux données auxquels les équipes sont confrontées lors de la mise en production de systèmes de ML.
- Accéder aux bonnes données brutes
- Créer des fonctionnalités à partir de données brutes
- Combinaison de fonctionnalités dans les données d'apprentissage
- Calcul et service des fonctionnalités en production
- Monitoring des fonctionnalités en production
Les systèmes de données de production, qu'il s'agisse d'analytique à 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 dans des applications destinées aux clients — est une nouveauté pour la plupart des équipes. Le défi du déploiement du machine learning en production à des fins opérationnelles (par exemple, systèmes de recommandation, détection de la fraude, personnalisation, etc.) introduit de nouvelles exigences pour nos outils de données.
Un nouveau type d'infrastructure de données spécifique au ML est en train d'émerger pour rendre cela possible.
De plus en plus, les équipes de data science et de data engineering se tournent vers les magasins de fonctionnalités pour gérer les ensembles et les pipelines de données nécessaires à la mise en production de leurs applications de ML. Cet article décrit les composants clés d’un magasin de fonctionnalités moderne et comment leur combinaison agit comme un levier d’efficacité pour les organisations : en réduisant la duplication des efforts de data engineering, en accélérant le cycle de vie du ML et en permettant un nouveau type de collaboration entre les équipes de data science.
| Petit rappel : en ML, une fonctionnalité 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 le fait que la transaction ait lieu ou non dans un pays étranger, ou la comparaison du montant de cette transaction avec les dépenses habituelles du client. Lorsque nous parlons d'une fonctionnalité, nous faisons généralement référence au concept de ce signal (par ex. « transaction_in_foreign_country »), et non à une valeur spécifique de la fonctionnalité (par ex. « la transaction n°1364 a eu lieu dans un pays étranger »). |
![]() |
Quel est l'objectif principal d'un magasin de fonctionnalités ?
« L'interface entre les modèles et les données »
Nous avons présenté les magasins de fonctionnalités pour la première fois dans notre billet de blog décrivant la plateforme Michelangelo d'Uber. Depuis, les magasins de fonctionnalités sont devenus un composant essentiel du stack de machine learning opérationnel.
Avantages d'un magasin de fonctionnalités :
- Mettre en production de nouvelles fonctionnalités sans support d'engineering important
- Automatiser le calcul de fonctionnalités, les remplissages rétrospectifs et la journalisation
- Partager et réutiliser les pipelines de fonctionnalités entre les équipes
- Suivre les versions, la provenance et les métadonnées des fonctionnalités
- Assurer la cohérence entre les données d'entraînement et de service
- Surveiller la santé des pipelines en production
Les magasins de fonctionnalités visent à résoudre l'ensemble des problèmes de gestion de données rencontrés lors de la création et de l'exploitation d'applications de ML opérationnelles.
Un magasin de fonctionnalités est un système de données spécifique au ML qui :
- Exécute des pipelines de données qui transforment les données brutes en variables utilisables par les modèles.
- Stocke et gère les données de fonctionnalités elles-mêmes, et
- Fournit les données de fonctionnalités de manière cohérente à des fins d'entraînement et d'inférence

Pour permettre une gestion simple des fonctionnalités, les magasins fournissent des abstractions de données qui facilitent la création, le déploiement et le raisonnement sur les pipelines de fonctionnalités dans différents environnements. Par exemple, ils permettent de définir facilement une transformation de fonctionnalité une seule fois, puis de calculer et de servir ses valeurs de manière cohérente dans l'environnement de développement (pour l'entraînement sur des valeurs historiques), mais aussi dans l'environnement de production (pour l'inférence avec des valeurs de fonctionnalités récentes).
Les magasins de fonctionnalités servent de hub central pour les données et les métadonnées des fonctionnalités tout au long du cycle de vie d'un projet de ML. Les données d'un magasin de fonctionnalités sont utilisées pour :
- Exploration et data engineering de fonctionnalités
- Itération, entraînement et debugging de modèles
- Découverte et partage de fonctionnalités
- Mise à disposition en production à un modèle pour l'inférence
- Monitoring de la santé opérationnelle
Les magasins de fonctionnalités apportent des économies d'échelle aux organisations de ML en favorisant la collaboration. Lorsqu'une fonctionnalité est enregistrée dans un magasin de fonctionnalités, elle devient immédiatement disponible pour être réutilisée par d'autres modèles au sein de l'organisation. Cela réduit la duplication des efforts de data engineering et permet aux nouveaux projets de ML de démarrer avec une bibliothèque de fonctionnalités organisées et prêtes pour la production.

Les magasins de fonctionnalités efficaces sont conçus pour être des systèmes modulaires qui peuvent être adaptés à l'environnement dans lequel ils sont déployés. Un magasin de fonctionnalités est généralement composé de cinq composants principaux. Dans la suite de cet article, nous passerons en revue ces composants et décrirons leur rôle dans le fonctionnement des applications de ML opérationnelles.
Quels sont les composants d'un magasin de fonctionnalités
Un magasin de fonctionnalités moderne comporte 5 composants principaux : Transformation, Stockage, Service, Monitoring et Registre.

Dans les sections suivantes, nous donnerons un aperçu de l'objectif et des capacités typiques de chacune de ces sections.
Service des données de fonctionnalités
Les magasins de fonctionnalités servent les 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 décalage entraînement-service est introduit, ce qui peut entraîner des performances catastrophiques des modèles difficiles à déboguer.

Les magasins de fonctionnalités font abstraction de la logique et des traitements utilisés pour générer une fonctionnalité, en fournissant aux utilisateurs un accès simple et standardisé à l’ensemble des 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 ex., pour l'entraînement), les valeurs de fonctionnalités sont généralement accessibles via des SDK 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 (autrement dit « time-travel »).
Pour le service en ligne, un magasin de fonctionnalités fournit un seul vecteur de fonctionnalités à la fois, composé des valeurs les plus récentes. Les réponses sont servies via une API haute performance, soutenue par une base de données à faible latence.

Stockage de données pour le machine learning
Les magasins de fonctionnalités assurent la persistance des données de fonctionnalités pour permettre leur récupération via des couches de service. 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 mois ou des années de données de fonctionnalités à des fins d'entraînement. Les données de magasin de fonctionnalités hors ligne sont souvent stockées dans des data warehouses ou des data lakes comme S3, BigQuery, Snowflake et Redshift. L'extension d'un lac 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 pour éviter les silos de données.
Les couches de stockage en ligne sont utilisées pour conserver 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 pour chaque entité, modélisant ainsi l'état actuel du monde. Les magasins en ligne sont généralement cohérents à terme et n'ont pas d'exigences de cohérence strictes pour la plupart des cas d'utilisation de 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 est associée à une entité (par exemple, un utilisateur) et à un timestamp. Un modèle de données basé sur les entités fournit une structure minimale pour prendre en charge une gestion des fonctionnalités standardisée, s'intègre naturellement aux workflows courants d'ingénierie et permet des requêtes d'extraction simples en production.
Transformation des données en Machine Learning

Les applications de ML opérationnelles 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 actualisée du monde. Les magasins de fonctionnalités gèrent et orchestrent les transformations de données qui produisent ces valeurs, ingérant é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 commun (décrit ci-dessous).
La plupart des équipes qui commencent à utiliser des magasins de fonctionnalités disposent déjà de pipelines de données produisant des valeurs de fonctionnalités. Il est donc très important que les magasins de fonctionnalités puissent être adoptés progressivement et disposent d'intégrations de premier ordre avec les plateformes de données existantes. Cela permet aux équipes de rendre immédiatement opérationnels les pipelines ETL existants pour leurs cas d'usage de ML.
Les magasins de fonctionnalités interagissent généralement avec trois principaux types de transformations de données :
| Type de fonctionnalité | Définition | Source de données d'entrée courante | Exemple |
|---|---|---|---|
| Transformation batch | Transformations appliquées uniquement aux données au repos | data warehouse, data lake, base de données | Pays de l'utilisateur, catégorie de produit |
| Transformation en streaming | Transformations appliquées aux sources de streaming | Kafka, Kinesis, PubSub | Nombre de clics par verticale et 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 destinée à l'utilisateur | L'utilisateur se trouve-t-il actuellement dans une zone géographique prise en charge ? |
Un avantage clé est de faciliter l'utilisation conjointe de différents types de fonctionnalités 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 jobs de transformation sont orchestrés pour s'assurer que les nouvelles données sont traitées et transformées en nouvelles valeurs de fonctionnalités récentes. Ces jobs sont exécutés sur des moteurs de traitement de données (par ex., 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 datasets d'entraînement correspondant à des événements historiques (par exemple, tous les achats des six derniers mois). Pour prendre en charge ces cas d'usage, les magasins de fonctionnalités facilitent l'exécution de « jobs de backfill » qui génèrent et conservent les valeurs historiques d'une fonctionnalité pour l'entraînement. Certains magasins de fonctionnalités effectuent automatiquement le rétro-remplissage (backfill) des nouvelles fonctionnalités enregistrées sur des périodes prédéfinies, afin d’alimenter les jeux de données d’entraînement déjà déclarés.
Le code de transformation est réutilisé dans les différents environnements, ce qui évite le décalage entraînement-service et évite aux équipes d'avoir à réécrire le code d'un environnement à l'autre.
Les magasins de fonctionnalités gèrent toutes les ressources liées aux fonctionnalités (compute, stockage, mise à disposition) de manière holistique tout au long de leur cycle de vie. En automatisant les tâches de data engineering répétitives nécessaires à la mise en production d'une fonctionnalité, ils permettent un chemin simple et rapide vers la production. Optimisations de la gestion (par ex. le retrait 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) peut apporter des gains d'efficacité significatifs, surtout à mesure que la complexité de la gestion manuelle des fonctionnalités augmente pour les équipes.
Monitoring du Machine Learning
Lorsqu'un problème survient dans un système de ML, il s'agit généralement d'un problème de données. Les magasins de fonctionnalités sont particulièrement bien placés pour détecter et faire remonter de tels problèmes. Ils peuvent calculer des métriques sur les fonctionnalités qu'ils stockent et mettent à disposition, qui décrivent l'exactitude et la qualité. Les magasins de fonctionnalités surveillent ces métriques pour fournir un signal sur la santé globale d'une application de ML.

Les données de fonctionnalités peuvent être validées en fonction 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 (drift) et le décalage entre entraînement et service. Par exemple, les données fournies aux modèles sont comparées à celles utilisées lors de leur entraînement afin de détecter des incohérences susceptibles de dégrader leurs performances.
Lors de l’exploitation de systèmes en production, il est également nécessaire de suivre des métriques opérationnelles. Les magasins de fonctionnalités suivent les métriques opérationnelles relatives aux fonctionnalités de base, comme les celles relatives au stockage des fonctionnalités (disponibilité, capacité, utilisation, obsolescence) ou à leur service (throughput, latence, taux d'erreur). D’autres indicateurs décrivent le fonctionnement de composants adjacents du système, par exemple les métriques opérationnelles des moteurs externes de traitement de données, telles que le taux de réussite des tâches, le débit, la latence de traitement et la cadence d’exécution.
Les magasins de fonctionnalités rendent ces métriques disponibles pour l'infrastructure de monitoring existante. Cela permet de surveiller et de gérer la santé des applications de ML avec les outils d'observabilité existants dans la stack de production.
En offrant une visibilité sur les fonctionnalités utilisées par chaque modèle, 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 magasins de fonctionnalités implémentent un tel monitoring en interne. Mais ils doivent au moins fournir les interfaces sur lesquelles les systèmes de monitoring de la qualité des données peuvent se connecter. Les différents cas d'usage du ML peuvent avoir des besoins de monitoring différents et spécialisés. C'est pourquoi la capacité d'intégration est un aspect important.
Registre de modèles de Machine Learning
Un composant essentiel de tout magasin de fonctionnalités est un registre centralisé de définitions de fonctionnalités et de métadonnées standardisées. Le registre agit comme une source unique de vérité pour les informations relatives à une fonctionnalité dans une organisation.

Le registre est une interface centrale pour les interactions des utilisateurs avec le magasin de fonctionnalités. 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 du magasin de fonctionnalités. Les jobs automatisés utilisent le registre pour programmer et configurer l'ingestion, la transformation et le stockage des données. Il constitue la base des données stockées dans le magasin de fonctionnalités et de la manière dont elles sont organisées. Les APIs de diffusion utilisent le registre pour une compréhension cohérente des valeurs de fonctionnalités qui doivent être disponibles, des personnes qui doivent pouvoir y accéder et de la manière dont elles doivent être servies.
Le registre permet d'associer des métadonnées importantes aux définitions de fonctionnalités. Cela offre un moyen de suivre la propriété, les informations spécifiques à un projet ou à un domaine, et une voie pour une intégration facile avec les systèmes adjacents. Cela inclut des informations sur les dépendances et les versions utilisées pour le suivi de la traçabilité (lineage).
Pour faciliter les flux de travail courants de debugging, de conformité et d'audit, le registre agit comme un enregistrement immuable de ce qui est disponible pour l'analyse et de ce qui est réellement exécuté en production.
Jusqu'à présent, nous avons examiné les composants minimaux de base d'un magasin de fonctionnalités. Dans la pratique, les entreprises ont souvent des exigences en matière de conformité, de gouvernance et de sécurité nécessitant des capacités orientées vers un usage à l’échelle de l'entreprise. Ce sera le sujet d'un futur billet de blog.
Premiers pas avec les magasins de fonctionnalités
Nous considérons les magasins de fonctionnalités comme le cœur du flux de données dans les applications de ML modernes. Ils s’imposent rapidement comme une infrastructure critique pour les équipes data qui déploient des modèles de ML en production. Nous nous attendons à ce que le nombre d'organisations utilisant des magasins de fonctionnalités quadruple d'ici 2028
Il existe plusieurs options pour démarrer avec les magasins de fonctionnalités :
- Feast est une excellente option si vous disposez déjà de pipelines de transformation pour calculer vos fonctionnalités, mais que vous avez besoin d'une bonne couche de stockage et de mise à disposition pour vous aider à les utiliser en production. Feast n'est actuellement disponible que sur GCP, mais nous travaillons d'arrache-pied pour le rendre disponible en tant que magasin de fonctionnalités léger pour tous les environnements. Restez à l'écoute.
- Tecton est une plateforme de fonctionnalités en tant que service Une grande différence entre Feast et Tecton est que Tecton prend en charge les transformations, ce qui permet de gérer les pipelines de fonctionnalités de bout en bout. Tecton est une offre managée, et un excellent choix de magasin de fonctionnalités si vous avez besoin de SLA pour la production, d'hébergement, de fonctions de collaboration avancées, de transformations managées (batch, streaming ou temps réel) et/ou de fonctionnalités destinées aux entreprises.
Nous avons rédigé ce billet de blog pour fournir une définition commune des magasins de fonctionnalités, alors qu'ils deviennent un composant principal du stack de ML opérationnel. Nous pensons que le secteur est sur le point de connaître une explosion d'activité dans ce domaine.
