Création, stockage et partage de caractéristiques avec Feature Store - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création, stockage et partage de caractéristiques avec Feature Store

Le processus de développement de machine learning (ML) inclut l’extraction de données brutes, leur transformation en caractéristiques (entrées significatives pour votre modèle ML). Ces caractéristiques sont ensuite stockées de manière fonctionnelle pour l’exploration des données, l’entraînement ML et l’inférence ML. Amazon SageMaker Feature Store simplifie la création, le stockage, le partage et la gestion des fonctionnalités. Cela se fait en proposant des options de magasin de caractéristiques et en réduisant le traitement répétitif des données et le travail de curation.

Entre autres, Feature Store vous permet d’effectuer les opérations suivantes :

  • Simplifier l’intégration de caractéristiques, le stockage, l’extraction et le partage des caractéristiques pour le développement ML entre comptes ou au sein d’une organisation.

  • Suivre le développement de votre code d’intégration de caractéristiques, appliquer votre intégrateur de caractéristiques aux données brutes et ingérer vos caractéristiques dans Feature Store de manière cohérente. Cela réduit l’asymétrie entraînement-service, un problème courant en machine learning où la différence entre les performances pendant l’entraînement et pendant le service peut avoir un impact sur l’exactitude de votre modèle ML.

  • Stocker vos caractéristiques et les métadonnées associées dans des groupes de caractéristiques afin de pouvoir les retrouver et les réutiliser facilement. Les groupes de caractéristiques sont mutables et peuvent faire évoluer leur schéma après leur création.

  • Créez des groupes de caractéristiques qui peuvent être configurés pour inclure un magasin en ligne ou hors ligne, ou les deux, afin de gérer vos caractéristiques et d’automatiser le stockage des caractéristiques pour vos tâches ML.

    • Le magasin en ligne conserve uniquement les enregistrements les plus récents de vos caractéristiques. Il est principalement conçu pour prendre en charge les prédictions en temps réel qui nécessitent des lectures de faible latence (quelques millisecondes seulement) et des écritures à haut débit.

    • Le magasin hors ligne conserve tous les enregistrements de vos caractéristiques sous la forme d’une base de données d’historique. Il est principalement destiné à l’exploration des données, à l’entraînement des modèles et aux prédictions par lots.

Le diagramme suivant montre comment utiliser Feature Store dans le cadre de votre pipeline ML. Une fois que vous avez lu vos données brutes, vous pouvez utiliser Feature Store pour transformer ces données brutes en caractéristiques et les ingérer dans votre groupe de caractéristiques. Les caractéristiques peuvent être ingérées par streaming ou par lots dans les magasins en ligne et hors ligne du groupe de caractéristiques. Les caractéristiques peuvent ensuite être fournies pour l’exploration des données, l’entraînement des modèles et l’inférence en temps réel ou par lots.

Emplacement de Feature Store dans votre pipeline de machine learning.

Fonctionnement de Feature Store

Dans le Feature Store, les fonctions sont stockées dans un ensemble appelé groupe de fonctions. Un groupe de fonctions peut se présenter sous la forme d'une table dans laquelle chaque colonne est une fonction, avec un identifiant unique pour chaque ligne. En principe, un groupe de fonctions est composé de fonctions et de valeurs spécifiques à chaque fonction. Un Record est un ensemble de valeurs pour les fonctions qui correspondent à un RecordIdentifier. Globalement, un FeatureGroup est un groupe de fonctions défini dans votre FeatureStore pour décrire un Record

Vous pouvez utiliser le Feature Store dans les modes suivants : 

  • En ligne : dans ce mode, les fonctions sont lues avec une faible latence (quelques millisecondes) et utilisées pour des prédictions de débit élevé. Dans ce mode, un groupe de fonctions doit être stocké dans une boutique en ligne. 

  • Hors ligne : dans ce mode, des flux de données volumineux sont envoyés à une boutique hors ligne, qui peut être utilisée pour l'entraînement et l'inférence par lots. Dans ce mode, un groupe de fonctions doit être stocké dans une boutique hors ligne. La boutique hors ligne utilise votre compartiment S3 pour le stockage et peut aussi récupérer des données à l'aide de requêtes Athena. 

  • En ligne et hors ligne : cela inclut les deux modes, en ligne et hors ligne.

Vous pouvez intégrer des données dans des groupes de fonctions du Feature Store de deux manières : par streaming ou par lots. Lorsque vous intégrez des données par streaming, un ensemble d'enregistrements est envoyé au Feature Store en appelant un appel d'API PutRecord synchrone. Cette API vous permet de gérer les dernières valeurs de fonctions dans le Feature Store et d'envoyer de nouvelles valeurs de fonctions dès qu'une mise à jour est détectée.

En variante, le Feature Store peut traiter et intégrer des données par lots. Par exemple, vous pouvez créer des fonctionnalités à l'aide d'Amazon SageMaker Data Wrangler et exporter un bloc-notes depuis Data Wrangler. Le bloc-notes peut être une tâche de SageMaker traitement qui intègre les fonctionnalités par lots dans un groupe de fonctionnalités Feature Store. Ce mode permet l’ingestion de lots dans le magasin hors ligne. Il prend également en charge l'ingestion dans la boutique en ligne si le groupe de fonctions est configuré pour une utilisation tant en ligne qu'hors ligne. 

Création de groupes de fonctionnalités

Pour intégrer des caractéristiques dans Feature Store, vous devez d’abord définir le groupe de caractéristiques et les définitions de caractéristique (nom de caractéristique et type de données) pour toutes les caractéristiques appartenant au groupe de caractéristiques. Une fois créés, les groupes de fonctionnalités sont mutables et peuvent faire évoluer leur schéma. Les noms des groupes de fonctionnalités sont uniques au sein d'un Région AWS etCompte AWS. Lorsque vous créez un groupe de caractéristiques, vous pouvez également créer les métadonnées du groupe de caractéristiques. Ces métadonnées peuvent contenir une brève description, la configuration du stockage, des fonctionnalités permettant d’identifier chaque enregistrement et l’heure de l’événement. De plus, les métadonnées peuvent inclure des balises pour stocker des informations telles que l’auteur, la source de données, la version, etc.

Important

Les noms des FeatureGroup ou les métadonnées associées telles que la description ou les balises ne doivent pas contenir de données d’identification personnelle (PII) ou d’informations confidentielles.

Recherche, découverte et partage de fonctionnalités

Une fois qu'un groupe de fonctions est créé dans le Feature Store, les autres utilisateurs autorisés du Feature Store peuvent le partager et le découvrir. Les utilisateurs peuvent parcourir une liste de tous les groupes de fonctions dans le Feature Store ou découvrir des groupes de fonctions existants en effectuant une recherche par nom de groupe de fonctions, description, nom d'identificateur d'enregistrement, date de création et balises. 

Inférence en temps réel pour les fonctionnalités stockées dans le magasin en ligne 

Avec le Feature Store, vous pouvez enrichir les fonctions stockées dans votre boutique en ligne en temps réel avec des données provenant d'une source de streaming (données de flux propres d'une autre application) et servir les fonctions avec une faible latence de quelques millisecondes pour une inférence en temps réel. 

Vous pouvez également effectuer des jonctions entre différents FeatureGroups pour une inférence en temps réel en interrogeant deux FeatureGroups différents dans l'application cliente. 

Magasin hors connexion pour l'entraînement de modèle et l'inférence par lots

Le Feature Store fournit un stockage hors ligne pour les valeurs de fonctions dans votre compartiment S3. Les données sont stockées dans votre compartiment S3 à partir d'un schéma de préfixation basé sur l'instant d'événement. La boutique hors ligne est une boutique « append-only » (ajout seulement), ce qui permet au Feature Store de maintenir un enregistrement historique de toutes les valeurs de fonctions. Les données sont stockées dans le magasin hors ligne au format Parquet pour optimiser le stockage et l’accès aux requêtes.

Vous pouvez interroger, explorer et visualiser des caractéristiques en utilisant Data Wrangler à partir de la console.  Feature Store prend en charge la combinaison de données pour produire, entraîner, valider et tester des jeux de données, et vous permet d’extraire des données à différents points dans le temps.

Ingestion de données de fonctionnalités

Des pipelines de génération de fonctions peuvent être créés pour traiter des lots volumineux (1 million de lignes de données ou plus) ou de petits lots, et pour écrire des données de fonctions dans la boutique hors ligne ou en ligne. Les sources de streaming telles que Amazon Managed Streaming for Apache Kafka ou Amazon Kinesis peuvent également être utilisées comme sources de données à partir desquelles les fonctions sont extraites et directement transmises à la boutique en ligne pour l'entraînement, l'inférence ou la création de fonctions. 

Vous pouvez envoyer des enregistrements au Feature Store en appelant l'appel d'API PutRecord synchrone. Comme il s'agit d'un appel d'API synchrone, vous pouvez envoyer de petits lots de mises à jour dans un seul appel d'API. Vous pouvez ainsi actualiser les valeurs de fonctions régulièrement et les publier dès qu'une mise à jour est détectée. Celles-ci sont également appelées fonctions de streaming

Lorsque les données de fonctions sont intégrées et mises à jour, le Feature Store stocke l'historique de données de toutes les fonctions de la boutique hors ligne. Pour l'intégration par lots, vous pouvez extraire des valeurs de fonctions de votre compartiment S3 ou utiliser Athena pour l'interrogation. Vous pouvez également utiliser Data Wrangler pour traiter et orchestrer de nouvelles fonctions qui peuvent ensuite être exportées vers un compartiment S3 choisi pour être accessible par le Feature Store. Pour l'ingestion de lots, vous pouvez configurer une tâche de traitement pour intégrer vos données par lots dans le Feature Store, ou vous pouvez extraire des valeurs de fonctions de votre compartiment S3 à l'aide d'Athena. 

Pour supprimer un Record de votre boutique en ligne, utilisez l'appel d'API DeleteRecord. Cela ajoutera également l’enregistrement supprimé au magasin hors ligne.

Résilience dans Feature Store

Le Feature Store est réparti sur plusieurs zones de disponibilité (AZs). Une zone de disponibilité est un emplacement isolé au sein d'une Région AWS. Si certaines AZs échouent, Feature Store peut en utiliser d'autres AZs. Pour plus d'informations sur AZs, voirLa résilience dans Amazon SageMaker AI.