Polydesk-logotype
Polydesk.ai — Header

In-Context Learning (ICL)

L’in-context learning (ICL, apprentissage en contexte) est la capacité des grands modèles de langage (LLMs) à apprendre et à réaliser de nouvelles tâches en se basant uniquement sur les exemples et instructions fournis dans le prompt, sans aucune modification de leurs paramètres internes. Le modèle « apprend » à la volée, dans le contexte de la requête.

In-Context Learning en bref
Catégorie
Prompt Engineering / Capacités émergentes des LLMs
Principe
Le modèle adapte son comportement en fonction des exemples dans le prompt, sans mise à jour de poids
Relation
C’est le mécanisme sous-jacent du zero-shot, one-shot et few-shot prompting
Découverte
Mis en évidence par GPT-3 (OpenAI, 2020), prix Mark Everingham 2025 pour la série VQA
Mécanisme
Attention des Transformers, pas de gradient descent ni de mise à jour de paramètres
Limite clé
Apprentissage « éphémère » : oublié dès que le prompt disparaît du contexte

Qu’est-ce que l’in-context learning ?

Imaginez que vous montrez à un enfant comment empiler des blocs dans un certain pattern. Après avoir observé quelques démonstrations, l’enfant reproduit le pattern sans qu’on lui explique les règles sous-jacentes. Il a inféré la logique à partir des exemples. L’in-context learning fonctionne de la même manière pour les LLMs.

Quand vous fournissez des exemples résolus dans un prompt (« chat → cat, chien → dog, oiseau → oiseau, cheval → ? »), le LLM identifie le pattern (traduction français → anglais), l’applique à la nouvelle entrée (cheval → horse), et génère la réponse correcte. Tout cela sans qu’un seul paramètre du modèle ne soit modifié.

C’est ce qui distingue fondamentalement l’ICL de l’apprentissage traditionnel en machine learning :

Critère Apprentissage traditionnel (fine-tuning) In-Context Learning
Modification des poids Oui (gradient descent) Non (poids gelés)
Données nécessaires Centaines à millions d’exemples 0 à quelques dizaines d’exemples dans le prompt
Persistance Permanente (modèle modifié) Éphémère (oublié après la requête)
Coût GPU + temps d’entraînement Coût d’inférence uniquement
Flexibilité Spécialisé sur une tâche Multi-tâche dans la même session
Temps de mise en place Heures à jours Immédiat

L’ICL est le mécanisme qui rend le zero-shot, le one-shot et le few-shot prompting possibles. Quand vous faites du few-shot prompting (fournir quelques exemples), vous exploitez l’ICL du modèle. Quand vous faites du zero-shot (aucun exemple), le modèle utilise aussi une forme d’ICL en interprétant l’instruction textuelle comme un « contexte » pour adapter son comportement.

Comment fonctionne l’ICL dans un Transformer

Le rôle central de l’attention

L’ICL repose sur le mécanisme d’attention des Transformers. Quand un LLM traite un prompt contenant des exemples, ses couches d’attention établissent des connexions entre les tokens des exemples et les tokens de la nouvelle entrée.

Concrètement, voici ce qui se passe quand le modèle reçoit « chat → cat, chien → dog, cheval → ? » :

1. Le modèle encode tous les tokens du prompt (exemples + question) dans sa fenêtre de contexte.

2. Les mécanismes d’attention identifient les patterns structurels : chaque mot français est suivi d’une flèche puis de son équivalent anglais.

3. Le modèle reconnaît que « cheval » occupe la même position structurelle que « chat » et « chien » dans les exemples précédents.

4. Par analogie avec les patterns observés, il génère « horse » comme continuation la plus probable.

Ce processus n’implique aucune mise à jour de poids. L’apprentissage est entièrement contenu dans le flux d’information à travers les couches d’attention pendant l’inférence.

L’ICL comme méta-optimisation implicite

Des recherches ont proposé une explication fascinante : les LLMs agiraient comme des « méta-optimiseurs » pendant l’ICL. Selon cette théorie, il existe une dualité entre l’attention des Transformers et le gradient descent. Les exemples dans le prompt génèrent des « méta-gradients » qui construisent implicitement un modèle ICL adapté à la tâche, sans jamais calculer explicitement de gradient.

Une étude récente (2025) va plus loin : l’empilement d’une couche de self-attention avec un MLP permet au bloc Transformer de modifier implicitement les poids de la couche MLP en fonction du contexte. Le contexte est transformé en une mise à jour de poids de rang faible (low-rank weight update), ce qui expliquerait pourquoi les LLMs peuvent apprendre en contexte et pas seulement pendant l’entraînement.

En résumé : l’ICL n’est pas du pattern matching superficiel (même si ça y ressemble). C’est un processus qui, au niveau computationnel, mime certains aspects de l’entraînement véritable, juste de manière éphémère et dans l’espace d’activation plutôt que dans l’espace des paramètres.

L’étude Microsoft-York : « C’est de l’apprentissage, mais… »

Une étude de Microsoft et de l’Université de York (2025) a apporté une réponse nuancée à la question « l’ICL est-il du vrai apprentissage ? ». Les chercheurs ont généré plus de 1,8 million de prédictions sur 9 tâches formelles avec GPT-4 Turbo, GPT-4o, Mixtral 8x7B et Phi-3.5 MoE.

Leurs conclusions :

Oui, c’est de l’apprentissage au sens formel. Le LLM observe des exemples et modifie son comportement en conséquence pour répondre à de nouvelles requêtes. C’est, par définition, un processus d’apprentissage.

Mais c’est un apprentissage fragile. Les performances continuent de s’améliorer avec plus d’exemples, souvent jusqu’à 50-100 shots (bien au-delà des 3-5 habituels du few-shot). Cependant, le modèle s’appuie fortement sur les indices statistiques superficiels du prompt plutôt que sur une compréhension profonde de la tâche.

Le Chain-of-Thought est puissant mais fragile. Le CoT améliore souvent les performances mais rend le modèle plus sensible aux données hors-distribution (inputs structurellement différents des exemples).

Résultat surprenant : les « word salad » prompts fonctionnent. Des prompts avec des instructions incohérentes mais une structure statistique correcte donnent des résultats presque aussi bons que des prompts avec des instructions claires. Cela indique que les LLMs s’appuient davantage sur la structure statistique du prompt que sur le sens des mots.

Implication pratique L’ICL est un outil puissant mais il ne faut pas le surestimer. Tester un prompt avec quelques exemples ne garantit pas que l’application sera robuste en production. Les données hors-distribution (cas que vos exemples ne couvrent pas) peuvent produire des résultats imprévisibles. Testez toujours sur des cas limites et des distributions différentes de vos exemples.

Conditions de bon fonctionnement de l’ICL

La taille du modèle est déterminante

L’ICL est une capacité émergente qui apparaît principalement dans les grands modèles. Les modèles petits (70B) et les modèles frontier (GPT-5.4, Claude Opus 4.6, Gemini 3.1 Pro) excellent en ICL.

Ce lien entre taille et ICL s’explique par le fait qu’un modèle plus grand a vu plus de patterns diversifiés pendant son pré-entraînement, ce qui lui donne plus de « connaissances latentes » à mobiliser quand il rencontre une nouvelle tâche en contexte.

La qualité du pré-entraînement

Un modèle pré-entraîné sur des données de haute qualité et diversifiées montre un meilleur ICL. Les données structurées (paires entrée/sortie, exemples résolus) dans les données de pré-entraînement sont particulièrement bénéfiques. C’est pourquoi les modèles instruction-tuned (entraînés à suivre des instructions via RLHF ou RLAIF) sont meilleurs en ICL que les modèles de base.

La qualité du prompt

L’ICL est sensible à la construction du prompt : l’ordre des exemples, leur format, leur diversité, et la clarté des instructions influencent tous les résultats. Les recherches montrent que placer les informations les plus pertinentes au début ou à la fin du prompt (et non au milieu) améliore les performances.

ICL vs Fine-tuning vs RAG

L’ICL n’est qu’une des approches pour adapter un LLM à une tâche. Voici comment il se compare aux alternatives :

Critère ICL (prompting) Fine-tuning RAG
Modification du modèle Non Oui Non
Données nécessaires 0-20 exemples dans le prompt 100-100 000+ exemples étiquetés Base de connaissances externe
Persistance Éphémère Permanente Dynamique (données mises à jour)
Force Flexibilité, rapidité, multi-tâche Performance maximale spécialisée Connaissances actualisées, traçabilité
Faiblesse Fragile, limité par la fenêtre de contexte Coûteux, spécialisé, données nécessaires Qualité dépend du retriever
Cas d’usage idéal Prototypage, tâches variées, peu de données Tâche unique haute performance Connaissances factuelles, Q&A sur documents

En pratique, ces approches se combinent. Un système de production peut utiliser le RAG pour récupérer les exemples les plus pertinents, les injecter dans le prompt via ICL (dynamic few-shot), le tout sur un modèle fine-tuné pour le domaine. C’est la combinaison ICL + RAG + fine-tuning qui donne les meilleurs résultats.

Applications concrètes de l’ICL

Classification de documents juridiques. Les équipes juridiques qui traitent des milliers de contrats (NDA, accords fournisseurs) utilisent l’ICL pour classifier rapidement les clauses. Quelques exemples de clauses annotées dans le prompt suffisent pour que le LLM classifie les nouvelles clauses sans entraînement spécifique.

Diagnostic médical assisté. Le Chain-of-Thought prompting (une technique d’ICL) permet aux LLMs de lister les causes possibles des symptômes d’un patient avant de proposer un diagnostic, favorisant une prise de décision plus sûre.

Adaptation multi-tâche en temps réel. L’ICL permet de passer d’une tâche à l’autre dans la même session (résumé, classification de sentiment, extraction d’entités) simplement en changeant les exemples dans le prompt. Pas besoin de charger un modèle différent pour chaque tâche.

Traitement de données en temps réel. Les LLMs utilisant l’ICL peuvent intégrer des informations fraîches (données financières, actualités) directement dans le contexte, sans attendre un réentraînement. Combiné avec le RAG, cela permet des réponses actualisées en quasi-temps réel.

Prototypage rapide d’applications IA. L’ICL est le moyen le plus rapide de tester si un LLM peut résoudre votre problème. En quelques minutes, vous pouvez construire un prompt avec des exemples et évaluer la faisabilité avant d’investir dans du fine-tuning ou du développement custom.

Techniques pour améliorer l’ICL

Les chercheurs et praticiens ont développé plusieurs méthodes pour pousser l’ICL au-delà de ses performances basiques.

Dynamic example retrieval. Au lieu de hardcoder les mêmes exemples pour toutes les requêtes, un retriever (souvent basé sur des embeddings sémantiques et un vector store) sélectionne dynamiquement les exemples les plus pertinents pour chaque entrée. Cette approche, à l’intersection du RAG et de l’ICL, améliore significativement les performances car les exemples sont toujours contextuellement adaptés.

Structured prompting. Des travaux récents proposent d’encoder les exemples avec des positional embeddings personnalisés, permettant au test example d’accéder à tous les exemples via un mécanisme d’attention rescalé. Cela permet de scaler l’ICL à des milliers d’exemples, bien au-delà des limites habituelles.

Meta-distillation. Exposer le modèle, entre le pré-entraînement et l’inférence, à des formes distillées et abstraites de connaissances : des paires entrée/sortie courtes et très informatives qui capturent l’essence d’une tâche (par exemple, « Intrigue solide → positif », « Jeu d’acteur faible → négatif »). Cela prépare le modèle à généraliser plus rapidement pendant l’inférence.

Chain-of-Thought prompting. Inclure non seulement les entrées/sorties mais aussi le raisonnement intermédiaire dans les exemples. Cela active les capacités de raisonnement du modèle et améliore drastiquement les performances sur les tâches complexes (mathématiques, logique, planification).

L’ICL en 2026

Le concept d’in-context learning évolue vers quelque chose de plus large que le simple prompting :

Du prompt engineering au context engineering. IBM et d’autres acteurs définissent désormais le « context engineering » comme la conception de systèmes dynamiques qui assemblent et livrent la bonne information, les bons outils et les bonnes instructions au LLM, au bon format, pour chaque tâche. Ce n’est plus un prompt statique, c’est un pipeline intelligent.

L’ICL multimodal. L’ICL ne se limite plus au texte. Les modèles multimodaux comme Gemini 3.1 Pro et GPT-5.4 font de l’ICL avec des images, des vidéos et de l’audio. Vous pouvez montrer une image d’exemple annotée et demander au modèle d’annoter de la même manière une nouvelle image.

Les fenêtres de contexte massives changent la donne. Avec 1M tokens chez Claude Opus 4.6 et Gemini 3.1 Pro (sans surcoût chez Anthropic depuis mars 2026), l’ICL peut ingérer des volumes de contexte sans précédent. Cela rend possible le « many-shot » ICL avec des dizaines ou des centaines d’exemples, repoussant la frontière entre ICL et fine-tuning.

Limites de l’ICL

Apprentissage éphémère. Tout ce que le modèle « apprend » via ICL est oublié dès que le prompt sort de la fenêtre de contexte. Il n’y a pas de mémoire persistante. Chaque nouvelle requête repart de zéro (sauf si vous renvoyez les exemples).

Limité par la fenêtre de contexte. La quantité d’exemples que vous pouvez fournir est bornée par la taille de la fenêtre de contexte. Même avec 1M tokens (Gemini, Claude Opus 4.6), des prompts très longs augmentent la latence et les coûts. De plus, les performances se dégradent quand l’information pertinente est noyée au milieu d’un contexte trop long.

Sensibilité aux indices superficiels. L’étude Microsoft-York montre que l’ICL s’appuie beaucoup sur la structure statistique du prompt (format, patterns répétitifs) plutôt que sur une compréhension sémantique profonde. Cela le rend fragile face aux données hors-distribution.

Pas adapté aux tâches nécessitant des connaissances profondes. L’ICL fonctionne bien pour les tâches que le modèle sait déjà partiellement faire. Pour les domaines très spécialisés (médical, juridique, technique) où le modèle manque de connaissances de base, l’ICL seul ne suffit pas. Il faut combiner avec du RAG ou du fine-tuning.

Conseil pratique : le « Context Engineering » IBM et d’autres acteurs parlent désormais de « context engineering » plutôt que de simple prompt engineering. L’idée est de concevoir des systèmes dynamiques qui assemblent le bon contexte (exemples, instructions, données externes, historique) au bon moment et au bon format pour chaque requête. C’est l’évolution naturelle de l’ICL : passer d’un prompt statique à un pipeline intelligent qui maximise la qualité du contexte fourni au LLM.

Questions fréquentes sur l’in-context learning

Quelle est la différence entre in-context learning et fine-tuning ?

La différence fondamentale est que l’ICL ne modifie pas les paramètres du modèle. Le fine-tuning ajuste les poids du modèle via gradient descent sur des données d’entraînement, ce qui produit un modèle spécialisé de manière permanente. L’ICL fournit des exemples dans le prompt que le modèle utilise pour adapter son comportement à la volée, mais cet « apprentissage » est éphémère et disparaît avec le prompt. Le fine-tuning est plus performant sur une tâche donnée, mais l’ICL est plus flexible et ne nécessite aucune infrastructure d’entraînement.

L’in-context learning est-il du « vrai » apprentissage ?

C’est un débat actif dans la communauté de recherche. L’étude Microsoft-York (2025) conclut que oui, au sens formel : le modèle observe des exemples et modifie son comportement en conséquence. Des recherches récentes montrent que l’empilement attention + MLP dans les blocs Transformer permet une modification implicite des poids de la couche MLP en fonction du contexte. Cependant, c’est un apprentissage fragile et superficiel, qui s’appuie sur des indices statistiques plutôt que sur une compréhension profonde. La réponse pragmatique : oui, ça fonctionne remarquablement bien en pratique, mais ne surestimez pas sa robustesse.

Combien d’exemples peut-on fournir en ICL ?

Techniquement, autant que la fenêtre de contexte le permet. Avec Claude Opus 4.6 et Gemini 3.1 Pro (1M tokens), vous pouvez inclure des milliers d’exemples. En pratique, l’étude Microsoft-York montre que les performances continuent de s’améliorer jusqu’à 50-100 exemples sur certaines tâches. Cependant, pour la plupart des cas d’usage, 3 à 5 exemples bien choisis offrent le meilleur rapport coût/performance. Au-delà, les gains sont marginaux et les coûts en tokens augmentent significativement.

Pourquoi certains modèles sont-ils meilleurs en ICL que d’autres ?

Trois facteurs principaux. Premièrement, la taille : les modèles plus grands (>70B paramètres) montrent de meilleures capacités ICL car ils ont internalisé plus de patterns diversifiés. Deuxièmement, la qualité du pré-entraînement : des données variées et de haute qualité donnent un meilleur ICL. Troisièmement, l’instruction tuning : les modèles entraînés à suivre des instructions (via RLHF, RLAIF) sont significativement meilleurs en ICL que les modèles de base. C’est pourquoi les modèles frontier (GPT-5.4, Claude Opus 4.6, Gemini 3.1 Pro) excellent en ICL.

L’ICL remplace-t-il le fine-tuning ?

Non, les deux sont complémentaires. L’ICL est idéal pour le prototypage, les tâches variées, et les situations avec peu de données. Le fine-tuning reste nécessaire quand vous avez besoin de performances maximales sur une tâche spécifique, quand les volumes de données à traiter sont massifs (le coût par requête du fine-tuning est plus bas car le prompt est plus court), ou quand le domaine est très spécialisé. La stratégie optimale : utilisez l’ICL pour valider la faisabilité, puis fine-tunez si les performances doivent être optimisées pour la production.

Polydesk.ai — Footer