Apprentissage vs inférence en IA : ce qui change vraiment
L'apprentissage, qu'on appelle plus souvent l'entraînement, c'est le moment où le modèle change. L'inférence, c'est le moment où il exécute. Pendant l'entraînement, les poids internes du modèle sont mis à jour encore et encore face à un jeu de données, jusqu'à ce que ses erreurs diminuent. Pendant l'inférence, ces poids sont gelés : une entrée arrive, traverse le réseau une seule fois, et une sortie en ressort. Presque toutes les autres différences entre les deux, le coût, le matériel, la latence, la mémoire, découlent de ce seul fait : est-ce qu'on écrit dans les poids, ou est-ce qu'on se contente de les lire ?
La différence en un tableau
| Entraînement (apprentissage) | Inférence | |
|---|---|---|
| Ce qui change | Les poids du modèle | Rien à l'intérieur du modèle |
| Entrée | Un grand jeu de données figé | Une requête à la fois |
| Calcul par étape | Passe avant, passe arrière, mise à jour des poids | Passe avant uniquement |
| Matériel typique | Des grappes de GPU ou de TPU | Un accélérateur, parfois un portable ou un téléphone |
| Échelle de temps | Des heures à des mois | Des millisecondes à des secondes |
| Fréquence d'exécution | Une fois, plus quelques mises à jour | À chaque utilisation du produit |
| À quoi ressemble un échec | La perte stagne, l'entraînement diverge | Mauvaise réponse, réponse lente, ou saturation mémoire |
Ce qui se passe pendant l'entraînement
L'entraînement fait passer un lot d'exemples dans le réseau, mesure l'écart entre la sortie et la cible, puis propage cette erreur en sens inverse à travers chaque couche pour déterminer la contribution de chaque poids à la faute. Chaque poids est légèrement déplacé dans la direction qui aurait réduit l'erreur. C'est la rétropropagation, décrite par Rumelhart, Hinton et Williams dans leur article de 1986 dans Nature, "Learning representations by back-propagating errors", et c'est toujours le mécanisme derrière pratiquement tous les grands modèles en production aujourd'hui.
Deux conséquences comptent pour la comparaison. D'abord, l'entraînement doit garder en mémoire bien plus que les seuls poids : il stocke aussi les activations de la passe avant, les gradients, et l'état propre de l'optimiseur pour chaque paramètre. Ensuite, une seule étape n'apprend presque rien au modèle. Le comportement utile vient de la répétition de cette étape un nombre énorme de fois, et c'est pour ça que l'entraînement se mesure en semaines de grappe alors que l'inférence se mesure en millisecondes.
Ce qui se passe pendant l'inférence
L'inférence, c'est la passe avant toute seule. Pour un modèle de langue, ton texte est découpé en tokens, poussé à travers les couches, et le modèle produit une distribution de probabilités sur le token suivant. Un token est choisi, ajouté, et le processus recommence jusqu'à l'arrêt. Pour éviter de tout recalculer à chaque nouveau token, le modèle met en cache les tenseurs de clés et de valeurs des tokens précédents : c'est pour ça que le premier token d'une réponse est en général plus lent que les suivants.
Le point important : rien de ce qui se passe ici n'est réécrit dans le modèle. Le modèle est en lecture seule. Si tu le corriges, si tu le contredis, si tu lui apprends ton prénom, ses poids sont exactement les mêmes après la conversation qu'avant.
Pourquoi on confond les deux
Au moment de l'inférence, les modèles se comportent comme s'ils apprenaient. Montre à un modèle trois exemples d'une mise en forme dans ton prompt, et sa quatrième réponse suivra cette mise en forme. Brown et ses collègues ont documenté ça de façon systématique dans l'article de 2020 sur GPT-3, "Language Models are Few-Shot Learners", en montrant qu'un modèle de 175 milliards de paramètres pouvait attraper de nouvelles tâches à partir d'exemples placés dans le prompt, sans la moindre mise à jour de gradient. Ils ont appelé ça l'apprentissage en contexte, et le nom fait beaucoup de travail : ça ressemble à de l'apprentissage, mais c'est de la complétion de motifs à l'intérieur d'une seule passe avant.
Le test pratique, c'est la persistance. L'apprentissage en contexte vit entièrement dans la fenêtre de contexte. Ferme la session et il a disparu. Quand un produit de chat se souvient de toi d'une session à l'autre, il s'agit presque toujours d'une base de notes silencieusement réinjectées dans ton prompt, pas d'un modèle qui aurait changé.
Coût, matériel, et où tourne réellement l'inférence
L'entraînement est une dépense d'investissement : tu loues une grosse grappe de machines, tu la fais tourner sur une période donnée, et tu récupères un checkpoint. L'inférence est une dépense de fonctionnement : elle tourne à chaque fois qu'un utilisateur appuie sur un bouton, indéfiniment. Pour un produit avec du vrai trafic, le total dépensé à répondre aux requêtes peut finir par dépasser la facture unique d'entraînement, simplement parce que le multiplicateur est le nombre d'utilisateurs et non le nombre d'entraînements.
Cette pression explique pourquoi l'inférence est optimisée agressivement : quantification des poids en précision réduite, distillation d'un gros modèle vers un plus petit, regroupement des requêtes en lots. Poussée assez loin, l'inférence n'a plus besoin de centre de données. Les téléphones récents font tourner localement des modèles de reconnaissance de texte et de transcription vocale. Dans Qora, par exemple, lire une page photographiée et transcrire un cours enregistré se font tous les deux sur l'appareil, parce que ce sont des charges d'inférence pure assez légères pour tenir sur le téléphone. Entraîner un modèle de cette qualité sur un téléphone serait impossible, le faire tourner est banal.
Là où la frontière nette se brouille
La séparation entraînement/inférence est un bon modèle mental, pas une loi, et elle fuit à quatre endroits qu'il vaut mieux connaître.
Le fine-tuning, c'est de l'entraînement. Le fine-tuning, y compris ses variantes économiques comme LoRA qui ne mettent à jour qu'un petit ensemble de paramètres ajoutés, est un entraînement qui part d'un checkpoint existant au lieu de partir de zéro. Ce n'est pas un mode particulier d'inférence.
Tes données peuvent quand même atteindre un futur modèle. "Le modèle n'apprend pas de toi" est vrai du modèle déployé auquel tu parles. Ce n'est pas automatiquement vrai de la version suivante, puisque les fournisseurs peuvent collecter les conversations et les utiliser dans un entraînement ultérieur. Qu'ils le fassent ou non relève de la politique de l'entreprise, pas de l'architecture : lis les conditions d'utilisation plutôt que de raisonner à partir du mécanisme.
L'inférence n'est plus systématiquement peu coûteuse par requête. Les modèles de raisonnement dépensent beaucoup plus de calcul à l'inférence en générant de longues chaînes de pensée internes avant de répondre. Une seule requête difficile peut désormais coûter nettement plus qu'une requête simple, ce qui abîme la vieille règle selon laquelle l'entraînement est cher et l'inférence négligeable.
L'analogie humaine est approximative. C'est tentant de dire que les gens ont un mode entraînement et un mode inférence. Le cerveau ne semble pas fonctionner comme ça, et aucune affirmation sérieuse ici ne devrait reposer sur la métaphore.
Si tu révises ça pour un cours ou un entretien
La version qui tombe en examen est étroite : ce qui change (les poids), dans quel sens circulent les données (la passe arrière n'existe qu'à l'entraînement), et où part le calcul. C'est un petit paquet de faits, donc un bon candidat à l'auto-évaluation plutôt qu'à la relecture. Dans les expériences de Roediger et Karpicke en 2006, les étudiants interrogés sur un contenu ont mieux réussi qu'un groupe qui l'avait simplement relu lors d'un test différé, alors même que le groupe relecture se sentait plus sûr de lui. Écrire trois questions sur cette page et y répondre demain te servira plus que la surligner, et si tu veux te fabriquer ce genre de support toi-même, la méthode est détaillée dans fabriquer des fiches de révision chez soi. Si tu attaques le machine learning dans son ensemble plutôt que de bachoter une définition, mieux vaut partir d'un vrai parcours structuré que d'un glossaire.
Questions fréquentes
L'inférence, c'est la même chose que la prédiction ?
En pratique, oui. "Inférence" est le terme d'ingénierie pour faire tourner un modèle entraîné sur une nouvelle entrée afin d'obtenir une sortie, et en apprentissage automatique classique cette sortie était littéralement une prédiction. Le mot est resté même pour les modèles génératifs, où la sortie est un texte ou une image plutôt qu'une prévision.
Est-ce qu'un modèle d'IA apprend de mes conversations ?
Le modèle auquel tu parles, non. Ses poids sont fixes pendant ta session, et tout ce qu'il semble retenir vient de ton prompt ou de notes stockées puis réinjectées dans le prompt. Savoir si tes conversations serviront plus tard à entraîner un futur modèle dépend de la politique de données du fournisseur, ce qui est une question distincte.
Le fine-tuning, c'est de l'entraînement ou de l'inférence ?
De l'entraînement. Le fine-tuning met à jour les poids avec la même machinerie de rétropropagation que le pré-entraînement, en partant simplement d'un modèle qui fonctionne déjà et avec un jeu de données bien plus petit. Tout ce qui modifie durablement ce que le modèle sait est de l'entraînement par définition.
Si l'entraînement est la partie difficile, pourquoi les entreprises s'inquiètent-elles du coût de l'inférence ?
Parce que l'entraînement a lieu une poignée de fois et l'inférence à chaque requête. Une inférence isolée coûte peu, mais multipliée par des millions d'utilisateurs quotidiens elle devient le coût récurrent dominant, et c'est pour ça qu'autant d'efforts d'ingénierie vont dans la quantification, la mise en cache et le traitement par lots.
Toute la comparaison se ramène à une seule question que tu peux poser à propos de n'importe quel système d'IA : est-ce qu'on écrit dans les poids, ou est-ce qu'on se contente de les lire ? L'entraînement écrit, et c'est lent, cher et rare. L'inférence lit, et c'est rapide, peu coûteux à l'unité, et permanent. Si tu veux que ça reste, prends n'importe quelle fonctionnalité d'IA que tu as utilisée aujourd'hui et détermine laquelle des deux tu payais, et ce qu'il faudrait pour que le système se souvienne vraiment de toi.