Share via


Concepts

Cette section décrit les concepts qui vous aideront à utiliser Databricks Feature Store et les tables de caractéristiques.

Tables de caractéristiques

Les caractéristiques sont organisées sous forme de tables de fonctionnalités. Chaque table doit avoir une clé primaire et est soutenue par une table Delta et des métadonnées supplémentaires. Les métadonnées de la table de caractéristiques assurent le suivi des sources de données à partir desquelles une table a été générée et des notebooks et travaux qui ont été créés ou écrits dans la table.

Avec Databricks Runtime 13.3 LTS et versions ultérieures, si votre espace de travail est activé pour Unity Catalog, vous pouvez utiliser n’importe quelle table Delta dans Unity Catalog avec une clé primaire comme table de fonctionnalités. Voir Ingénierie des fonctionnalités dans le catalogue Unity. Les tables de fonctionnalités qui sont stockées dans le magasin de fonctionnalités de l'espace de travail local sont appelées « tables de fonctionnalités de l'espace de travail ». Consultez Utiliser des caractéristiques dans le magasin de caractéristiques d’un espace de travail.

Les caractéristique d’une table de caractéristiques sont généralement calculées et mises à jour à l’aide d’une fonction de calcul commune.

Vous pouvez publier une table de caractéristiques dans un magasin en ligne pour une inférence de modèle en temps réel.

FeatureLookup

De nombreux modèles différents peuvent utiliser les fonctionnalités d’un tableau de fonctionnalités particulier, et tous les modèles n’auront pas besoin de toutes les fonctionnalités. Pour entraîner un modèle à l'aide de fonctionnalités, vous créez une FeatureLookup pour chaque table de fonctionnalités. Le FeatureLookup spécifie les fonctionnalités à utiliser à partir de la table et définit également les clés à utiliser pour joindre la table de fonctionnalités aux données d'étiquette transmises à create_training_set.

Le diagramme illustre le fonctionnement d'un FeatureLookup. Dans cet exemple, vous souhaitez entraîner un modèle à l'aide des fonctionnalités de deux tables de fonctionnalités, customer_features et product_features. Vous créez un FeatureLookup pour chaque table de fonctionnalités, en spécifiant le nom de la table, les fonctionnalités (colonnes) à sélectionner dans la table et la clé de recherche à utiliser lors de la jointure des fonctionnalités pour créer un ensemble de données d'entraînement.

Vous appelez ensuite create_training_set, également indiqué dans le diagramme. Cet appel d'API spécifie le DataFrame qui contient les données d'entraînement brutes (label_df), le FeatureLookups à utiliser et label, une colonne qui contient la vérité terrain. Les données d'entraînement doivent contenir une ou plusieurs colonnes correspondant à chacune des clés primaires des tables de fonctionnalités. Les données des tables de fonctionnalités sont jointes au DataFrame d'entrée en fonction de ces clés. Le résultat est affiché dans le diagramme sous le nom « Ensemble de données de formation ».

Diagramme FeatureLookup

Jeu d’apprentissage

Un jeu d’apprentissage se compose d’une liste de caractéristiques et d’une table contenant des données d’apprentissage brutes, des étiquettes et des clés primaires selon lesquelles rechercher des caractéristiques. Vous créez le jeu d’apprentissage en spécifiant les caractéristiques à extraire de Feature Store et fournissez le jeu d’apprentissage en tant qu’entrée lors de l’entraînement du modèle.

Voir Créer un jeu de données d'apprentissage pour obtenir un exemple de création et d'utilisation d'un jeu d'apprentissage.

Lorsque vous entraînez un modèle à l’aide de l’ingénierie de caractéristiques dans Unity Catalog, vous pouvez afficher la traçabilité du modèle dans l’explorateur de catalogue. Les tables et fonctions utilisées pour créer le modèle sont automatiquement suivies et affichées. Consultez Afficher la traçabilité du magasin de caractéristiques.

Tables de caractéristiques de séries chronologiques

Les données utilisées pour effectuer l’apprentissage d’un modèle intègrent souvent des dépendances temporelles. Lorsque vous générez le modèle, vous ne devez prendre en compte que les valeurs de caractéristiques précédant l’heure de la valeur cible observée. Si vous effectuez l’apprentissage sur des caractéristiques basées sur des données mesurées après l’horodatage de la valeur cible, les performances du modèle peuvent s’en trouver dégradées.

Les tables de caractéristiques de séries chronologiques incluent une colonne d’horodatage qui garantit que chaque ligne du jeu de données d’apprentissage représente les dernières valeurs de caractéristiques connues à partir de l’horodatage de la ligne. Utilisez systématiquement des tables de caractéristiques de séries chronologiques si les valeurs de caractéristiques changent au fil du temps, par exemple avec des données de séries chronologiques, des données basées sur les événements ou des données agrégées dans le temps.

Lorsque vous créez une table de fonctionnalités de série chronologique, vous spécifiez des colonnes liées au temps dans vos clés primaires pour être des colonnes de série chronologique à l’aide de l’argument timeseries_columns (pour l’ingénierie des fonctionnalités dans le catalogue Unity) ou de l’argument timestamp_keys (pour le Magasin de fonctionnalités d’espace de travail). Il permet d’effectuer des recherches à un instant dans le temps avec create_training_set ou score_batch. Le système effectue une jointure à partir de l’horodatage, à l’aide de la clé timestamp_lookup_key indiquée.

Si vous n'utilisez pas l'argument timeseries_columns ou l’argument timestamp_keys et ne désignez qu'une colonne de série chronologique comme colonne de clé primaire, Feature Store n'applique pas de logique ponctuelle à la colonne de série chronologique lors des jointures. Au lieu d’établir une correspondance avec toutes les lignes antérieures à l’horodatage, il ne considère que les lignes présentant une correspondance temporelle exacte.

Stockage hors connexion

Le magasin de caractéristiques hors connexion est utilisé pour la découverte des caractéristiques, l’entraînement du modèle et l’inférence par lots. Il contient des tables de caractéristiques matérialisées sous forme de tables Delta.

Magasin en ligne

Une boutique en ligne est une base de données à faible latence utilisée pour l'inférence de modèle en temps réel. Pour obtenir la liste des magasins en ligne pris en charge par Azure Databricks, consultez Magasins tiers en ligne.

Diffusion en continu

En plus des écritures par lots, Databricks Feature Store prend en charge la diffusion en continu (streaming). Vous pouvez écrire les valeurs des caractéristiques dans une table de caractéristiques à partir d'une source de streaming, et le code de calcul des caractéristiques peut utiliser Structured Streaming pour transformer les flux de données brutes en caractéristiques.

Vous pouvez également diffuser en continu des tableaux de caractéristiques du magasin hors ligne vers un magasin en ligne.

Empaquetage de modèle

Un modèle de Machine Learning formé à l’aide des caractéristiques de Databricks Feature Store conserve les références à ces caractéristiques. Au moment de l’inférence, le modèle peut éventuellement récupérer des valeurs de caractéristiques à partir de Feature Store. L'appelant doit seulement fournir la clé primaire des caractéristiques utilisées dans le modèle (par exemple, user_id), et le modèle récupère toutes les valeurs de caractéristiques requises auprès de Feature Store.

Dans l’inférence par lots, les valeurs des caractéristiques sont extraites du magasin hors connexion et jointes aux nouvelles données avant le scoring. Dans l’inférence en temps réel, les valeurs des caractéristiques sont récupérées à partir du magasin en ligne.

Pour empaqueter un modèle avec des métadonnées de fonctionnalité, utilisez FeatureEngineeringClient.log_model (pour l’ingénierie des fonctionnalités dans le catalogue Unity) ou FeatureStoreClient.log_model (pour le Magasin de fonctionnalités d’espace de travail).