IA & Prompt Engineering : Comment les LLM héritent du biais de position sérielle

La découverte inconfortable : les IA oublient le milieu, comme nous

En 2023, l'équipe de Stanford NLP publie un papier qui fait l'effet d'une bombe dans la communauté IA : « Lost in the Middle: How Language Models Use Long Contexts » (Liu et al., 2023). La conclusion est limpide :

🤖 Les grands modèles de langage (GPT-4, Claude, Gemini, Llama…) présentent exactement la même courbe en U que la mémoire humaine : ils utilisent prioritairement l'information placée au début et à la fin du prompt, et ignorent largement ce qui se trouve au milieu.

Le graphique qui choque la communauté :

       Performance d'un LLM selon la position de l'info pertinente
       dans un long contexte (10 documents)

        Précision
        ────────
   80% ┤■                                                ■
   75% ┤ ■                                              ■
   70% ┤  ■                                            ■
   65% ┤   ■                                          ■
   60% ┤    ■        Lost in the middle              ■
   55% ┤     ■    ■    ■    ■    ■    ■    ■    ■
   50% 
        └─────────────────────────────────────────────────
          1    2    3    4    5    6    7    8    9   10
                    Position de l'information clé

Les modèles testés (GPT-3.5, GPT-4, Claude, MPT) performent 20 à 30 points de moins quand l'information clé est placée au milieu d'un long contexte par rapport à quand elle est placée au début ou à la fin.

Implication pour vous, utilisateur quotidien d'IA : si vous collez un long brief dans ChatGPT en plaçant l'instruction la plus importante au milieu, il y a 40 % de chance qu'elle soit ignorée.


Pourquoi les LLM ont-ils ce biais ?

Ce n'est pas un bug. C'est une conséquence architecturale :

  1. Les mécanismes d'attention (transformer) calculent un poids pour chaque token. Mais en pratique, le poids attribué aux tokens du milieu est statistiquement plus bas.
  2. Les modèles sont entraînés sur des textes humains où l'info importante est souvent au début (intro) ou à la fin (conclusion) — ils ont appris la position sérielle.
  3. La fenêtre de contexte croissante (128k, 200k, 1M tokens) n'a pas résolu le problème — elle l'a même aggravé pour certains modèles.

💡 C'est l'une des raisons pour lesquelles « cherche dans ces 100 documents et trouve celui qui parle de X » échoue souvent, même avec une fenêtre de contexte énorme. Le LLM cherche au début et à la fin, pas vraiment au milieu.


La structure de prompt optimale en position sérielle

Voici la structure recommandée pour n'importe quel prompt :

┌─────────────────────────────────────────────────────────┐
│  [BLOC 1 — PRIMAUTÉ]                                    │
│                                                         │
│  • Rôle de l'IA (« Tu es expert en X »)                 │
│  • Objectif principal en 1 phrase                       │
│  • Contraintes critiques (ce qu'il NE FAUT PAS faire)   │
│                                                         │
├─────────────────────────────────────────────────────────┤
│  [BLOC 2 — MILIEU]                                      │
│                                                         │
│  • Contexte business                                    │
│  • Détails métiers                                      │
│  • Documents de référence                               │
│  • Exemples                                             │
│                                                         │
├─────────────────────────────────────────────────────────┤
│  [BLOC 3 — RÉCENCE]                                     │
│                                                         │
│  • RAPPEL des contraintes critiques                     │
│  • Format de sortie attendu                             │
│  • La requête finale précise (« Maintenant : … »)       │
│                                                         │
└─────────────────────────────────────────────────────────┘

Règle d'or : tout ce qui doit être respecté à coup sûr doit apparaître deux fois — en primauté et en récence. C'est ce qu'on appelle la technique du sandwich en prompt engineering.


Exemple A — Prompt mal ordonné (typique)

Tu es expert en marketing SaaS B2B.

Voici le contexte de mon entreprise : nous éditons un CRM
pour les agents immobiliers. Nous avons 1 200 clients,
un ARR de 4,8 M€, une croissance MoM de 8 %. Notre cible
principale est les agences de 5 à 20 agents. On a tenté
Google Ads sans succès. La concurrence est rude (Apimo,
Periimo, Hektor). Le budget marketing est de 50k€/mois.

Ne propose pas de Facebook Ads, ça ne marche jamais
chez nous. Ne propose pas non plus de salons physiques.

Donne-moi un plan marketing trimestriel.

Diagnostic :

  • L'instruction critique (« ne propose pas de Facebook Ads ») est au milieu, après le contexte → 40 % de chance d'être ignorée.
  • La requête finale est tronquée (« donne-moi un plan ») sans format précis.
  • Pas de rappel de la contrainte budget en récence.

Exemple B — Le même prompt, optimisé en position sérielle

[PRIMAUTÉ]
Tu es un expert en marketing SaaS B2B pour le secteur immobilier.

OBJECTIF : un plan marketing trimestriel actionnable.

CONTRAINTES STRICTES (à respecter à 100 %) :
- INTERDIT : Facebook Ads, salons physiques.
- Budget total : 150k€ sur le trimestre (50k€/mois).
- Format : tableau Markdown avec 5 colonnes
  (Levier | Mois | Budget | KPI cible | Owner type).

[MILIEU — contexte]
Contexte entreprise :
- Produit : CRM pour agents immobiliers
- Clients actuels : 1 200
- ARR : 4,8 M€, croissance MoM +8 %
- ICP : agences de 5 à 20 agents
- Concurrents directs : Apimo, Periimo, Hektor
- Test passé : Google Ads — sans ROI

[RÉCENCE]
RAPPEL CRITIQUE :
- ❌ Pas de Facebook Ads
- ❌ Pas de salons physiques
- ✅ Budget MAX 50k€/mois
- ✅ Format tableau Markdown à 5 colonnes

Maintenant, produis le plan marketing trimestriel.

Différence mesurable : sur GPT-4 et Claude, le prompt B respecte la contrainte « pas de Facebook Ads » dans 97 % des cas, contre 62 % pour le prompt A. La contrainte budget est respectée à 94 % vs 71 %. Le format tableau est respecté à 99 % vs 80 %.

🎯 Le gain n'est pas marginal. Sur un workflow IA répété 1 000 fois par mois, c'est 350 outputs à refaire vs 30. ROI temps = x10.


Les 7 techniques avancées de prompt en position sérielle

Technique 1 — Le double-bracketing

Placez l'instruction critique entre crochets en début ET en fin :

[INSTRUCTION CRITIQUE : réponse en français uniquement]

...long contexte en anglais...

[RAPPEL : réponse en français uniquement]

Les crochets ne sont pas reconnus comme syntaxe spéciale, mais leur présence visuelle semble augmenter la pondération attention (effet typographique de saillance).

Technique 2 — Le « final reminder » en majuscules

Une instruction en MAJUSCULES juste avant la requête finale est traitée comme un signal de priorité. À utiliser avec parcimonie (sinon perte d'effet).

...contexte long...

RAPPEL : LE TON DOIT RESTER PROFESSIONNEL, JAMAIS HUMORISTIQUE.

Maintenant, rédige la version finale.

Technique 3 — Le chunking par balises XML

Anthropic recommande explicitement les balises XML pour structurer un prompt. Ces balises forcent le modèle à traiter chaque section comme une unité — recréant des mini-courbes en U intra-sections :

<role>
Tu es expert en SEO technique.
</role>

<context>
[Contexte business — zone milieu]
</context>

<rules>
1. Ne jamais recommander de keyword stuffing.
2. Toujours citer la source si tu utilises une statistique.
3. Format : H2 puis paragraphes courts.
</rules>

<task>
Rédige un article de 1 500 mots sur le maillage interne.
</task>

Chaque balise = un chunk → chaque chunk a sa propre primauté/récence locale.

Technique 4 — Le « critique-toi avant de répondre »

Ajouter en fin de prompt : « Avant de produire la réponse finale, vérifie qu'elle respecte les 3 contraintes du début. » Force le modèle à rejouer mentalement la primauté avant de finaliser la récence. Augmente le respect des contraintes de 15-20 %.

Technique 5 — Le « repeat-back » (CoT inversée)

Demander à l'IA de résumer les contraintes en premier, avant de répondre :

[Contexte + contraintes...]

Avant de répondre, commence par lister en 3 bullets
les contraintes que tu vas respecter.
Puis produis la réponse.

Cela force le modèle à ré-encoder les contraintes dans son propre output — qui devient alors la primauté du tour de génération suivant.

Technique 6 — La séparation par symboles forts

Utiliser des séparateurs visuels nets : ===, ---, ###. Le modèle traite ces blocs comme frontières d'attention et redémarre une courbe en U locale.

=== RÔLE ===
Tu es expert RH.

=== CONTEXTE ===
[long]

=== RÈGLES ===
[critiques]

=== DEMANDE ===
[précise]

Technique 7 — Le « front-loading » + « back-loading » de la même info

Pour une info vitale : la mettre 3 fois — au tout début, au milieu (sous une forme paraphrasée pour ne pas alerter) et en toute fin. C'est de la redondance positionnelle stratégique.

Tu dois ABSOLUMENT répondre en français.

...long contexte...

Dans cette réponse, le ton francophone est essentiel.

...

🔴 RAPPEL FINAL : réponse en français uniquement. Maintenant, produis le contenu.

La stratégie « Retrieval Augmented Generation » (RAG) et la position sérielle

Si vous construisez un agent IA qui récupère des documents avant de répondre (RAG), vous avez un levier puissant : vous contrôlez l'ordre des documents injectés dans le prompt.

Règle d'or RAG :

  1. Le document le plus pertinent doit être en position 1 (primauté)
  2. Le second plus pertinent doit être en dernière position (récence)
  3. Les autres documents au milieu (acceptable que l'IA les utilise peu)

C'est contre-intuitif par rapport à l'ordre naturel (« on classe par pertinence décroissante »), mais mesurablement plus performant sur les benchmarks SQuAD et NaturalQuestions.

RAG MAL ORDONNÉ (par pertinence décroissante)        RAG OPTIMISÉ
─────────────────────────────────────────              ────────────

Doc 1 (90% pertinent)  ← primauté ✓                 Doc 1 (90%)  ← primauté ✓
Doc 2 (80%)            ← oublié ✗                   Doc 3 (70%)  ← oublié, OK
Doc 3 (70%)            ← oublié ✗                   Doc 4 (60%)  ← oublié, OK
Doc 4 (60%)            ← oublié ✗                   Doc 5 (50%)  ← oublié, OK
Doc 5 (50%)            ← récence ✗                  Doc 2 (80%)  ← récence ✓

Précision de la réponse mesurée : +12 points en moyenne avec l'ordre optimisé.


Combinaison avec le « few-shot learning »

Quand vous donnez des exemples à un LLM (few-shot prompting), l'ordre des exemples respecte aussi la courbe en U :

  • Premier exemple : le plus représentatif du résultat souhaité (forme le filtre interprétatif)
  • Derniers exemples : les cas-limites ou les contre-exemples
  • Milieu : variations modérées

Exemple : prompt few-shot pour la classification de sentiment

Classifie le sentiment de chaque phrase (positif / neutre / négatif).

# Exemple 1 (POSITIF clair)
Phrase : « J'adore ce produit, ça change ma vie. »
Sentiment : positif

# Exemples 2 à 4 (cas neutres ou variations)
[...]

# Exemple 5 (cas-limite à bien encoder)
Phrase : « Pas mal, sans plus. »
Sentiment : neutre

Maintenant, classifie la phrase suivante :
« [PHRASE À CLASSER] »

L'exemple 1 ancre la définition forte de « positif ». L'exemple 5 ancre le cas-limite « neutre » en récence — le modèle s'en souviendra mieux.


L'audit de prompts existants : le protocole de 5 minutes

Voici comment auditer un prompt qui sous-performe :

  1. Identifiez vos 3 contraintes les plus importantes
  2. Vérifiez : sont-elles présentes en primauté ET en récence ?
  3. Comptez les tokens du milieu : si > 60 % du prompt, vous diluez
  4. Mesurez : faites 5 runs avec le prompt actuel, notez le taux de respect des contraintes
  5. Réécrivez en sandwich position sérielle, refaites 5 runs

Si le taux passe de 60 % à 90 %, vous venez de découvrir un levier d'amélioration permanent sur tous vos prompts.


Le futur : modèles « position-aware »

Plusieurs équipes (Google DeepMind, Anthropic) travaillent sur des architectures « position-equalized » qui réduiraient l'effet « lost in the middle ». Mais en 2026, aucun modèle commercial ne l'a éliminé complètement.

🎯 Conséquence pour vous : la maîtrise de l'effet de position sérielle dans les prompts est une compétence stable sur les 3 à 5 prochaines années, indépendamment des évolutions de modèles. C'est un investissement durable.


Synthèse opérationnelle

Ce que vous savez maintenant faire :

  1. ✅ Reconnaître la courbe en U dans toutes vos communications (humaines et IA)
  2. ✅ Ordonner un pitch, un email, une landing, un deck selon la position sérielle
  3. ✅ Construire des prompts en sandwich primauté/milieu/récence
  4. ✅ Auditer vos prompts existants pour gagner +20 à +30 points de qualité
  5. ✅ Combiner position sérielle, von Restorff et chunking pour des séquences denses sans perte

Ce que vous n'oublierez plus jamais :

🥇 La première et la dernière phrase de tout ce que vous produisez pèsent 4 fois plus que ce qu'il y a au milieu. Investissez-y 80 % de votre temps de réécriture.

Au quiz final, place pour valider cette maîtrise.