Qu'est-ce que l'inférence IA ?

L’inférence de l’IA, simplifiée et expliquée

En machine learning , l’inférence de l’IA consiste à utiliser un modèle d’IA entraîné pour faire des prédictions sur de nouvelles données. Essentiellement, toute instance de modèle d’intelligence artificielle générant des sorties ou prenant des décisions dans une application d’IA dans le monde réel constitue une inférence de l’IA. En termes simples, pendant l’inférence de l’IA, un modèle entraîné applique les schémas qu’il a appris à partir de ses données d’entraînement afin de déduire la sortie correcte pour une entrée donnée.

Tout machine learning, qu’il s’agisse des modèles de détection de spam, des systèmes de navigation des voitures autonomes ou de l’IA générative, se résume à la reconnaissance de formes. Les modèles sont « entraînés » pour être performants sur un jeu de données contenant des exemples de tâches ou de points de données. Au cours de l’entraînement du modèle, ses paramètres (et ses hyperparamètres) sont ajustés jusqu’à ce que sa prise de décision « corresponde » aux schémas des données d’entraînement. L’hypothèse fondamentale du machine learning est que si les données d’entraînement sont suffisamment pertinentes par rapport à ce que le modèle verra dans le monde réel, il fera des prédictions exactes dans ces cas d’utilisation.

Alors que le jargon de l’IA est hautement technique, « inférence de l’IA » est en réalité un terme littéral et intuitif.

  • Un modèle de prévision boursière ne sait pas comment le prix d’une action donnée va évoluer ; en comparant l’historique de cette action avec les tendances de prix antérieures, il déduit ce qui va se passer par la suite.

  • Un modèle de détection de spam ne sait pas si un e-mail donné est indésirable ; en fonction de la ressemblance entre cet e-mail et les exemples de spam qu’il a vus lors de l’entraînement, il déduit qu’il s’agit ou pas de spam.

  • Un grand modèle de langage (LLM) déduit de manière itérative le prochain mot, ou plutôt token, en se basant sur les schémas linguistiques des millions d’échantillons de texte sur lesquels il a été entraîné.

  • Les réseaux sociaux déduisent le contenu avec lequel vous êtes le plus susceptible d’interagir en fonction de celui avec lequel vous et des personnes similaires avez déjà interagi.

Alors que l’objectif de l’entraînement de l’IA est d’améliorer la précision et l’alignement des modèles, l’objectif de l’inférence de l’IA est de déployer ce modèle entraîné de manière maximale, efficace et rentable. Un même modèle d’IA peut fonctionner différemment selon les cadres d’inférence.

Il n’y a pas de configuration d’inférence IA « optimale » universelle. Il existe de nombreuses façons de répartir les workloads, les différents types de matériel (et les algorithmes de calcul avec lesquels les utiliser), et les différents environnements pour accéder à ce matériel. La configuration idéale pour un scénario donné dépendra de votre cas d’utilisation et de votre workload. Pour les entreprises, le défi consiste généralement à identifier une approche de l’inférence qui concilie faible latence, évolutivité et rentabilité.

Inférence et entraînement de l’IA

L’inférence et l’entraînement de l’IA impliquent un modèle qui fait des prédictions sur les données d’entrée. La différence réside dans leurs objectifs respectifs et, dans le cas de l’entraînement de l’IA, dans les mesures supplémentaires prises à cet effet.

C’est lors de l’entraînement que se produit l’« apprentissage » dans le machine learning. Lors de l’entraînement, un modèle de machine learning fait des prédictions à partir d’échantillons de données d’entraînement. Dans l’apprentissage supervisé, une fonction de perte calcule l’erreur moyenne (ou « perte ») de chaque prédiction, et un algorithme d’optimisation est utilisé pour mettre à jour les paramètres du modèle de manière à réduire la perte. Ce processus est répété jusqu’à ce que les pertes soient réduites à un niveau acceptable. L’apprentissage par renforcement fonctionne de la même manière, mais avec l’objectif de maximiser une fonction de récompense au lieu de minimiser une fonction de perte.

En bref, l’entraînement de l’IA implique généralement un passage en avant pour que le modèle génère une sortie en réponse à chaque entrée, et un passage en arrière pour calculer les améliorations potentielles des paramètres du modèle. Ces mises à jour des paramètres constituent la « connaissance » du modèle de machine learning.

Dans l’inférence de l’IA, le modèle entraîné fait ensuite des prédictions sur des données d’entrée réelles. Lors de l’inférence, l’IA utilise ce qu’elle a « appris », c’est-à-dire les mises à jour des paramètres du modèle qui ont été effectuées afin d’améliorer sa performance sur les données d’entraînement, afin de déduire la sortie correcte pour les nouvelles données d’entrée. Contrairement à l’entraînement des modèles, l’inférence n’implique qu’un passage avant.

Bien que l’entraînement et l’inférence soient généralement des étapes distinctes, il convient de noter qu’elles ne s’excluent pas tout à fait. Par exemple, l’algorithme de recommandation d’un réseau social a déjà été entraîné sur de grands jeux de données de comportement utilisateur avant que vous ne rejoigniez la plateforme, et effectue des inférences à chaque fois qu’il vous suggère des contenus. Mais ce modèle entraîné est également finement réglé en permanence selon vos comportements pour affiner ses suggestions en fonction de la manière dont vous interagissez avec le contenu.

Types d’inférence de l’IA

« Type » est un mot vague : il existe de nombreuses façons d’exécuter l’inférence de l’IA, et donc de nombreuses façons de délimiter ses variantes. Mais les deux principales stratégies d’inférence de l’IA sont l’inférence par lots et l’inférence en ligne.

Inférence en ligne

Avec l’inférence en ligne, un modèle entraîné traite les données d’entrée immédiatement, une entrée à la fois. L’inférence en ligne convient à tout système d’IA dont les sorties sont sensibles au temps (comme les véhicules autonomes, les enchères publicitaires numériques ou la tarification dynamique), ou qui requièrent des interactions en direct avec les utilisateurs (comme les chatbots ou la traduction automatique).

L’inférence en ligne implique généralement des coûts et une complexité plus élevés, surtout pour les workloads intensives et les grands réseaux de neurones qui alimentent les modèles d’apprentissage profond. Elle est toutefois souvent nécessaire dans tout cas d’utilisation nécessitant une prise de décision en temps réel. Un chatbot ou une voiture autonome doivent traiter les données en temps réel pour éviter de dégrader l’expérience utilisateur. La fonctionnalité d’un système d’IA qui prédit si un demandeur doit obtenir un prêt n’est pas vraiment affectée par un léger délai entre l’entrée et la sortie, mais dans le cas d’un véhicule autonome, quelques millisecondes en plus peuvent mettre en danger les passagers.

Inférence par lots

Dans l’inférence par lots, un modèle entraîné traite un grand volume d’entrées de manière asynchrone, par groupes (ou « lots »). Chaque lot est généralement programmé pour une période donnée. Par exemple, une entreprise peut utiliser l’inférence par lots pour générer la nuit des rapports sur toute l’activité de la journée. Cela permet une plus grande flexibilité et une plus grande efficacité, faisant de l’inférence par lots l’option la plus rentable. Cependant, cela n’est pratique que dans les situations où la rapidité d’exécution n’est pas importante.

L’inférence par lots permet également une utilisation plus efficace du matériel. Par exemple, les GPU contiennent plusieurs milliers d’unités de traitement (ou « cœurs »), chacune pouvant effectuer des calculs simultanément. Exécuter une inférence pour une entrée qui ne mobilise pas tous ces cœurs, c’est comme laisser des sièges vides dans un bus : cela peut être nécessaire dans les situations où le temps est compté, mais c’est une utilisation sous-optimale des ressources. L’inférence par lots s’exécute uniquement lorsque votre matériel est « complet », pour ainsi dire.

De plus, les paramètres qui, dans le cas des modèles d’apprentissage profond, représentent souvent littéralement des milliards de poids, doivent être chargés dans la mémoire système à chaque inférence. Cela implique une consommation d’énergie et des coûts. L’inférence par lots réduit le nombre de fois où les poids doivent être chargés dans la mémoire vive, et répartit le coût sur l’ensemble du lot.

Micro-batching

Le micro-batching est une approche à mi-chemin entre l’inférence en ligne et l’inférence par lots. Comme son nom l’indique, il s’agit d’exécuter l’inférence par petits lots.

Ce n’est pas une taille de lot claire et quantifiable qui différencie le « micro-batching» du « batching ». Les deux approches se distinguent principalement par leurs objectifs : le micro-batching vise à augmenter le débit du modèle tout en préservant (principalement) sa rapidité, tandis que l’inférence par lots classique vise à maximiser l’efficacité et ne prend généralement pas en compte la latence. Dans le cas de l’inférence par lots, une entrée peut être traitée plusieurs minutes, voire plusieurs heures après sa réception, tandis que le micro-batching vise généralement à réduire le délai à quelques millisecondes ou secondes.

L’application la plus courante du micro-batching est probablement l’inférence des LLM dans le cloud par le biais de plateformes majeures telles que Claude d’Anthropic et ChatGPT d’OpenAI. Lorsque des milliers d’utilisateurs sollicitent un chatbot simultanément, ces services traitent généralement plusieurs prompts en parallèle, ce qui augmente ainsi l’efficacité sans retard perceptible par les utilisateurs finaux.

Environnements d’inférence de l’IA

L’un des éléments les plus importants à déterminer lors de la conception d’un écosystème d’IA est l’endroit où la workload d’inférence s’exécutera. En d’autres termes, l’endroit où se trouve le matériel et la manière dont vous allez y accéder.

Les environnements de déploiement appartiennent généralement à l’une de ces quatre catégories, chacune ayant ses propres avantages et inconvénients.

  • Sur site

  • Cloud

  • Déploiement Edge

  • Sur l’appareil

Déploiement sur site

Lors d’un déploiement sur site, les modèles d’IA sont exécutés sur du matériel physique que vous (ou votre entreprise) possédez et entretenez vous-même.

Le déploiement sur site permet de contrôler au mieux les workloads d’IA, car vous décidez de la manière et du moment où les données sont traitées et les ressources de calcul allouées. Ceci est particulièrement utile dans les secteurs hautement réglementés tels que la santé, la finance, le public et le juridique, où les exigences en matière de protection des données et de sécurité doivent être strictement respectées.

Ce contrôle s’accompagne d’un compromis en termes de coûts et de main-d’œuvre. Le déploiement sur site, en particulier avec le matériel nécessaire pour les workloads à l’échelle de l’entreprise et les modèles massifs généralement associés à l’IA générative, implique un investissement initial important. Cela demande également de disposer de professionnels de l’informatique dédiés à la gestion de ces serveurs.

Déploiement cloud

Avec le déploiement cloud, les modèles sont exécutés sur des serveurs distants gérés par des fournisseurs tiers (comme IBM) dans un grand centre de données. Cela permet aux entreprises d’utiliser du matériel d’IA très puissant sans l’investissement initial important nécessaire en cas d’achat ni la main-d’œuvre requise en permanence pour son entretien. Ainsi, le déploiement dans le cloud représente généralement la voie la plus rapide vers l’évolutivité, en particulier dans les cas où vous devez rapidement augmenter vos ressources informatiques pour répondre à une hausse de la demande.

Cette flexibilité et cette évolutivité s’accompagnent d’un compromis en matière de souveraineté des données et, dans certains cas, de latence et de coûts à long terme. Les données peuvent circuler vers et depuis les serveurs cloud, ce qui peut avoir un effet négatif sur la vitesse d’inférence (bien que cela soit souvent annulé par le matériel plus puissant généralement disponible auprès des principaux fournisseurs de cloud). Cela entraîne également des complications théoriques en ce qui concerne la provenance des données, car celles-ci sont exposées à un plus grand nombre d’entités que dans les scénarios sur site.

Déploiement edge

Le déploiement edge désigne l’utilisation de ressources informatiques physiquement proches de la source de données (par exemple, via des dispositifs IdO et des réseaux locaux).

D’une manière générale, le déploiement edge peut être considéré comme un « cloud sur site ». C’est particulièrement utile lorsque les données doivent être agrégées ou distribuées à un certain nombre d’appareils tels que les capteurs sur la chaîne de montage d’une usine ou les appareils de surveillance dans un hôpital, et traitées en temps quasi réel. Dans de tels scénarios, l’exécution des inférences à l’aide d’appareils situés à la périphérie (edge) d’un réseau local permet un traitement plus rapide et une meilleure confidentialité que dans le cloud.

Ces avantages sont, dans une certaine mesure, atténués par le fait que l’edge computing utilise généralement un matériel relativement limité comparé à ce que proposent les fournisseurs de cloud. Et à mesure que les réseaux locaux s’étendent, gérer les mises à jour sur des centaines, voire des milliers de « nœuds edge » devient de plus en plus complexe.

Déploiement sur appareil

Le déploiement sur appareil est le plus simple : l’inférence de l’IA s’exécute directement sur l’appareil de l'utilisateur final, comme un ordinateur portable ou un smartphone.

Le déploiement sur appareil est simple et sécurisé, et garantit théoriquement le plus haut niveau de confidentialité aux utilisateurs. Il est, bien sûr, limité par la capacité de calcul de l’appareil : le calcul disponible dans un smartphone, ou même dans un ordinateur grand public haute performance, est généralement bien inférieur à celui du matériel spécialisé. En particulier sur les smartphones, l’inférence sur l’appareil est généralement limitée à certaines tâches comme les filtres de caméra, la reconnaissance faciale ou le speech to text.

AI Academy

Devenir un expert en IA

Obtenez les connaissances nécessaires pour privilégier les investissements dans l’IA qui favorisent la croissance commerciale. Lancez-vous dès aujourd’hui avec notre AI Academy gratuite et menez l’avenir de l’IA au sein de votre organisation.

Matériel pour l’inférence de l’IA

L'inférence de l'IA est un processus complexe qui implique d'entraîner un modèle IA sur des jeux de données appropriés jusqu'à ce qu'il puisse inférer des réponses exactes. Ce processus, très gourmand en ressources de calcul, requiert du matériel et des logiciels spécifiques. Avant d'examiner le processus d'entraînement des modèles IA pour l'inférence, explorons quelques-uns des matériels spécialisés qui le permettent :

Unité de traitement graphique (GPU)

Les GPU étaient, comme leur nom l’indique, conçus à l’origine pour le rendu graphique (dans les jeux vidéo, par exemple). Le rendu des graphiques 3D, comme l’exécution d’inférences pour les réseaux de neurones profonds, requiert des multiplications matricielles massives (par exemple, pour calculer les effets de la lumière et de la texture sur des milliers de pixels simultanément).

La possibilité d’utiliser ce parallélisme pour les mathématiques (au lieu des graphiques) a nettement évolué lorsque NVIDIA a introduit l’architecture CUDA (Compute Unified Device Architecture), une plateforme logicielle, une API et un modèle de programmation permettant aux développeurs d’écrire du code qui s’exécute directement sur les milliers de cœurs parallèles de GPU. Aujourd’hui, les GPU demeurent le matériel standard du secteur pour l’entraînement et l’exécution des modèles d’apprentissage profond.

Unités de traitement tensoriel (TPU)

Les TPU sont des puces personnalisées, spécialement conçues par Google pour les réseau de neurones. Alors que les GPU sont des processeurs parallèles flexibles à usage général, les TPU sont conçues exclusivement pour les calculs matriciels à haute vitesse. Bien que moins polyvalentes que les GPU, les TPU offrent une vitesse et une efficacité énergétique supérieures lors du traitement d’énormes quantités de données provenant de réseaux de neurones.

Unités de traitement neuronal (NPU)

Les unités de traitement neuronal (NPU), comme les TPU, ont été spécialement conçues pour traiter les calculs des réseaux de neurones. Elles sont généralement utilisées dans les smartphones et autres appareils mobiles, car leurs capacités plus ciblées réduisent la consommation d’énergie par rapport à celle des GPU.

Réseaux de portes programmables in situ

Les réseaux de portes programmables in situ (FPGA) sont un type de circuit intégré configurable qui peut être programmé (et reprogrammé) pour répondre aux exigences de certaines applications, y compris les opérations d’intelligence artificielle. S’ils offrent généralement une puissance de traitement inférieure à celle des GPU de pointe, les FPGA sont avantageux lorsqu’une personnalisation extrême est nécessaire.

Circuits intégrés spécifiques aux applications

Contrairement aux FPGA, les ASIC ne peuvent être ni personnalisés ni reconfigurés. Ils sont spécialement conçus pour accomplir une seule tâche avec une efficacité maximale. Les TPU de Google, par exemple, sont des ASIC conçus pour exécuter exclusivement des opérations de réseau de neurones via Tensorflow, PyTorch et JAX.

Inférence d’IA distribuée

Les workloads d’entraînement ou d’inférence d’un grand modèle d’IA générative dépassent souvent la capacité du matériel accélérateur le plus performant qui soit. Lorsque votre workload est trop importante pour un seul GPU, elle peut être répartie sur plusieurs processeurs en utilisant une ou plusieurs techniques de parallélisme pour diviser et répartir le travail. Il existe de nombreux paradigmes de parallélisme, mais les plus importants sont le parallélisme des données, le parallélisme tensoriel et le parallélisme des pipelines.

Les développeurs peuvent souvent utiliser des cadres open source tels que vLLM pour optimiser et simplifier le processus de distribution de l’inférence sur plusieurs appareils.

Parallélisme des données

Avec le parallélisme des données, une réplique du modèle entier est copiée sur chaque processeur. Le jeu de données d’entrée est ensuite divisé en plusieurs lots (ou « shards »), et chaque copie du modèle, c’est-à-dire chaque processeur, gère un seul lot. S’il s’agit probablement du moyen de parallélisme le plus simple, chaque processeur doit être suffisamment grand pour prendre en charge tous les paramètres du modèle en mémoire. Lorsqu’il s'agit de LLM et de modèles vision-langage (VLM) de grande taille, avec des dizaines ou des centaines de milliards de paramètres, c’est rarement possible. Dans de tels cas, d’autres paradigmes de parallélisme doivent être utilisés.

Parallélisme des pipelines

Avec le parallélisme des pipelines, les différentes couches d’un réseau de neurones sont attribuées à différents GPU. Par exemple, un réseau de neurones à 12 couches peut être réparti sur 3 GPU, le premier GPU se voyant attribuer les 4 premières couches, le deuxième GPU se chargeant des 4 couches intermédiaires, et le troisième GPU des 4 dernières couches GPU. Les données sont ensuite traitées de manière séquentielle : la sortie du premier GPU est transmise au deuxième GPU, la sortie du deuxième GPU est transmise au troisième, et le troisième GPU calcule la sortie finale du modèle.

Pour être efficace, le parallélisme des pipelines requiert généralement un mini-batching pour que chaque GPU traite toujours les données simultanément, au lieu de rester inactif jusqu’à ce qu’il reçoive les données du GPU précédent dans la séquence. Dans l’exemple cité dans le paragraphe précédent, le premier GPU pourrait commencer à traiter un nouveau mini-lot de données d’entrée immédiatement après avoir transmis la sortie du premier mini-lot au deuxième GPU.

Naturellement, un système utilisant le parallélisme de pipeline nécessite un certain temps pour « monter en puissance » afin d’atteindre une utilisation optimale des dispositifs. Dans notre exemple, le deuxième GPU ne peut pas commencer à fonctionner tant qu’il n’a pas reçu les données du premier ; le troisième GPU ne peut pas commencer à fonctionner tant que les deux premiers GPU n’ont pas complètement traité le mini-lot ; le quatrième GPU ne peut démarrer qu’une fois le troisième terminé.

Parallélisme tensoriel

Pour les très grands modèles, même une seule couche peut être trop grande pour contenir un seul processeur. Dans le parallélisme tensoriel, les couches sont subdivisées, chaque processeur recevant une partie du tenseur des poids du modèle. L’embedding vectoriel, c’est-à-dire la représentation tensorielle des données d'entrée, est également subdivisé, chaque processeur recevant un sous-ensemble correspondant des données d’entrée.

Le parallélisme tensoriel réduit considérablement les besoins en mémoire sur chaque appareil, car chaque processeur doit charger en mémoire des tenseurs plus petits que ceux des autres paradigmes de parallélisme. Cela implique un certain compromis en termes de complexité, car un plus grand nombre de communications entre appareils et d’étapes mathématiques sont nécessaires pour intégrer les sorties de chaque GPU.

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Solutions connexes
IBM watsonx.ai

Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio d’entreprise nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.

Découvrir watsonx.ai
Solutions d’intelligence artificielle

Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.

Découvrir les solutions d’IA
Conseils et services en matière d’IA

Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.

Découvrir les services d’IA
Passez à l’étape suivante

Bénéficiez d’un accès centralisé aux fonctionnalités couvrant le cycle de développement de l’IA. Produisez des solutions IA puissantes offrant des interfaces conviviales, des workflows et un accès à des API et SDK conformes aux normes du secteur.

  1. Découvrir watsonx.ai
  2. Réserver une démo en direct