Prompting Few-Shot (Apprentissage en contexte)
Méthodologie d'ingénierie des prompts où le modèle s'adapte à un format, un style ou une logique spécifique directement lors de l'inférence (Apprentissage en contexte) grâce à la présentation de 2 à 5 exemples de référence.
1. Vue d'ensemble du concept et problématique système
L'un des défis les plus courants dans le travail avec les modèles de langage est l'ambiguïté du langage naturel. Lorsqu'un développeur écrit dans une instruction : « Rédigez une interface TypeScript concise dans le style de notre projet », le modèle est contraint de s'appuyer sur des représentations moyennes issues d'Internet :
- Subjectivité des formulations : Les termes « concis », « élégant » ou « strict » sont interprétés par le modèle de manière trop large, entraînant une instabilité des résultats d'une exécution à l'autre.
- Impossibilité de décrire toutes les règles textuellement : La description des conventions d'une base de code peut nécessiter 10 pages de règles que le modèle finira inévitablement par violer.
- « Une image vaut mille mots » : Tout comme pour un développeur humain, il est nettement plus simple pour un modèle de langage de reproduire un style à partir de deux exemples concrets que de décrypter des descriptions abstraites.
Le Few-Shot prompting élimine cette ambiguïté par la démonstration : vous fournissez au modèle 2 à 4 paires contrastées « Données d'entrée -> Résultat de référence », établissant ainsi un canon comportemental clair.
2. Taxonomie architecturale et modèle mental
Gradation des méthodes d'apprentissage en contexte (In-Context Learning) :
- 1. Zero-Shot (Sans exemples) : Le modèle reçoit uniquement une instruction textuelle et la nouvelle tâche. Convient aux routines basiques, mais génère la plus grande variabilité de sortie.
- 2. One-Shot (Un seul exemple de référence) : Un exemple idéal est ajouté au prompt. Cela suffit pour définir l'ossature syntaxique (par exemple, la structure du JSON de sortie).
- 3. Few-Shot (Ensemble classique de 2 à 5 exemples) : L'équilibre optimal. Inclut des exemples couvrant différents scénarios : un cas simple, un cas complexe avec données imbriquées et un cas limite (Edge Case / Error Handling).
- 4. Retrieval-Augmented (Dynamic) Few-Shot : Pattern avancé pour la production : une bibliothèque de 500 exemples est indexée dans une base de données vectorielle. Pour chaque requête utilisateur, la recherche vectorielle récupère les 3 exemples les plus pertinents.
3. Pipeline technique et mécanique interne
Cycle de vie de la préparation et de l'exécution d'un prompt Few-Shot :
- Exemplar Selection & Curation (Sélection et curation des exemples) : Constitution d'un ensemble compact de paires démontrant le résultat souhaité sans erreurs ni verbiage superflu.
- Structural Delimitation (Isolation structurelle) :
Les exemples sont enveloppés dans des balises XML ou Markdown strictes pour éviter toute confusion entre instructions et exemples :
<example id="1"><input>...</input><output>...</output></example>. - Induction Head Pattern Activation (Activation des têtes d'induction) :
Lors du calcul des couches d'attention, le transformer identifie la transition de la balise
<input>vers<output>comme une transformation déterministe des données. - Target Inference Alignment (Alignement de l'inférence cible) : Le modèle génère une réponse à la nouvelle question en copiant implicitement la syntaxe, la longueur, les conventions de nommage et les clés utilisées dans les exemples.
4. Scénarios d'ingénierie pratiques en production
01. Parsing strict de données non structurées en JSON
Vous devez convertir des descriptions textuelles de transactions bancaires en un JSON valide. Le Zero-shot confond souvent les champs de date ou copie incorrectement les centimes. Le Few-shot avec trois exemples (incluant les remboursements et les paiements multi-devises) garantit une stabilité de schéma de 99,8 %.
02. Respect du style de code corporate
L'équipe exige que l'agent de code écrive des tests unitaires strictement selon la norme interne : utilisation de describe.concurrent, helper spécifique de fabrique d'utilisateurs makeUser() et interdiction des mocks via jest.spyOn. Deux exemples dans le system prompt résolvent entièrement le problème.
03. Canonisation et traduction des termes techniques
Traduction de documentation en français avec l'exigence de conserver certains termes spécifiques dans leur forme originale (par exemple, Checkpointer, Race condition) tout en traduisant les autres selon le glossaire corporatif.
5. Pièges, erreurs courantes et sécurité
- Biais de majorité et de récence (Majority & Recency Bias) : Les modèles sont extrêmement sensibles à l'ordre des exemples. Si, dans 3 cas sur 4, la réponse était « Oui », le modèle présentera un fort biais en faveur de « Oui » pour toute nouvelle entrée. Équilibrez toujours les classes dans les exemples (50/50).
- Copie des bugs présents dans les exemples (Error Mimicry) : Si vous avez accidentellement omis une parenthèse fermante ou commis une faute d'orthographe dans l'un des exemples, le modèle reproduira cette erreur dans ses nouvelles sorties.
- Explosion du contexte d'entrée : Dix exemples Few-Shot détaillés peuvent consommer 15 000 tokens. Utilisez systématiquement le Prompt Caching pour les system prompts contenant des exemples.
FAQ: Prompting Few-Shot (Apprentissage en contexte)
Termes associés
Ingénierie des prompts (Architecture de contexte & Prompt Engineering)
Discipline d'ingénierie consistant à structurer les directives système, le balisage XML, les délimiteurs sémantiques et les exemples afin d'obtenir des résultats déterministes et prévisibles issus de modèles probabilistes.
System Prompt (Instructions système et métaprompting)
Bloc d'instructions de méta-contexte prioritaire, transmis en position zéro de la fenêtre contextuelle, définissant le rôle, les règles de sécurité, les outils disponibles et les limites comportementales de l'agent.
Chaîne de raisonnement (Chain of Thought - CoT)
Méthodologie consistant à inciter un modèle linguistique à générer des étapes intermédiaires séquentielles de raisonnement avant de formuler une réponse finale, convertissant ainsi les tokens supplémentaires (Test-Time Compute) en qualité et précision du résultat.
Arbre syntaxique abstrait (AST) Markdown pour les agents
Représentation hiérarchique en arbre du balisage Markdown (standard mdast / Unified.js), permettant aux systèmes logiciels et aux agents IA d'analyser, transformer et éditer de manière déterministe le contenu technique sans recourir à des expressions régulières fragiles.