Utiliser Feature Store avec SDK pour Python (Boto3) - Amazon SageMaker

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.

Utiliser Feature Store avec SDK pour Python (Boto3)

Le groupe de fonctionnalités est la principale ressource du Feature Store qui contient vos données d'apprentissage automatique (ML) et les métadonnées stockées dans Amazon SageMaker Feature Store. Un groupe d'entités est un regroupement logique d'entités et d'enregistrements. La définition d'un groupe de fonctionnalités est composée d'une configuration pour son magasin en ligne et son magasin hors connexion et d'une liste de définitions de fonctionnalités utilisées pour décrire les valeurs de vos enregistrements. Les définitions de fonctionnalités doivent inclure un nom d'identificateur d'enregistrement et un nom d'heure d'événement. Pour plus d'informations sur les concepts liés aux magasins de fonctionnalités, consultez Concepts liés à Feature Store.

Avant d'utiliser un Feature Store, vous chargez généralement votre jeu de données, exécutez des transformations et configurez vos fonctions en vue de l'intégration. Ce processus peut varier beaucoup et dépend énormément de vos données. L'exemple de code présenté dans les rubriques suivantes fait référence aux exemples de blocs-notes Introduction to Feature Store et Fraud Detection with Amazon SageMaker Feature Store, respectivement. Les deux utilisent AWS SDK for Python (Boto3). Pour plus d'exemples et de ressources du Feature Store, consultezRessources Amazon SageMaker Feature Store.

Feature Store prend en charge les types de fonctionnalités suivants :String, Fractional (valeur à virgule flottante 64 IEEE bits) et Integral (Int64 - valeur intégrale signée 64 bits). Le type par défaut est défini à String. Cela signifie que, si une colonne de votre jeu de données n'est pas du type float ou long, elle est par défaut du type String dans votre magasin de fonctionnalités.

Vous pouvez utiliser un schéma pour décrire les colonnes et les types de données de vos données. Vous transmettez ce schéma dans FeatureDefinitions, un paramètre obligatoire pour un FeatureGroup. Vous pouvez utiliser le SDK for Python (Boto3), qui détecte automatiquement le type de données lorsque vous utilisez la load_feature_definitions fonction.

Le comportement par défaut lorsqu'un nouvel enregistrement de fonctions est ajouté avec un ID d'enregistrement existant est le suivant. Dans la boutique hors ligne, le nouvel enregistrement sera ajouté. Dans le magasin en ligne, si l'heure d'événement du nouvel enregistrement est inférieure à l'heure d'événement existant, rien ne se produit. En revanche, si l'heure d'événement du nouvel enregistrement est supérieure ou égale à l'heure d'événement existante, l'enregistrement est remplacé.

Lorsque vous créez un groupe de fonctions, vous pouvez choisir l'un des formats de tableau suivants :

  • AWS Glue (Par défaut)

  • Apache Iceberg

L'ingestion de données, en particulier lors du streaming, peut entraîner le dépôt d'un grand nombre de petits fichiers dans le magasin hors ligne. Cela peut avoir un impact négatif sur les performances des requêtes, en raison du nombre supérieur d'opérations requises sur les fichiers. Pour éviter d'éventuels problèmes de performances, utilisez le format de table Apache Iceberg lors de la création de nouveaux groupes de fonctions. Avec Iceberg, vous pouvez compacter les petits fichiers de données en fichiers moins gros dans la partition, ce qui accélère considérablement les requêtes. Cette opération de compactage est simultanée et n'affecte pas les opérations de lecture et d'écriture en cours sur le groupe de fonctions. Si vous choisissez l'option Iceberg lors de la création de nouveaux groupes de fonctionnalités, Amazon SageMaker Feature Store créera les tables Iceberg en utilisant le format de fichier Parquet et enregistrera les tables auprès du AWS Glue Data Catalog.

Important

Notez que pour les groupes de fonctions au format de tableau Iceberg, vous devez spécifier String en tant que valeur de l'heure de l'événement. Si vous spécifiez un autre type, vous ne pourrez pas créer le groupe de fonctions correctement.

Dans ce qui suit, nous répertorions certaines ressources disponibles, gérées par Feature Store.