What ML feature stores require and how ScyllaDB fits in as fast, scalable online feature store Dans ce blog, nous explorerons le rôle des magasins de fonctionnalités dans les applications d'apprentissage automatique en temps réel (ML) et pourquoi ScyllaDB est un choix solide pour le service de fonctionnalités en ligne. Nous couvrirons les bases des fonctionnalités, la façon dont les magasins de fonctionnalités fonctionnent, leurs avantages, les différentes exigences de charge de travail et la façon dont la latence joue un rôle critique dans les applications ML. Nous allons envelopper en regardant les frameworks de magasins de fonctionnalités populaires tels que Feast et comment commencer avec ScyllaDB comme votre magasin de fonctionnalités en ligne. Qu’est-ce qu’une fonctionnalité de machine learning ? Une fonction est une propriété mesurable utilisée pour former ou servir un modèle d'apprentissage automatique. Les fonctionnalités peuvent être des points de données brutes ou des valeurs de conception dérivées des données brutes. Par exemple, dans une application de médias sociaux comme ShareChat, les fonctionnalités peuvent inclure: Nombre de likes dans les 10 dernières minutes Nombre d'actions au cours des 7 derniers jours Le thème du post Crédit photo : Ivan Burmistrov et Andrei Manakov (ShareChat) Ces points de données aident à prédire les résultats tels que l’engagement des utilisateurs ou la recommandation de contenu. Un vecteur de fonctionnalité est simplement une collection de fonctionnalités liées à une tâche de prédiction spécifique. Par exemple, c'est ce qu'un vecteur de fonctionnalité pourrait ressembler pour une application de notation de crédit. Sélectionner des points de données pertinents et les transformer en fonctionnalités prend une part importante du travail dans les projets d'apprentissage automatique.C'est également un processus en cours pour affiner et optimiser les fonctionnalités afin que le modèle formé devienne plus précis au fil du temps. Caractéristiques architecturales Pour travailler efficacement avec les fonctionnalités, vous pouvez créer un emplacement central pour gérer les fonctionnalités disponibles au sein de votre organisation. Un processus standard pour créer de nouvelles fonctionnalités Stockage des fonctionnalités pour un accès simplifié Découverte et réutilisation de fonctionnalités à travers les équipes Fournir des fonctionnalités à la fois pour la formation des modèles et l'inférence La plupart des architectures distinguent deux entrepôts / bases de données : Boutique hors ligne pour la formation des modèles (bulk writes/reads) Boutique en ligne pour inference (temps réel, écrits / lectures à faible latence) Un pipeline de stockage de fonctionnalités typique commence par ingérer des données brutes (des lacs de données ou des flux), effectuer l'ingénierie de fonctionnalités, enregistrer des fonctionnalités dans les deux magasins, puis les servir à travers deux pipelines distinctes: l'une pour la formation et l'autre pour l'inférence. Les avantages d’une boutique centralisée Les magasins de fonctionnalités centralisés offrent plusieurs avantages : Éviter les doublons : les équipes peuvent réutiliser les fonctionnalités existantes Accès autonome : les data scientists peuvent générer et interroger des fonctionnalités de manière indépendante Pipelines unifiées: bien que les charges de travail de formation et d'inference soient très différentes, elles peuvent toujours être interrogées en utilisant la même couche d'abstraction Cela se traduit par une itération plus rapide, une plus grande cohérence et une meilleure collaboration à travers les flux de travail ML. Différentes charges de travail dans les magasins de fonctionnalités Décomposons les deux exigences de charge de travail très distinctes qui existent dans un magasin de fonctionnalités: la formation des modèles et la déduction en temps réel. Formation en ligne (offline store) Pour faire des prédictions, vous devez d'abord former un modèle d'apprentissage automatique. La formation nécessite un ensemble de données grand et de haute qualité. Vous pouvez stocker ce groupe de données dans un magasin de fonctionnalités hors ligne. Voici un aperçu des caractéristiques qui comptent le plus pour les charges de travail de formation de modèle: La retardation : pas une priorité Volume : Haute (des millions à des milliards d’enregistrements) Fréquence : Travaux fréquents, programmé Objectif : récupérer un gros morceau de données historiques Fondamentalement, les magasins hors ligne doivent stocker efficacement d’énormes ensembles de données. Enregistrement en temps réel (en ligne) Une fois que vous avez un modèle prêt, vous pouvez exécuter la déduction en temps réel. La déduction en temps réel prend l'entrée fournie par l'utilisateur et la transforme en prédiction. Voici un aperçu des caractéristiques qui comptent le plus pour la déduction en temps réel: Latence : haute priorité Volume: faible par demande mais puissante (jusqu'à des millions d'opérations par seconde) Fréquence : constante, déclenchée par les actions de l’utilisateur (par exemple, la commande de nourriture) Objectif : fournir des fonctionnalités à jour pour faire des prédictions rapidement Par exemple, considérez une application de livraison de nourriture. le contenu récent du panier, l'âge et l'emplacement de l'utilisateur pourraient être transformés en fonctionnalités et utilisés instantanément pour recommander d'autres articles à acheter. Pourquoi la latence est importante La latence (dans le contexte de cet article) se réfère au temps entre l’envoi d’une requête et la réception de la réponse de la boutique de fonctionnalités.Pour les applications ML en temps réel – en particulier celles orientées vers l’utilisateur – la faible latence est essentielle au succès. Imaginez qu'un utilisateur à la caisse montre des produits alimentaires connexes.Si cette suggestion prend trop de temps à charger en raison d'une boutique en ligne lente, l'opportunité est perdue. Insérer les dernières données Rechercher des caractéristiques pertinentes Faire de l’inference Retour sur une prédiction Cela doit se faire en millisecondes. Choisir une solution de stockage Une fois que vous décidez de construire un magasin de fonctionnalités, vous constaterez rapidement qu’il existe des dizaines de frameworks et de fournisseurs, à la fois open source et commerciaux, à choisir parmi: Feast (open source): fournit un support de base de données flexible (par exemple, Postgres, Redis, Cassandra, ScyllaDB) Hopsworks : étroitement lié à son propre écosystème AWS SageMaker: lié à la pile AWS (par exemple, S3, DynamoDB) et beaucoup d’autres Les facteurs tels que l'expertise technique de votre équipe, les exigences de latence et les intégrations requises avec votre pile existante jouent tous un rôle. Si vous êtes préoccupé par l'évolutivité et les performances de votre boutique de fonctionnalités en ligne, la flexibilité de la base de données devrait être une considération clé. Il existe des boutiques de fonctionnalités (par exemple AWS SageMaker, GCP Vertex, Hopsworks, etc.) qui offrent leur propre technologie de base de données en tant que boutique en ligne. D'une part, cela pourrait être pratique pour commencer car tout est géré par un seul fournisseur. Imaginez choisir un fournisseur comme celui-ci avec une exigence de latence P99 stricte (par exemple, <15ms P99). Cette exigence est satisfaite avec succès lors de la preuve de concept (POC).Mais plus tard, vous ressentez des pics de latence – peut-être parce que vos exigences changent ou qu’il y a une augmentation de nouveaux utilisateurs dans votre application ou pour une autre raison imprévisible. Le problème est que vous ne pouvez pas... du moins pas facilement. vous êtes coincé avec la solution intégrée. Il est impossible de migrer juste la partie de votre boutique en ligne de votre architecture parce que tout est verrouillé. Si vous voulez éviter ces situations, vous pouvez rechercher des outils qui sont flexibles en ce qui concerne le backend de magasin hors ligne et en ligne. Outils comme Feast ou FeatureForm vous permettent d'apporter votre propre backend de base de données, à la fois pour les magasins en ligne et hors ligne. C'est un excellent moyen d'éviter le verrouillage du fournisseur et de rendre les migrations futures de base de données moins douloureuses en cas de pics de latence ou de coûts augmentés. ScyllaDB comme boutique de fonctionnalités en ligne ScyllaDB est une base de données NoSQL hautes performances qui est API compatible avec Apache Cassandra et DynamoDB API. et inclut , ce qui le rend idéal pour les applications de stockage de fonctionnalités à faible latence et à haut débit. L’architecture shard-per-core Un système de cache intégré Pourquoi ScyllaDB ? Low latency (performance de millisecondes à un seul chiffre P99) Haute disponibilité et résilience Déploiement à grande échelle (petabyte-scale deployments) Aucun lock-in de fournisseur (s'exécute sur place ou dans n'importe quel nuage) Remplacement des configurations Cassandra/DynamoDB existantes Migration facile à partir d’autres bases de données NoSQL (Cassandra, DynamoDB, MongoDB, etc.) Intégration avec le framework Feast ScyllaDB brille dans les cas d'utilisation de la boutique de fonctionnalités en ligne où les performances en temps réel, la disponibilité et la prévisibilité de la latence sont cruciales. ScyllaDB + Intégration de la fête Feast est un framework de boutique de fonctionnalités open source populaire qui prend en charge les boutiques en ligne et hors ligne. L'un de ses atouts est la possibilité de connecter vos propres sources de bases de données, y compris ScyllaDB. . ScyllaDB + Intégration de Feast dans les documents Commencez avec un tutoriel Voulez-vous essayer d'utiliser ScyllaDB comme votre boutique de fonctionnalités en ligne? Consultez nos tutoriels qui vous guident à travers le processus de création d'un cluster ScyllaDB et de la construction d'une application de déduction en temps réel. Tutoriel: application de prévision de prix avec ScyllaDB Tutoriel: application en temps réel avec Feast & ScyllaDB Intégration de Feast + ScyllaDB GitHub : ScyllaDB comme exemple de code de stockage de fonctionnalités Avez-vous des questions ou besoin d'aide pour le mettre en place? soumettre ! Un article sur le forum Je viens de terminer un atelier de développement avec le maintenanceur de Feast, Francisco Javier Arceo: Vous pouvez le regarder sur demande dès maintenant. Update: Créer des applications ML en temps réel avec Python, Feast et NoSQL