Une fois qu'un modèle de machine learning est entraîné, l'étape suivante consiste à l'utiliser pour faire des prédictions sur de nouvelles données. Ce processus, appelé inférence, nécessite une stratégie qui dépend fortement des exigences de latence et de débit de votre application. L'inférence par lot, également appelée inférence hors ligne ou traitement asynchrone, est une méthode puissante et très efficace pour générer des prédictions sur un grand volume de données lorsque des réponses immédiates en temps réel ne sont pas requises.
L'inférence par lot consiste à utiliser un modèle de machine learning entraîné pour générer des prédictions sur un grand ensemble d'observations, ou "lot", en une seule fois.
Contrairement à l'inférence en ligne, où les prédictions sont effectuées sur des points de données uniques à mesure de leur arrivée, l'inférence par lot s'applique à des données collectées sur une période donnée. Cette approche privilégie un débit élevé et une efficacité de calcul plutôt qu'une faible latence. Comme le traitement est effectué hors connexion et non en réponse directe à une requête utilisateur, on parle également d'inférence statique. Les prédictions sont générées et stockées pour une utilisation ultérieure.
Le choix entre l'inférence par lots et l'inférence en ligne est une décision architecturale fondamentale lors de la conception d'un système de machine learning. Chaque approche répond à un besoin spécifique et est optimisée pour des critères de performance différents.
Fonctionnalité | Inférence par lot | Inférence en ligne |
Traitement des données | Traite un grand nombre de points de données en un seul job. | Traite les points de données individuellement ou par très petits groupes, au fur et à mesure de leur arrivée. |
Optimisation principale | Débit élevé et rentabilité | Faible latence et réactivité immédiate |
Latence | Latence élevée : les prédictions ne sont pas disponibles immédiatement (de quelques minutes à quelques heures). | Très faible latence : les prédictions sont renvoyées en quelques millisecondes. |
Appel | Déclenchement par programmation (par exemple, un job Cron) ou à la demande. | Déclenchement par une demande directe de l'utilisateur ou par un événement dans le système. |
Utilisation de ressources de calcul | Peut utiliser de puissantes ressources de calcul pendant une courte période, puis effectuer un scaling à zéro. | Nécessite qu'un serveur ou un point de terminaison soit constamment en cours d'exécution et prêt à accepter des requêtes. |
Exemple d'utilisation | Générer des recommandations de produits quotidiennes pour tous les utilisateurs d'un site d'e-commerce. | Prédire en temps réel si une transaction par carte de crédit est frauduleuse. |
Termes synonymes | Inférence hors ligne, traitement asynchrone, inférence statique. | Inférence en temps réel, traitement synchrone, inférence dynamique. |
Fonctionnalité
Inférence par lot
Inférence en ligne
Traitement des données
Traite un grand nombre de points de données en un seul job.
Traite les points de données individuellement ou par très petits groupes, au fur et à mesure de leur arrivée.
Optimisation principale
Débit élevé et rentabilité
Faible latence et réactivité immédiate
Latence
Latence élevée : les prédictions ne sont pas disponibles immédiatement (de quelques minutes à quelques heures).
Très faible latence : les prédictions sont renvoyées en quelques millisecondes.
Appel
Déclenchement par programmation (par exemple, un job Cron) ou à la demande.
Déclenchement par une demande directe de l'utilisateur ou par un événement dans le système.
Utilisation de ressources de calcul
Peut utiliser de puissantes ressources de calcul pendant une courte période, puis effectuer un scaling à zéro.
Nécessite qu'un serveur ou un point de terminaison soit constamment en cours d'exécution et prêt à accepter des requêtes.
Exemple d'utilisation
Générer des recommandations de produits quotidiennes pour tous les utilisateurs d'un site d'e-commerce.
Prédire en temps réel si une transaction par carte de crédit est frauduleuse.
Termes synonymes
Inférence hors ligne, traitement asynchrone, inférence statique.
Inférence en temps réel, traitement synchrone, inférence dynamique.
Un pipeline d'inférence par lot est un workflow structuré et automatisé qui transforme les données brutes en prédictions exploitables. Le processus peut être décomposé en plusieurs étapes clés, généralement orchestrées par un gestionnaire de workflows ou un système de planification.
Le processus commence par l'accumulation de données sur la durée. Ces données d'entrée, qui peuvent inclure des journaux d'activité utilisateur, des enregistrements de transactions ou des relevés de capteurs, sont collectées à partir de diverses sources et stockées dans un emplacement centralisé. Il s'agit souvent d'un lac de données créé sur un service tel que Google Cloud Storage ou d'un entrepôt de données tel que BigQuery.
Le pipeline d'inférence est lancé par un déclencheur. Ce déclencheur peut être :
Une fois déclenché, le job charge l'intégralité du lot de données d'entrée brutes. Il effectue ensuite les étapes nécessaires de prétraitement et d'ingénierie des caractéristiques pour transformer les données au format exact attendu par le modèle de machine learning. Cela peut inclure des tâches telles que le nettoyage des valeurs manquantes, le scaling des caractéristiques numériques et l'encodage des variables catégorielles.
Le système récupère le modèle de machine learning entraîné depuis un répertoire central, tel que Model Registry. Le lot de données prétraité est ensuite transmis au modèle, qui exécute l'inférence sur chaque observation de l'ensemble pour générer une prédiction correspondante.
Le résultat du modèle, c'est-à-dire l'ensemble des prédictions, est ensuite écrit dans un système de stockage. La destination est choisie en fonction de l'utilisation prévue des prédictions. Les destinations courantes incluent le chargement des résultats dans une table BigQuery pour l'analyse, dans une base de données Cloud SQL pour des recherches rapides par une application, ou dans des fichiers enregistrés dans Cloud Storage.
Une fois les prédictions stockées et prêtes, les systèmes en aval peuvent les utiliser. Un outil d'informatique décisionnelle peut interroger les résultats pour créer un tableau de bord sur les prévisions de comportement des clients. Le backend d'une application Web peut charger les recommandations de produits précalculées à afficher aux utilisateurs, ou une plate-forme d'automatisation marketing peut extraire une liste de clients susceptibles de se désabonner pour les cibler avec une nouvelle campagne.
Pour de nombreux cas d'utilisation en entreprise, l'inférence par lot peut offrir des avantages significatifs par rapport au traitement en temps réel.
Rentabilité
Le traitement par lot vous permet d'optimiser l'utilisation des ressources de calcul. Vous pouvez exécuter des jobs volumineux sur du matériel puissant pendant une courte période, puis arrêter les ressources, ce qui vous évite les coûts liés au maintien d'un serveur en fonctionnement permanent.
Haut débit et évolutivité
Les systèmes de traitement par lot sont conçus pour évoluer et traiter efficacement des téraoctets de données. Cela permet d'appliquer des modèles complexes à de très grands ensembles de données, ce qui s'avérerait trop lent ou trop coûteux pour un système en ligne.
Simplicité des opérations
Les pipelines d'inférence par lot sont souvent plus simples à créer et à gérer que les systèmes d'inférence en ligne à faible latence et haute disponibilité. Ils sont généralement plus résistants aux pannes temporaires et peuvent être facilement réexécutés en cas d'échec d'un job.
Permet une ingénierie des caractéristiques complexe
Comme l'inférence par lot n'est pas soumise à des exigences de faible latence, vous pouvez effectuer des opérations d'ingénierie des caractéristiques plus complexes et gourmandes en calcul sur vos données d'entrée, ce qui permet souvent d'obtenir des modèles plus précis.
Meilleure utilisation des ressources
Vous pouvez planifier l'exécution de jobs par lot pendant les heures creuses, en profitant de la capacité de calcul inutilisée et de tarifs Spot potentiellement réduits pour les machines virtuelles.
L'inférence par lot est la méthode privilégiée pour de nombreux processus métier essentiels, où les prédictions améliorent un produit ou un service sans nécessiter une génération en temps réel. Cette approche peut être très efficace dans divers secteurs pour résoudre des problèmes de données à grande échelle.
Secteur d'activité | Problème à résoudre | Exemple de solution |
E-commerce et commerce de détail | Générez quotidiennement des recommandations de produits personnalisées pour l'ensemble de votre base d'utilisateurs afin qu'elles puissent être récupérées instantanément lors de chaque visite sur le site. | La prédiction par lots Agent Platform peut exécuter un modèle de recommandation et charger les résultats dans une base de données à recherche rapide comme Cloud SQL ou Bigtable. |
Télécommunications et SaaS | Identifier les clients qui risquent fortement de se désabonner le mois prochain en analysant les schémas d'utilisation dans l'ensemble de la base de données client. | BigQuery ML vous permet d'exécuter un modèle de classification directement sur les données client stockées dans l'entrepôt de données. Les résultats sont écrits dans une nouvelle table pour l'équipe chargée de la conservation des données. |
Finance et assurance | Prévoir les tendances des marchés financiers ou calculer les scores de risque pour un portefeuille d'actifs entier, une tâche gourmande en ressources de calcul qui est effectuée périodiquement. | La prédiction par lots de Agent Platform peut exécuter des modèles de séries temporelles complexes selon une programmation, en fournissant les données nécessaires pour les rapports et tableaux de bord stratégiques. |
Gestion de la chaîne logistique et d'approvisionnement | Optimisez les niveaux d'inventaire dans des centaines d'entrepôts en exécutant une simulation complexe de prévision de la demande basée sur les données de vente et logistiques hebdomadaires. | Google Kubernetes Engine (GKE) fournit l'environnement personnalisé et hautes performances nécessaire pour exécuter des modèles de simulation spécialisés avec des exigences spécifiques en termes de bibliothèques et de matériel. |
Santé | Analysez un grand lot quotidien d'images médicales (comme des radiographies ou des scanners) pour détecter les anomalies potentielles qui seront ensuite examinées par un radiologue. | GKE avec des accélérateurs GPU est idéal pour exécuter des modèles de vision par ordinateur de deep learning sur de grands ensembles d'images, et offre des performances et un contrôle optimaux. |
Mentions légales et conformité | Traitez et classez des millions de documents existants pour extraire les entités clés, évaluer les sentiments, et rendre l'ensemble du corpus consultable et analysable. | Dataflow permet de créer un pipeline TLN évolutif qui prétraite le texte et exécute l'inférence, tandis que GKE peut être utilisé pour les conditions plus personnalisées des modèles. |
Secteur d'activité
Problème à résoudre
Exemple de solution
E-commerce et commerce de détail
Générez quotidiennement des recommandations de produits personnalisées pour l'ensemble de votre base d'utilisateurs afin qu'elles puissent être récupérées instantanément lors de chaque visite sur le site.
La prédiction par lots Agent Platform peut exécuter un modèle de recommandation et charger les résultats dans une base de données à recherche rapide comme Cloud SQL ou Bigtable.
Télécommunications et SaaS
Identifier les clients qui risquent fortement de se désabonner le mois prochain en analysant les schémas d'utilisation dans l'ensemble de la base de données client.
BigQuery ML vous permet d'exécuter un modèle de classification directement sur les données client stockées dans l'entrepôt de données. Les résultats sont écrits dans une nouvelle table pour l'équipe chargée de la conservation des données.
Finance et assurance
Prévoir les tendances des marchés financiers ou calculer les scores de risque pour un portefeuille d'actifs entier, une tâche gourmande en ressources de calcul qui est effectuée périodiquement.
La prédiction par lots de Agent Platform peut exécuter des modèles de séries temporelles complexes selon une programmation, en fournissant les données nécessaires pour les rapports et tableaux de bord stratégiques.
Gestion de la chaîne logistique et d'approvisionnement
Optimisez les niveaux d'inventaire dans des centaines d'entrepôts en exécutant une simulation complexe de prévision de la demande basée sur les données de vente et logistiques hebdomadaires.
Google Kubernetes Engine (GKE) fournit l'environnement personnalisé et hautes performances nécessaire pour exécuter des modèles de simulation spécialisés avec des exigences spécifiques en termes de bibliothèques et de matériel.
Santé
Analysez un grand lot quotidien d'images médicales (comme des radiographies ou des scanners) pour détecter les anomalies potentielles qui seront ensuite examinées par un radiologue.
GKE avec des accélérateurs GPU est idéal pour exécuter des modèles de vision par ordinateur de deep learning sur de grands ensembles d'images, et offre des performances et un contrôle optimaux.
Mentions légales et conformité
Traitez et classez des millions de documents existants pour extraire les entités clés, évaluer les sentiments, et rendre l'ensemble du corpus consultable et analysable.
Dataflow permet de créer un pipeline TLN évolutif qui prétraite le texte et exécute l'inférence, tandis que GKE peut être utilisé pour les conditions plus personnalisées des modèles.
Gemini Enterprise Agent Platform est la plate-forme d'apprentissage automatique gérée de Google Cloud. Elle offre une approche simplifiée et sans serveur pour l'inférence par lot. Le processus consiste à configurer un job et à laisser la plate-forme gérer l'infrastructure sous-jacente.
Avant de commencer, vous avez besoin de trois éléments clés :
Vous pouvez lancer le job dans la console Google Cloud, à l'aide de l'outil de ligne de commande gcloud ou de façon programmatique à l'aide du SDK Agent Platform. Lorsque vous créez le job, vous devez fournir la configuration suivante :
Une fois que vous avez envoyé le job, Agent Platform prend le relais. Il provisionne automatiquement les ressources de calcul que vous avez spécifiées, exécute vos données d'entrée dans le modèle, génère les prédictions et les enregistre dans l'emplacement de sortie désigné. Une fois le job terminé, Agent Platform réduit automatiquement la capacité de toutes les ressources à zéro. Vous ne payez donc que le temps de calcul que vous utilisez. Vous pouvez surveiller la progression du job et afficher les journaux directement dans la console Google Cloud.
Une fois que le job passe à l'état "Réussite", vos prédictions sont prêtes. Vos applications en aval, vos outils d'analyse ou vos tableaux de bord d'informatique décisionnelle peuvent désormais accéder aux fichiers de sortie dans Cloud Storage ou à la nouvelle table dans BigQuery.
L'utilisation de Google Kubernetes Engine (GKE) pour l'inférence par lot offre une portabilité et un contrôle maximaux, ce qui en fait une solution idéale pour les équipes qui maîtrisent déjà Kubernetes ou qui ont des exigences spécifiques. La configuration implique de conteneuriser votre logique d'inférence et de gérer son exécution avec des ressources Kubernetes.
Étape 1 : Conteneurisez l'application d'inférence. La première étape consiste à empaqueter votre code de prédiction dans une image de conteneur.
Étape 2 : Configurez un job Kubernetes. Au lieu d'un déploiement de longue durée, vous définissez la tâche par lot à l'aide d'un fichier manifeste Kubernetes Job ou CronJob (fichier YAML). Ce fichier spécifie les éléments suivants :
Étape 3 : Exécutez le job sur le cluster GKE. Vous appliquez le fichier manifeste à votre cluster GKE à l'aide de kubectl. Le plan de contrôle de GKE planifie ensuite l'exécution d'un pod pour votre conteneur d'inférence sur un nœud approprié du cluster. Pour les tâches récurrentes, une ressource CronJob crée automatiquement un job en fonction d'une planification prédéfinie (par exemple, 0 2 * * * à 2h tous les jours).
Étape 4 : Implémentez le traitement des données et stockez les résultats. Contrairement à l'approche Agent Platform gérée, le code d'application de votre conteneur est responsable de la gestion de toutes les E/S de données. Votre script doit inclure la logique permettant de se connecter à la source de données (par exemple, un bucket Cloud Storage), de lire les données qu'elle contient, puis d'écrire les prédictions finales dans la destination de votre choix (par exemple, une base de données Cloud SQL).
Commencez à créer sur Google Cloud avec 300 $ de crédits inclus et plus de 20 produits toujours sans frais.