Aller au contenu principal
Zubnet AIApprendreWiki › Apprentissage en contexte
Fondamentaux

Apprentissage en contexte

Aussi appelé : In-Context Learning, ICL
La capacité d'un grand modèle de langage à saisir une tâche à partir d'exemples ou d'instructions placés dans le prompt, sans aucune mise à jour des poids du modèle. Montrez-lui quelques paires entrée-sortie et il poursuit le motif sur de nouvelles entrées, se faisant de fait programmer en texte clair au moment de la requête. Popularisée par l'article de GPT-3 d'OpenAI en 2020, c'est la raison pour laquelle le prompt fonctionne comme interface.

Pourquoi c’est important

L'apprentissage en contexte a transformé un seul modèle figé en outil universel : au lieu d'entraîner un spécialiste pour chaque tâche, vous décrivez la tâche en texte et obtenez une réponse utilisable quelques secondes plus tard. C'est pourquoi l'ingénierie de prompts existe comme compétence et pourquoi des équipes sans chaîne d'entraînement peuvent livrer des fonctionnalités d'IA. Le hic, c'est que l'apprentissage est loué, pas possédé — il ne vit que dans la fenêtre de contexte, et vous repayez ces exemples à chaque appel.

En profondeur

Mécaniquement, l'apprentissage en contexte n'est que de l'inférence. Le prompt — instructions, quelques démonstrations, la nouvelle entrée — traverse le Transformer en une seule passe avant, et les couches d'attention font le travail : elles apparient la nouvelle entrée aux démonstrations présentes dans le contexte et produisent une continuation cohérente avec le motif implicite. Aucun gradient n'est calculé, aucun poids n'est touché, et le modèle sur disque est identique octet pour octet avant et après. Ce qui ressemble à de l'apprentissage, c'est le modèle qui exploite des motifs absorbés pendant le pré-entraînement sur la façon dont les tâches se présentent une fois écrites. La démonstration qui a rendu ça célèbre, c'est l'article de GPT-3 à 175 milliards de paramètres d'OpenAI, « Language Models are Few-Shot Learners » (2020) : un seul modèle figé faisant de la traduction, de la question-réponse et de l'arithmétique à partir du seul texte du prompt, à un niveau que les modèles plus petits de l'époque ne pouvaient pas atteindre.

Zero-shot, one-shot et few-shot

Les termes décrivent combien de démonstrations le prompt contient. Le zero-shot, ce sont les instructions seules (« Classe cet avis comme positif ou négatif »); le one-shot ajoute un seul exemple résolu. Le few-shot en ajoute une poignée — typiquement de 2 à 10 pour les modèles de conversation, et jusqu'à quelques dizaines en contexte de recherche. Un prompt few-shot pour l'analyse de sentiment pourrait montrer trois courts avis, chacun suivi d'une étiquette, puis un quatrième avis et le mot « Sentiment : » — le modèle remplit l'étiquette, copiant le format qu'on lui a montré. La constance du format compte plus que les nouveaux venus ne s'y attendent : même séparateur, même vocabulaire d'étiquettes, même ordre de champs. Le few-shot bat de façon fiable le zero-shot sur les tâches de classification, d'extraction et de formatage où le contrat de sortie est difficile à décrire mais facile à démontrer.

Le hic, c'est que les modèles sont curieusement sensibles à la façon dont les exemples sont choisis et disposés. Un mode d'échec bien documenté est le biais d'étiquette majoritaire : si trois de vos quatre exemples portent l'étiquette « positif », le modèle penche vers le positif peu importe l'entrée réelle. Le biais de récence (surpondérer le dernier exemple) et les effets d'ordre des exemples sont aussi réels — brasser les mêmes exemples peut faire varier la justesse de plusieurs points. Les praticiens contrent ça avec des ensembles d'étiquettes équilibrés, des exemples représentatifs difficiles plutôt que faciles, et parfois un recalibrage des probabilités de sortie. Cette fragilité explique en partie pourquoi le domaine a tant poussé l'ajustement par instructions après 2020 : un modèle qui suit des instructions simples a besoin de moins d'exemples à surveiller.

Pourquoi ça fonctionne

Il n'y a pas d'explication arrêtée, mais deux théories dominent. La première vient de l'interprétabilité mécaniste : des chercheurs qui rétro-conçoivent l'attention ont trouvé des circuits qu'ils appellent têtes d'induction, qui implémentent un algorithme simple — trouver l'endroit précédent du contexte où le motif courant est apparu, regarder ce qui a suivi, et le prédire de nouveau. Ce geste de copie de motif est presque exactement ce qu'exige l'apprentissage few-shot, et les têtes d'induction tendent à se former à peu près au moment de l'entraînement où la capacité d'apprentissage en contexte s'envole, ce qui est suggestif même si ce n'est pas toute l'histoire. La seconde théorie présente l'apprentissage en contexte comme de l'inférence bayésienne implicite : le texte de pré-entraînement est un fouillis de tâches et de formats latents, et un prompt cohérent permet au modèle d'inférer dans quel genre de document il se trouve, puis de poursuivre en conséquence. Les deux points de vue sont compatibles — l'un décrit le circuit, l'autre la statistique — et les deux expliquent pourquoi les prompts propres et cohérents surpassent les négligés.

Ce qui ne fait pas débat, c'est la dépendance à l'échelle. La capacité few-shot est faible ou absente chez les petits modèles et s'améliore fortement avec les paramètres et les données d'entraînement, l'un des exemples les plus nets de capacité émergente. C'est pourquoi le résultat de GPT-3 a frappé si fort : des prompts qui ne donnaient rien sur un modèle d'un milliard de paramètres fonctionnaient sur celui de 175 milliards. C'est aussi pourquoi la qualité de l'apprentissage en contexte reste un facteur de différenciation discret entre générations de modèles — les plus gros modèles ont besoin de moins d'exemples et tolèrent des exemples plus désordonnés.

Rien n'est sauvegardé

Une idée fausse tenace veut que le modèle « apprenne » de vos exemples comme il le ferait durant l'entraînement — qu'une bonne séance few-shot améliore le modèle pour l'utilisateur suivant. Ce n'est pas le cas. Pendant l'inférence, les poids sont figés; l'apprentissage apparent est un état d'activation dans la fenêtre de contexte, et il s'évapore dès que ce contexte est abandonné. Ouvrez une nouvelle conversation et il ne reste pas une trace de vos exemples soigneusement choisis. C'est la différence fondamentale avec l'ajustement fin, qui réécrit les poids par descente de gradient et persiste à travers toutes les requêtes futures. Si un produit de conversation semble se souvenir de vous d'une séance à l'autre, c'est une fonction de mémoire — des notes conservées puis réinjectées dans les prompts ultérieurs — pas de l'apprentissage en contexte.

Cette nature éphémère a un coût : comme rien n'est sauvegardé, chaque requête qui a besoin du comportement doit reporter les exemples, et un prompt à 10 exemples costauds peut ajouter des milliers de tokens à chaque appel. La mise en cache de prompts adoucit ça — les fournisseurs réutilisent le préfixe déjà traité à rabais — mais pour des tâches étroites à gros volume, un petit modèle ajusté finement l'emporte souvent sur l'économie unitaire. La règle empirique courante : prototypez avec l'apprentissage en contexte, et ne passez à l'ajustement fin que quand la taxe de prompt ou le taux d'erreur devient gênant.

Comment le prompt est devenu l'interface

Avant 2020, adapter un modèle de langage à une tâche voulait dire de l'apprentissage par transfert : prendre un modèle pré-entraîné, l'ajuster finement sur des données étiquetées, déployer un spécialiste. Les résultats few-shot de GPT-3 ont renversé cette économie — si un modèle figé pouvait être programmé en langage naturel, une seule API pouvait servir toutes les tâches et les utilisateurs pouvaient apporter les leurs. Cette inversion a créé l'ingénierie de prompts comme discipline, fait du prompt système une surface de contrôle standard, et préparé le terrain à des techniques ultérieures qui sont en réalité de l'apprentissage en contexte déguisé : le prompt par chaîne de pensée fonctionne en partie en montrant au modèle des traces de raisonnement résolues, et la génération augmentée par récupération fonctionne en faisant confiance au modèle pour utiliser le texte qui atterrit dans son contexte. Le terme plus récent d'« ingénierie du contexte » est la même intuition devenue adulte : la fenêtre de contexte est la surface de programmation, et l'apprentissage en contexte est l'interpréteur qui l'exécute.

← Tous les termes
ESC