Qu'est-ce que l'inférence par lot ?

Une fois qu'un modèle de machine learning est entraîné, l'étape suivante consiste à l'utiliser pour effectuer 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 connexion 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.

Définition de l'inférence par lot

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 l'efficacité du 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.

Principales caractéristiques de l'inférence par lot

  • Traitement asynchrone  : les prédictions sont générées selon un calendrier prédéfini (par exemple, toutes les heures ou tous les jours) ou à la demande, et non en temps réel à mesure que de nouvelles données arrivent.
  • Débit élevé  : le système est optimisé pour traiter un grand nombre de points de données en une seule exécution, ce qui le rend très efficace.
  • Rentabilité : en exécutant les tâches selon un calendrier, vous pouvez utiliser les ressources de calcul lorsqu'elles sont les plus disponibles ou les moins chères, ce qui réduit considérablement les coûts opérationnels.
  • Tolérance à la latence : l'hypothèse principale est que l'application qui consomme les prédictions n'a pas besoin d'une réponse immédiate. Un délai de quelques minutes à plusieurs heures entre la collecte des données et la génération des prédictions est acceptable.

Inférence par lot et inférence en ligne

Le choix entre l'inférence par lot 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 a un objectif différent et est optimisée pour des caractéristiques de performances différentes.

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 un seul point de données ou un très petit groupe de points de données à mesure qu'ils arrivent.

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 réduire l'échelle à 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 un seul point de données ou un très petit groupe de points de données à mesure qu'ils arrivent.

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 réduire l'échelle à 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.

Comment fonctionne l'inférence par lot ?

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 ces étapes clés, qui sont généralement orchestrées par un gestionnaire de workflows ou un système de planification.

Étape 1 : Collecte et stockage des données

Le processus commence par l'accumulation de données au fil du temps. 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 basé sur un service tel que Google Cloud Storage ou d'un entrepôt de données tel que BigQuery.

Étape 2 : Déclencher le job par lot

Le pipeline d'inférence est lancé par un déclencheur. Ce déclencheur peut être :

  • Basé sur l'heure  : un planificateur (comme un job Cron) lance le job à intervalles réguliers, par exemple tous les matins à 1h.
  • Basé sur des événements : le job démarre en réponse à un événement spécifique, comme l'arrivée d'un nouveau fichier de données dans un bucket Cloud Storage.

Étape 3 : Prétraiter les données

Une fois déclenché, le job charge l'intégralité du lot de données brutes en entrée. 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.

Étape 4 : Générer des prédictions

Le système récupère le modèle de machine learning entraîné à partir d'un dépôt central, tel que Vertex AI 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.

Étape 5 : Stocker les résultats

La sortie du modèle, c'est-à-dire l'ensemble des prédictions, est ensuite écrite dans un système de stockage. La destination est choisie en fonction de la façon dont les prédictions seront utilisées. 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 leur enregistrement sous forme de fichiers dans Cloud Storage.

Étape 6 : Utiliser les prédictions

Les prédictions étant désormais 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 du comportement client prédit. Le backend d'une application Web peut charger les recommandations de produits précalculées à afficher aux utilisateurs, ou une plate-forme d'automatisation du marketing peut extraire une liste de clients susceptibles de se désabonner pour les cibler avec une nouvelle campagne.

Avantages de l'inférence par lot

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 votre 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.

Débit et évolutivité élevés

Les systèmes 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 pourrait être trop lent ou trop coûteux pour un système en ligne.

Simplicité des opérations

Les pipelines d'inférence par lot peuvent être 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 échecs passagers 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.

Cas d'utilisation de l'inférence par lots

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 des recommandations de produits personnalisées pour l'ensemble de la base d'utilisateurs chaque jour afin qu'elles soient prêtes à être récupérées rapidement lorsque les utilisateurs visitent le site.

La prédiction par lots Vertex AI 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 Vertex AI 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 des recommandations de produits personnalisées pour l'ensemble de la base d'utilisateurs chaque jour afin qu'elles soient prêtes à être récupérées rapidement lorsque les utilisateurs visitent le site.

La prédiction par lots Vertex AI 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 Vertex AI 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.

Configurer l'inférence par lot dans Vertex AI

Vertex AI est la plate-forme de machine learning 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.

Préparez vos ressources.

Avant de commencer, vous avez besoin de trois éléments clés :

  • Un modèle entraîné, qui doit être importé dans Vertex AI Model Registry.
  • Vos données d'entrée mises en forme conformément aux exigences de votre modèle. Ces données doivent se trouver dans Google Cloud Storage (par exemple, sous forme de fichiers JSON ou CSV) ou dans une table BigQuery.
  • Un emplacement de destination pour la sortie, qui sera également un bucket Cloud Storage ou une table BigQuery.

Créer un job de prédiction par lot

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 Vertex AI. Lorsque vous créez le job, vous devez fournir la configuration suivante :

  • Le modèle spécifique de Model Registry que vous souhaitez utiliser.
  • Le chemin d'accès à vos données d'entrée et l'emplacement de vos résultats.
  • Le type de machine et l'accélérateur (par exemple, GPU) que vous souhaitez utiliser pour le job. Cela vous permet d'équilibrer les coûts et les performances.

Exécuter et surveiller le job

Une fois que vous avez envoyé le job, Vertex AI 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é, Vertex AI 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.

Accéder aux prédictions et les utiliser

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.

Relevez vos plus grands défis avec Google Cloud

Les nouveaux clients bénéficient de 300 $ de crédits à dépenser sur Google Cloud.

Configurer l'inférence par lot dans GKE

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.

  • Écrivez un script (en Python, par exemple) qui charge votre modèle entraîné, lit les données d'une source, effectue l'inférence et écrit les résultats dans une destination.
  • Créez un Dockerfile. Ce fichier définit les étapes de création de votre conteneur, y compris la spécification d'une image de base, l'installation des dépendances (comme TensorFlow ou pandas) et la copie de votre fichier de modèle et de votre script d'inférence dans l'image.
  • Créez l'image et transférez-la vers un registre de conteneur comme Artifact Registry

É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 :

  • L'image de conteneur à utiliser depuis Artifact Registry
  • Les ressources de calcul requises (CPU, mémoire, GPU)
  • Toutes les configurations nécessaires, telles que les variables d'environnement pour les chemins d'accès aux fichiers ou les secrets pour les identifiants de base de données

É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 Vertex AI 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).

Quel problème essayez-vous de résoudre ?
What you'll get:
Guide par étapes
Architecture de référence
Solutions pré-intégrées disponibles
Ce service a été créé avec Vertex AI. Vous devez avoir au moins 18 ans pour l'utiliser. Ne saisissez pas d'informations sensibles, confidentielles ni personnelles.

Autres ressources

Passez à l'étape suivante

Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.

  • Faites des économies grâce à notre approche transparente concernant la tarification
  • Le paiement à l'usage de Google Cloud permet de réaliser des économies automatiques basées sur votre utilisation mensuelle et des tarifs réduits pour les ressources prépayées. Contactez-nous dès aujourd'hui afin d'obtenir un devis.
Google Cloud