Un modèle mental utile
L’entraînement définit les paramètres numériques appris par le modèle. L’inférence maintient ces paramètres fixes et les utilise.
Imaginez un modèle comme un calcul enregistré plutôt que comme une base de données contenant des réponses toutes faites. Pendant l’inférence, le système fournit des valeurs à l’entrée du calcul, exécute celui-ci et reçoit des valeurs à sa sortie. Le résultat provient de l’application des mêmes relations apprises à cette entrée particulière.
Cette distinction est importante, car un modèle ne récupère généralement pas une réponse terminée stockée pendant l’entraînement. Il calcule un résultat pour l’entrée qu’il reçoit.
Comment fonctionne l’inférence
Le calcul exact dépend du modèle d’IA, mais le cheminement de base reste le même :
- L’entrée est mise sous la forme attendue par le modèle.Une image peut être redimensionnée. Le texte peut être divisé en éléments numériques. Une ligne de tableau peut être normalisée. Cette préparation est souvent regroupée dans un « pipeline d’inférence », même si elle se déroule en dehors du modèle lui-même.
- Le modèle exécute le calcul qu’il a appris.Les données passent de l’entrée du modèle à sa sortie à travers ses couches. Cette direction du calcul est appelée passe avant.
- Le modèle produit une sortie numérique.Un classifieur peut produire des scores pour plusieurs étiquettes. Un modèle de prévision peut produire un nombre ou une plage de valeurs. Un modèle de langage produit des scores pour les jetons suivants possibles, c’est-à-dire les éléments de texte qu’il peut traiter.
- Le logiciel interprète cette sortie ou effectue une sélection à partir de celle-ci.Il peut appliquer un seuil, choisir l’étiquette ayant le score le plus élevé, échantillonner un jeton ou mettre en forme un résultat. Cette étape fait partie du pipeline d’inférence environnant, mais pas toujours du modèle.
- Un système de mise à disposition renvoie ou stocke le résultat.La mise à disposition désigne l’infrastructure qui charge le modèle, accepte les tâches, les planifie et fournit les sorties. L’inférence est l’utilisation du modèle effectuée par ce système.
Le sens étroit du terme inférence correspond à l’étape 2 et à la sortie produite par le modèle. En pratique, les ingénieurs utilisent aussi ce terme pour désigner le chemin plus large allant de l’entrée préparée au résultat exploitable. Lorsque les détails comptent, demandez quelle limite est visée.
raw input
|
v
input preparation
|
v
fixed trained model ----> numeric model output
|
v
selection or policy
|
v
usable resultLe modèle ne met normalement pas à jour ses paramètres appris au cours de ce cheminement. Consigner une interaction en vue d’un éventuel entraînement ultérieur n’est pas la même chose qu’apprendre pendant cette inférence.
Un exemple détaillé
Supposons qu’un classifieur de courriers indésirables reçoive un e-mail. Après préparation de l’e-mail pour le modèle, une passe avant produit :
spam: 0.82
not spam: 0.18Ces scores constituent la sortie de l’inférence. Ils expriment le degré de soutien relatif du modèle en faveur de ses étiquettes disponibles ; ils ne prouvent pas que l’e-mail est indésirable.
Supposons maintenant que le service de messagerie applique la règle suivante : déplacer un message vers les courriers indésirables lorsque le score correspondant est supérieur ou égal à 0,70. Le service déplace ce message parce que 0,82 franchit ce seuil.
La distinction est facile à vérifier. Si le service relève le seuil à 0,90, le même modèle peut produire le même score de 0,82 tandis que le message reste dans la boîte de réception. L’inférence n’a pas changé. C’est la politique de l’application qui a changé.
Cette séparation apparaît dans de nombreux systèmes. Un modèle de risque produit un score ; une banque décide à partir de quel score un examen est déclenché. Un modèle médical repère une région dans une image ; un clinicien l’interprète. Un modèle de recommandation classe des éléments ; un produit décide combien il doit en afficher.
Pourquoi la génération de texte nécessite des inférences répétées
Pour un classifieur, une seule passe avant peut produire la sortie complète du modèle. Un modèle de langage autorégressif fonctionne différemment.
À partir d’une invite, le modèle produit d’abord des scores pour les éléments qui pourraient suivre. Une règle de décodage sélectionne ensuite un jeton. Le jeton sélectionné est ajouté au texte, puis le modèle est exécuté de nouveau avec cette séquence plus longue. Cette boucle se poursuit jusqu’à la sélection d’un marqueur de fin ou jusqu’à ce qu’une autre condition d’arrêt soit atteinte.
prompt
-> forward pass
-> next-token scores
-> select one token
-> append it
-> repeat
-> stopLa règle de décodage est importante. Choisir le jeton ayant le score le plus élevé peut rendre le processus déterministe dans des conditions stables. Échantillonner parmi plusieurs candidats peut produire un texte différent à partir de la même invite. Le modèle peut rester inchangé dans les deux cas ; la différence vient de la manière dont le logiciel sélectionne les éléments à partir de ses scores de sortie. La documentation de génération de Hugging Face présente ces choix comme des options de génération distinctes.
C’est pourquoi l’affirmation « l’inférence est une seule passe avant » constitue un raccourci utile, et non une définition universelle. Une passe peut produire une prédiction, un ensemble de scores ou une étape vers un résultat généré plus long.
Pourquoi l’inférence est importante
L’inférence est le moment où un modèle entraîné rencontre des entrées réelles. Son comportement détermine si une fonctionnalité d’IA est utile, abordable, réactive et fiable.
Le modèle n’est qu’une partie de ce résultat. La préparation de l’entrée doit correspondre à ce que le modèle attend. La sélection de la sortie doit être adaptée à la tâche. L’environnement d’exécution doit effectuer le calcul sur le matériel disponible. La couche de mise à disposition doit gérer le type de requêtes reçues.
Ces choix créent des compromis :
- Temps de réponse :Les tâches interactives bénéficient d’un résultat rapide.
- Débit :Les traitements par lots et les services très sollicités s’intéressent à la quantité de travail que le système peut effectuer au fil du temps.
- Coût et énergie :Chaque inférence consomme des ressources informatiques, et la génération répétée en consomme à chaque étape.
- Qualité de la sortie :Certaines modifications destinées à accélérer le traitement, comme l’utilisation de nombres en précision réduite, doivent être validées, car elles peuvent modifier les sorties.
- Confidentialité et connectivité :L’inférence peut s’exécuter dans un centre de données ou sur un appareil local. Le lieu d’exécution modifie la quantité de données qui doit transiter sur un réseau.
Il n’existe pas une seule configuration d’inférence idéale. Le bon équilibre dépend du modèle, de la charge de travail, du matériel et des exigences de l’application. La guide de Google sur le ML en production illustre un choix de base : calculer les sorties à l’avance par lots ou les calculer à la demande.
Idées reçues courantes
« L’inférence signifie que le modèle apprend de moi »
En général, ce n’est pas le cas. L’inférence normale utilise des paramètres appris fixes. Un produit peut enregistrer votre interaction et l’utiliser ultérieurement dans un processus d’entraînement distinct, mais cela ne fait pas automatiquement partie de l’inférence.
Certains systèmes combinent délibérément le calcul au moment de l’utilisation avec une adaptation ou une mémoire externe. Dans ces cas, le système doit indiquer ce qui change et quand. Le seul terme inférence n’implique pas un apprentissage.
« L’inférence est la même chose qu’une prédiction »
Les termes sont souvent utilisés comme des synonymes, mais une distinction utile est que l’inférence est le processus, tandis qu’une prédiction est une sortie. Sortie est le terme le plus large, car les modèles génératifs produisent du texte, des images ou de l’audio que l’on ne qualifie pas toujours de prédictions.
« L’inférence se produit toujours en temps réel »
L’inférence peut être en ligne ou hors ligne. L’inférence en ligne s’exécute lorsqu’une requête arrive. L’inférence hors ligne ou par lots traite de nombreuses entrées ensemble et peut stocker les résultats pour une utilisation ultérieure.
« La même entrée doit forcément produire la même sortie »
Pas toujours. Certains modèles et certaines règles de sélection sont déterministes. D’autres échantillonnent parmi les sorties possibles. Les détails de l’environnement d’exécution peuvent également introduire de petites différences numériques. La reproductibilité est une propriété de l’ensemble de la configuration, et non du terme inférence.
« Le mode inférence signifie que le modèle est prêt à produire des prédictions correctes »
La terminologie des frameworks peut être plus restreinte que le concept général. Par exemple, le inference_mode de PyTorch désactive la tenue de registres utilisée pour les calculs de gradients, mais ne bascule pas automatiquement toutes les couches du modèle en mode évaluation. Un changement de mode dans un framework est un outil d’implémentation, et non la définition de l’inférence en IA.
« L’inférence est l’ensemble du produit d’IA »
L’inférence n’est qu’un composant. Une application peut également récupérer des données, appliquer des règles de sécurité, appeler des outils, stocker un état et présenter une interface. Ces étapes peuvent fortement influencer le résultat, même si elles se déroulent en dehors du calcul d’inférence du modèle.
La place de l’inférence dans un système d’IA
L’entraînement et l’inférence ont des rôles différents. L’entraînement compare à plusieurs reprises les sorties du modèle à un objectif et met à jour le modèle. L’inférence utilise le modèle fixe ainsi obtenu pour traiter les entrées.
Un système déployé ajoute une autre couche :
training -> saved model -> deployment and serving -> inference -> application action
|
v
logs for later reviewLes journaux peuvent finalement contribuer à une autre session d’entraînement. Cela crée une boucle de rétroaction au niveau du système, mais chaque inférence ordinaire utilise toujours une version enregistrée précise du modèle.
Pour aller plus loin
Lisez Qu’est-ce que l’entraînement en IA ? pour découvrir le processus qui crée ou met à jour le modèle appris utilisé pendant l’inférence. Consultez Entraînement et inférence pour comprendre directement la distinction, puis poursuivez avec Qu’est-ce que la latence d’inférence ? pour comprendre comment mesurer la vitesse de déploiement.