14 meilleurs magasins de fonctionnalités comparés [première ébauche]

Jun 17 2022
La première fois que j'ai entendu parler de Feature Store, c'était Michelangelo d'Uber en 2017. Ma première réaction a été que c'était quoi !? Est-ce une autre étape inutile dans la complexité ? Maintenant, je suis beaucoup plus chaud sur le sujet.

La première fois que j'ai entendu parler de Feature Store, c'était Michelangelo d'Uber en 2017. Ma première réaction a été que c'était quoi !? Est-ce une autre étape inutile dans la complexité ?

Maintenant, je suis beaucoup plus chaud sur le sujet. En fait, j'ai construit une pratique MLOps dont la mission est d'implémenter des Feature Stores pour les grandes organisations. C'est une équipe d'experts et je suis plus du manager ; néanmoins, voici mon coup honnête pour ajouter un point de comparaison autour des multiples choix pour les magasins de fonctionnalités. Je vais passer en revue le concept d'un magasin de fonctionnalités et mettre en lumière quelques options si vous souhaitez emprunter cette voie. Ce sont mes propres opinions en juin 2022 et les commentaires sont toujours les bienvenus.

Veuillez noter que je publie ceci en tant que PREMIER PROJET le 17 juin 2022. Je prévois d'en faire un projet final le 1er juillet en fonction des commentaires. Étant donné que bon nombre de ces produits sont très nouveaux et que je ne les ai pas tous utilisés de première main, veuillez indiquer où vous pensez que les choses ne vont pas et je ferai de mon mieux pour corriger.

Qu'est-ce qu'un magasin de fonctionnalités et pourquoi est-il nécessaire ?

Une caractéristique est quelque chose qui décrit quelque chose. Par exemple une orange est orange, une pomme est rouge, …. Si vous avez des milliers de fruits à trier, il serait utile de savoir lesquels sont orange si vous recherchez des oranges.

De même, les données sont parfois incomplètes ou désordonnées. S'il me manquait le diamètre du fruit à quelques endroits, il serait faux de dire que le diamètre est nul. Il existe des moyens astucieux de remplir ces données manquantes de manière à ne pas introduire de biais. Une façon consiste à le remplir avec une valeur médiane. Un autre exemple est si vous créez une nouvelle fonctionnalité comme is_ripe, qui peut être générée à partir d'un composite de fonctionnalités, etc. Ce processus de deviner ou de créer de nouvelles fonctionnalités s'appelle Feature Engineering. L'ingénierie des fonctionnalités est le processus de création de méthodes permettant de transformer des données brutes en nouvelles fonctionnalités.

Pourquoi les magasins de fonctionnalités sont-ils nécessaires ?

Un magasin de fonctionnalités signifie que vous pouvez calculer ces fonctionnalités à l'avance. Lors de la création d'un modèle d'apprentissage automatique, vous voudrez peut-être essayer un tas de choses différentes pour vous aider à déterminer les fonctionnalités les plus informatives pour un algorithme particulier. La mise en cache de ces fonctionnalités est assez pratique, permet de gagner du temps et offre des avantages supplémentaires, notamment :

  • Vitesse : la création de fonctionnalités peut être coûteuse en calculs. C'est un gain de temps et de calcul pour le faire une fois et une seule.
  • Traçabilité : le suivi de la lignée des données est un objectif pour la reproductibilité du modèle. L'utilisation d'un magasin de fonctionnalités est pratique pour garder une trace de ce qui a été utilisé et avec quel ensemble de données.
  • Partage : avec un magasin de fonctionnalités unifié, cela ouvre la fenêtre pour partager ces fonctionnalités entre d'autres scientifiques des données.
  • Gouvernance : étant donné que vous ne calculez que les fonctionnalités que vous utiliseriez potentiellement, les magasins de fonctionnalités peuvent être explicitement dépourvus de fonctionnalités que vous ne devriez pas utiliser. Par exemple, les données brutes peuvent contenir des fonctionnalités telles que le sexe, vous pouvez être sûr de ne pas utiliser cette fonctionnalité dans les modèles où il est logique d'exclure en raison d'un biais ou d'autres raisons.
  1. Accès aux données : sérialisation facile des types de données à partir de données brutes et vers des formats facilement consommables par un modèle d'apprentissage automatique
  2. Durée d'exécution et coût : il y a souvent certaines exigences lorsque le Feature Store s'exécute (on-premise, gcp, aws, azure, …, combien cela coûte (licence + consommation),
  3. Espaces de noms : alors que tous les magasins de fonctionnalités doivent avoir la capacité de contenir des données dans une certaine structure (schéma) ; c'est aussi un avantage qu'ils utilisent une sorte d'espace de noms au-dessus pour permettre le regroupement et aider à l'organisation autour du contrôle d'accès et du partage.
  4. Types avancés : En plus des types de base (INT, CHAR, BOOL, TIMESTAMPS…), certains magasins de fonctionnalités ont des mécanismes plus sophistiqués de stockage des données. Les types avancés peuvent inclure des vecteurs (denses et clairsemés), de l'audio, de la vidéo, des documents et des chaînes plus longues d'éléments textuels dans un format normalisé.
  5. Planification : possibilité de remplir à nouveau un magasin de fonctionnalités à un intervalle donné.
  6. Streaming : possibilité de prendre les données au fur et à mesure qu'elles se produisent et de les sérialiser dans un magasin de fonctionnalités
  7. Transformation des fonctionnalités : tous les magasins de fonctionnalités ne le prennent pas en charge de par leur conception, mais une partie importante du remplissage d'un magasin de fonctionnalités concerne les étapes d'ingénierie des fonctionnalités pour prendre des données et les convertir en fonctionnalités utiles à un modèle d'apprentissage automatique.
  8. Sensibilité temporelle : certains ensembles de fonctionnalités se soucient beaucoup de l'heure à laquelle ils sont calculés. Pour cette raison, un Feature Store voudra stocker ou être organisé par temps.
  9. Interopérabilité : quel que soit le magasin de fonctionnalités que vous choisissez, il est judicieux d'examiner comment il fonctionne avec d'autres parties du cycle de développement du modèle. Un bon indicateur de cela est s'il existe une référence sur la façon dont cela fonctionnerait avec les outils de workflow MLOps tels que : MLFlow, Kubeflow et TFX…
  10. UI/UX : de nombreux magasins de fonctionnalités ont une interface utilisateur en haut afin que vous puissiez gérer et voir les ensembles de fonctionnalités. Les pensées comme la planification sont souvent prises en charge par une interface utilisateur Feature Store.
  11. Stockage en ligne : les magasins de fonctionnalités tirent souvent parti d'autres backends de magasins de données au-delà du sien.
  12. Inférence en ligne : lors de la récupération de fonctionnalités, il est utile pour les prédictions (inférence) de pouvoir récupérer des fonctionnalités dans le contexte d'une demande spécifique en temps réel. La fonctionnalité est étroitement associée aux transformations, car celles-ci doivent également être appliquées quelque part avec un flux de travail MLOps Model Serving.
  13. Autorisations de contrôle d'accès : puisque nous nous soucions du partage, nous nous soucions également des contrôles d'accès. Dans de nombreux cas, l'accès aux fonctionnalités doit être restreint pour certains utilisateurs ou groupes.

Je suis sûr que je recevrai beaucoup de commentaires des fournisseurs de ces outils sur la notation. Cette notation est mon opinion professionnelle personnelle (non représentative de l'opinion de mon employeur) mélangée à celle de certaines opinions de mes équipes travaillant pour moi dans cet espace. De même, je comprends que certaines de ces fonctionnalités du produit sont sur la feuille de route. Traitez-les comme soumis à votre propre situation et j'encourage fortement les services de conseil à faire ces choix pour les moyennes et grandes organisations. Contactez-moi pour de l'aide!

Dans l'ensemble, voici les classements et ci-dessous, vous trouverez des tableaux de bord individuels pour chacun :

[*] pour ScribbleData les contactant en attendant la démo.

J'ai divisé les tableaux de bord en 3 catégories de Feature Stores : Cloud Preferred, Commercial et Open Source. Il y a des avantages à opter pour le commercial par rapport à l'open source ; cloud natif ; ou open source au lieu de commercial. Je ne les couvrirai pas ici, mais veuillez noter que certaines organisations, comme Tecton, ont les deux. De même, pyRasgo est open source mais nécessite le service de Rasgo derrière, nous avons donc laissé cela en dehors de cette analyse.

Le système de notation est cumulatif basé sur les métriques ci-dessus :

3 Cloud (AWS, Azure, GCP) Préféré

Commercial

Données de griffonnage

[TBD] Pas assez de données pour classer. En approche pour la démo.

Open source