Feast est un registre de caractéristiques open source conçu pour les workflows de machine learning. Il fournit une plateforme centralisée pour définir, gérer et servir les caractéristiques - les variables d'entrée utilisées par les modèles de machine learning - à la fois pour l'entraînement et l'inférence en ligne. En standardisant le stockage et l'accès aux caractéristiques, Feast vise à réduire la charge opérationnelle de l'ingénierie des caractéristiques et à garantir la cohérence entre les caractéristiques utilisées lors de l'entraînement des modèles et celles servies en production.
Feast a été initialement développé par Gojek et publié pour la première fois en tant que projet open source en 2019. Il est ensuite devenu un projet sous l'égide de l'initiative AI & Data de la Linux Foundation, avec des contributions d'entreprises telles que Tecton, cofondée par les créateurs originaux de Feast. Le nom du projet est un acronyme pour « Feature Store », reflétant son objectif principal.
Concepts de base
Feast organise les caractéristiques de machine learning dans un cadre structuré. Les entités principales comprennent :
- Feature Views : Un regroupement logique de caractéristiques partageant une source de données et une fenêtre temporelle communes. Chaque feature view définit le schéma, les données sources et les transformations appliquées pour générer les caractéristiques.
- Entities : Les clés qui identifient les sujets des caractéristiques, comme un identifiant utilisateur ou un identifiant de transaction. Les entités relient les caractéristiques à des points de données spécifiques.
- Feature Services : Une collection de feature views qui peuvent être utilisées ensemble pour servir des caractéristiques pour un modèle ou une application particulière.
- Data Sources : Les systèmes de stockage sous-jacents, tels que BigQuery, Redshift ou Kafka, à partir desquels les données brutes sont lues pour calculer les caractéristiques.
Architecture et composants
L'architecture de Feast est composée de plusieurs composants clés qui travaillent ensemble pour gérer le cycle de vie des caractéristiques :
- Feast Core : Le registre central qui stocke les métadonnées sur les feature views, les entités et les sources de données. Il agit comme le système de référence pour les définitions de caractéristiques.
- Feast Serving : Le service qui fournit un accès à faible latence aux caractéristiques pour l'inférence en ligne. Il récupère les caractéristiques des magasins en ligne et les renvoie aux systèmes de service de modèles.
- Feast Job Service : Un composant qui gère le calcul des caractéristiques à partir de sources de données par lots et en streaming, remplissant à la fois les magasins hors ligne et en ligne.
- Offline Store : Un système de stockage pour les données historiques de caractéristiques, généralement utilisé pour les ensembles de données d'entraînement. Il prend en charge les jointures correctes au point dans le temps pour éviter les fuites de données.
- Online Store : Un système de stockage à accès rapide, tel que Redis ou DynamoDB, qui sert les caractéristiques en temps réel pour les prédictions en ligne.
Utilisation et workflow
Feast est généralement utilisé dans le workflow suivant :
- Définir les caractéristiques : Les data scientists ou ingénieurs définissent les feature views et les entités à l'aide de fichiers de configuration Python ou YAML.
- Appliquer : Les définitions sont appliquées au registre Feast, qui met à jour les métadonnées.
- Matérialiser : Feast calcule les valeurs des caractéristiques à partir des sources de données et les stocke dans les magasins hors ligne et en ligne.
- Entraîner : Les caractéristiques historiques sont récupérées depuis le magasin hors ligne pour créer des ensembles de données d'entraînement.
- Servir : Pendant l'inférence, le système de service de modèles interroge le magasin en ligne via Feast Serving pour obtenir des valeurs de caractéristiques à jour.
Ce workflow permet aux équipes de réutiliser les caractéristiques sur plusieurs modèles et garantit que les mêmes définitions de caractéristiques sont utilisées à la fois dans l'entraînement et la production.
Écosystème et intégration
Feast s'intègre avec une variété d'outils de données et de machine learning. Il prend en charge les entrepôts de données cloud comme Google Cloud BigQuery, Amazon Web Services Redshift et Microsoft Azure Synapse comme magasins hors ligne. Pour le service en ligne, il peut utiliser Redis, DynamoDB ou Firestore. Feast fonctionne également avec des frameworks de machine learning populaires tels que TensorFlow et PyTorch, et peut être déployé sur Kubernetes pour l'évolutivité.
Feast est souvent comparé à d'autres registres de caractéristiques comme Tecton et Hopsworks, mais il se distingue par son caractère open source et neutre vis-à-vis des fournisseurs. Cela en fait un choix populaire pour les organisations qui souhaitent éviter l'enfermement propriétaire et avoir un contrôle total sur leur infrastructure de caractéristiques.
Communauté et adoption
Feast a gagné une adoption significative dans la communauté du machine learning. Il est utilisé par des entreprises telles que Gojek, Walmart et Deliveroo pour alimenter leurs systèmes de recommandation et de personnalisation. Le projet dispose d'une communauté active sur GitHub, avec des versions régulières et des contributions d'un large éventail de développeurs. La documentation et les tutoriels de Feast sont largement référencés dans la communauté du machine learning comme une approche standard de la gestion des caractéristiques.
En 2024, Feast continue d'évoluer avec de nouvelles fonctionnalités et améliorations, notamment un meilleur support des caractéristiques en streaming et une intégration renforcée avec les workflows de grands modèles de langage. Son rôle dans l'écosystème de l'intelligence artificielle devrait croître à mesure que davantage d'organisations adoptent des registres de caractéristiques pour rationaliser leurs opérations de ML.