apprentissage automatiquemlopsingénierie des fonctionnalitésmagasins spécialisésingénierie des donnéesintelligence artificielle
Diffusion de fonctionnalités en ligne vs traitement des fonctionnalités hors ligne
Le traitement en ligne des fonctionnalités fournit des fonctionnalités précalculées ou en temps réel aux modèles d'apprentissage automatique en production avec une latence de l'ordre de la milliseconde, tandis que le traitement hors ligne gère le calcul par lots des fonctionnalités à partir de vastes ensembles de données historiques pour l'entraînement et l'analyse. Ces deux approches sont essentielles aux plateformes modernes de traitement des fonctionnalités d'apprentissage automatique, mais répondent à des objectifs fondamentalement différents.
Points forts
Le service en ligne vise une latence de l'ordre de la milliseconde pour l'inférence en direct, tandis que le traitement hors ligne optimise le débit sur les données historiques.
Les boutiques en ligne à fonctionnalités font le lien entre ces deux mondes en matérialisant des fonctionnalités calculées hors ligne dans des boutiques en ligne à faible latence.
Le déséquilibre entre la formation et la diffusion constitue un risque majeur lorsque les pipelines de fonctionnalités en ligne et hors ligne divergent en termes de logique ou de fraîcheur.
Les systèmes de streaming comme Flink brouillent de plus en plus les frontières en permettant le calcul de fonctionnalités en quasi temps réel.
Qu'est-ce que Diffusion de fonctionnalités en ligne ?
Livraison en temps réel des fonctionnalités aux modèles d'apprentissage automatique pendant l'inférence, avec des exigences de faible latence.
Les systèmes de diffusion en ligne répondent généralement en moins de 10 millisecondes pour respecter les SLA d'inférence de production.
Les systèmes de stockage de fonctionnalités tels que Feast, Tecton et DynamoDB permettent la récupération en ligne à grande échelle.
Les fonctionnalités en ligne sont souvent précalculées et mises en cache dans des systèmes de stockage clé-valeur à faible latence pour une recherche rapide.
Les plateformes de streaming comme Kafka et Flink peuvent calculer des fonctionnalités à la volée pour des cas d'utilisation sensibles au facteur temps.
Des entreprises comme Uber, Airbnb et DoorDash s'appuient sur les services en ligne pour la détection des fraudes et la personnalisation.
Qu'est-ce que Traitement hors ligne des fonctionnalités ?
Calcul par lots des caractéristiques à partir de grands ensembles de données historiques utilisés pour l'entraînement et le remplissage des modèles.
Le traitement hors ligne gère des téraoctets à des pétaoctets de données à l'aide de systèmes distribués comme Spark et Beam.
Les pipelines de fonctionnalités s'exécutent généralement selon des fréquences allant de l'heure à la journée, en fonction des besoins de fraîcheur.
Les entrepôts de données hors ligne stockent les valeurs historiques des données dans des formats colonnaires comme Parquet pour des jointures efficaces.
Les frameworks de traitement par lots tels qu'Airflow, Dagster et Prefect orchestrent les flux de travail des fonctionnalités hors ligne.
Les principales plateformes, notamment Google Vertex AI, AWS SageMaker Feature Store et Databricks, prennent en charge l'ingénierie des fonctionnalités hors ligne.
Tableau comparatif
Fonctionnalité
Diffusion de fonctionnalités en ligne
Traitement hors ligne des fonctionnalités
Cas d'utilisation principal
Inférence de modèles en temps réel
Entraînement des modèles et analyse par lots
Exigences de latence
Millisecondes (généralement <10 ms)
De quelques minutes à plusieurs heures acceptable
Volume de données
Recherche d'enregistrement unique
De téraoctets à pétaoctets par tâche
Backend de stockage
Bases de données clé-valeur (Redis, DynamoDB)
Stockage en colonnes (Parquet, BigQuery)
Moteur de traitement
Streaming (Flink, Kafka Streams)
Traitement par lots (Spark, Beam, SQL)
Fraîcheur
Quelques secondes en temps réel
Quelques heures à quelques jours
Modèle de cohérence
La cohérence à terme est souvent acceptable
Forte cohérence pour les jointures ponctuelles dans le temps
Profil de coûts
Coût par requête plus élevé, calculs moins coûteux
Coût par enregistrement inférieur, puissance de calcul supérieure
Comparaison détaillée
Latence et performances
Le traitement en ligne des fonctionnalités est soumis à des contraintes de latence strictes, devant souvent renvoyer les valeurs des fonctionnalités en quelques millisecondes pour répondre aux requêtes d'inférence de modèles. Le traitement hors ligne, en revanche, privilégie le débit à la vitesse, avec des tâches pouvant s'exécuter pendant des heures sur des ensembles de données massifs. Les stratégies d'optimisation des performances diffèrent en conséquence : les systèmes en ligne se concentrent sur la mise en cache, l'indexation et la minimisation des sauts réseau, tandis que les systèmes hors ligne privilégient le parallélisme, le partitionnement et l'efficacité des entrées/sorties.
Fraîcheur et cohérence des données
Les systèmes en ligne fournissent généralement les valeurs de caractéristiques les plus récentes, mises à jour via des pipelines de flux ou des caches à écriture immédiate. Le traitement hors ligne utilise des instantanés précis dans le temps pour éviter les fuites de données pendant l'entraînement. Un défi majeur consiste à maintenir la cohérence des caractéristiques en ligne et hors ligne, car des écarts entre les données d'entraînement et les données de production peuvent dégrader silencieusement les performances du modèle en production.
Infrastructure et outillage
Le service en ligne repose sur des bases de données à faible latence et des caches en mémoire comme Redis, DynamoDB ou Bigtable, souvent précédés de magasins de fonctionnalités qui abstraitnt la logique de récupération. Le traitement hors ligne s'appuie sur des moteurs de calcul distribués tels qu'Apache Spark, Dataflow ou Trino, exécutés sur des lacs de données. Des outils d'orchestration comme Airflow ou Dagster planifient les tâches hors ligne, tandis que les systèmes en ligne nécessitent des services toujours disponibles avec des contrôles d'intégrité et une capacité de basculement.
Compromis entre coût et évolutivité
L'infrastructure en ligne est généralement plus coûteuse par requête car elle exige du matériel et de la mémoire à haute disponibilité et faible latence. Les systèmes hors ligne sont moins chers par enregistrement traité, mais nécessitent d'importants clusters de calcul pour traiter efficacement les données historiques. Les entreprises optent souvent pour un compromis en précalculant les fonctionnalités hors ligne et en les intégrant ensuite dans leurs boutiques en ligne, tirant ainsi le meilleur parti des deux approches.
Cas d'utilisation en pratique
Le traitement en ligne permet de prendre des décisions en temps réel, comme la détection de la fraude à la carte bancaire, le classement des recommandations et la tarification dynamique, où chaque milliseconde compte. Le traitement hors ligne alimente les pipelines d'entraînement des modèles, en complétant les données pour les nouvelles entités et en générant des ensembles de données d'entraînement couvrant des mois, voire des années, d'historique de comportement. La plupart des systèmes d'apprentissage automatique en production nécessitent les deux : le traitement hors ligne pour construire et valider les modèles, et le traitement en ligne pour les déployer.
Avantages et inconvénients
Diffusion de fonctionnalités en ligne
Avantages
+Latence en millisecondes
+Fraîcheur en temps réel
+Toujours disponible
+Échelles horizontales
Contenu
−Coûts d'infrastructure plus élevés
−contexte historique limité
−Besoins complexes de basculement
−Plus difficile à déboguer
Traitement hors ligne des fonctionnalités
Avantages
+Gère des ensembles de données massifs
+Coût par enregistrement inférieur
+Exactitude à un instant donné
+Remblayage plus facile
Contenu
−Latence élevée
−Obsolète par défaut
−Besoins en calcul intensif
−Complexité de la planification
Idées reçues courantes
Mythe
Les fonctionnalités en ligne et hors ligne sont calculées de la même manière.
Réalité
Ils utilisent souvent des chemins de code et des moteurs différents, ce qui crée un déséquilibre entre l'entraînement et le déploiement. La meilleure pratique consiste à partager la logique de transformation via des magasins de fonctionnalités ou des bibliothèques partagées afin que les deux pipelines produisent des valeurs identiques pour une même entité et un même horodatage.
Mythe
Vous n'avez besoin que de l'un ou de l'autre.
Réalité
La plupart des systèmes d'apprentissage automatique en production nécessitent les deux. Le traitement hors ligne crée les ensembles de données d'entraînement et réintègre les caractéristiques historiques, tandis que le traitement en ligne fournit ces caractéristiques lors de l'inférence. Négliger l'un ou l'autre conduit à une qualité de modèle médiocre ou à des prédictions obsolètes.
Mythe
Le service en ligne utilise toujours des données en flux continu en temps réel.
Réalité
De nombreuses fonctionnalités en ligne sont en réalité précalculées par lots et simplement consultées au moment de la requête. Le calcul en temps réel est réservé aux fonctionnalités qui évoluent réellement seconde par seconde, comme les compteurs de session.
Mythe
Le traitement hors ligne est simplement un traitement en ligne plus lent.
Réalité
Les systèmes hors ligne sont optimisés pour l'analyse efficace de volumes considérables de données, souvent grâce à l'utilisation de formats colonnaires et de calcul distribué. Ils répondent à des objectifs fondamentalement différents de ceux des systèmes en ligne et requièrent des architectures différentes, et pas seulement un matériel moins performant.
Mythe
Les magasins spécialisés éliminent la nécessité de se demander s'il faut faire la distinction entre le commerce en ligne et le commerce physique.
Réalité
Les systèmes de stockage de fonctionnalités simplifient considérablement la complexité, mais exigent néanmoins des ingénieurs qu'ils comprennent les compromis liés à la cohérence, à la mise à jour des données et aux coûts. Le choix d'une stratégie de matérialisation et d'un système de stockage appropriés demeure une décision de conception cruciale.
Questions fréquemment posées
Quelle est la différence entre la diffusion de fonctionnalités en ligne et hors ligne ?
Le traitement en ligne des caractéristiques récupère leurs valeurs en temps réel lors de l'inférence du modèle, généralement avec une latence de l'ordre de la milliseconde grâce à des bases de données à faible latence. Le traitement hors ligne, quant à lui, calcule les caractéristiques par lots sur des données historiques pour l'entraînement et l'analyse, avec une latence de l'ordre de la minute ou de l'heure. Ces deux processus interviennent à différentes étapes du cycle de vie du machine learning, mais leur cohérence est essentielle pour éviter tout déséquilibre entre l'entraînement et le traitement.
Pourquoi les systèmes d'apprentissage automatique ont-ils besoin de pipelines de fonctionnalités en ligne et hors ligne ?
Les modèles nécessitent des données historiques pour l'entraînement et des données actualisées pour l'inférence. Les pipelines hors ligne génèrent les ensembles de données d'entraînement et intègrent les caractéristiques des nouvelles entités, tandis que les pipelines en ligne fournissent ces caractéristiques au moment de la prédiction. Sans les deux, il est impossible d'entraîner des modèles précis ou de fournir des prédictions basées sur des informations à jour.
Qu’est-ce que le biais de formation-service et quel est son lien avec les fonctionnalités en ligne et hors ligne ?
Le biais d'entraînement-détection survient lorsque les caractéristiques utilisées lors de l'entraînement diffèrent de celles utilisées lors de l'inférence, entraînant une dégradation silencieuse du modèle. Ce problème se produit souvent lorsque les pipelines en ligne et hors ligne calculent différemment la même caractéristique ou utilisent des fenêtres de fraîcheur différentes. Les magasins de caractéristiques permettent de pallier ce problème en imposant une logique de transformation partagée et une exactitude ponctuelle.
Quelles bases de données sont les plus adaptées à la diffusion de fonctionnalités en ligne ?
Les bases de données clé-valeur à faible latence dominent le marché des services en ligne, notamment Redis, Amazon DynamoDB, Google Cloud Bigtable et Cassandra. Ces systèmes offrent des temps de lecture de l'ordre de la milliseconde à grande échelle et s'intègrent parfaitement aux bases de données de fonctionnalités comme Feast et Tecton. Le choix dépend de vos exigences en matière de cohérence, d'évolutivité et de fournisseur de cloud.
À quelle fréquence faut-il actualiser les fonctionnalités hors ligne ?
La fréquence d'actualisation dépend de la vitesse à laquelle le signal sous-jacent évolue et de la tolérance de votre modèle aux données obsolètes. Les cadences courantes vont de l'heure pour les variables à évolution rapide comme les taux de clics, à la journée ou la semaine pour les variables à évolution plus lente comme les données démographiques des utilisateurs. Certaines équipes utilisent le streaming pour diffuser des mises à jour quasi instantanées dans les points de vente physiques.
Les systèmes de streaming peuvent-ils remplacer le traitement hors ligne des fonctionnalités ?
Les systèmes de traitement de flux comme Flink et Kafka Streams permettent de calculer des caractéristiques en quasi temps réel, mais ne remplacent pas entièrement le traitement par lots. Ce dernier reste plus rentable pour le remplissage de données historiques volumineuses, les jointures complexes sur plusieurs années de données et la génération d'ensembles d'entraînement. De nombreuses équipes utilisent le traitement de flux pour les caractéristiques en ligne et le traitement par lots pour celles hors ligne.
Qu'est-ce qu'un magasin de fonctionnalités et quel est son lien avec les fonctionnalités en ligne et hors ligne ?
Un magasin de fonctionnalités est une plateforme centralisée qui gère les définitions de fonctionnalités, les calcule et les déploie en ligne et hors ligne à partir des mêmes définitions logiques. Parmi les exemples, citons Feast, Tecton, Hopsworks et les services gérés des fournisseurs de cloud. Ces magasins réduisent la duplication et contribuent à maintenir la cohérence entre l'entraînement et le déploiement.
Comment gérez-vous la correction à un instant donné dans les fonctionnalités hors ligne ?
L'exactitude ponctuelle consiste à associer les caractéristiques aux étiquettes d'entraînement en utilisant la valeur de la caractéristique disponible au moment précis de la génération de l'étiquette. Les bases de données de caractéristiques gèrent cela en stockant l'historique horodaté des caractéristiques et en effectuant des jointures temporelles lors de la construction du jeu de données. Sans cela, les modèles peuvent divulguer des informations futures et échouer en production.
Le déploiement de fonctionnalités en ligne est-il plus coûteux que le traitement hors ligne ?
Le traitement en ligne coûte généralement plus cher par requête car il nécessite une infrastructure à faible latence et toujours active, comme des caches en mémoire et des bases de données répliquées. Le traitement hors ligne est moins coûteux par enregistrement, mais requiert une puissance de calcul importante pour les gros volumes de données. Le coût total dépend du volume de requêtes, de la taille des données et des exigences de fraîcheur.
Quels sont les outils couramment utilisés pour le traitement hors ligne des caractéristiques ?
Parmi les outils populaires pour la transformation des données, on trouve Apache Spark, Apache Beam, Trino et dbt, associés à Airflow, Dagster ou Prefect pour l'orchestration. Le stockage s'effectue généralement dans des lacs de données utilisant les formats Parquet ou Delta Lake. Des services cloud comme BigQuery, Snowflake et Databricks servent également de backends pour les fonctionnalités hors ligne.
Verdict
Privilégiez le traitement en ligne des caractéristiques lorsque votre modèle doit effectuer des prédictions en temps réel avec des données actualisées, par exemple pour la détection de fraudes ou la personnalisation. Optez pour le traitement hors ligne des caractéristiques lorsque vous devez calculer des caractéristiques sur de vastes ensembles de données historiques pour l'entraînement, le remplissage des données ou l'analyse par lots. En pratique, les systèmes d'apprentissage automatique matures utilisent les deux méthodes conjointement : les pipelines hors ligne alimentent les plateformes en ligne avec des caractéristiques précalculées pour une récupération à faible latence.