0Pricing
AI Prompt Engineering · Leçon

Perdu au milieu

Effets de l’attention selon la position.

Perdu au milieu est une leçon AI Prompt Engineering gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Prompt Engineering, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Prompt Engineering comprend 4 leçons au total.

L'effet de perte au milieu

Dans les modèles à contexte long, la précision de récupération suit une courbe en U selon la position : les faits placés au début et à la fin du contexte sont bien rappelés, tandis que ceux placés au milieu le sont beaucoup moins. C'est l'effet de « perte au milieu ».

  • Il s'agit d'une propriété de l'attention et de l'entraînement, pas d'un phénomène aléatoire.
  • Il persiste même lorsque la réponse est présente sans ambiguïté.

La position n'est pas neutre ; c'est un facteur de fiabilité dont vous devez tenir compte dans votre conception.

Pourquoi le milieu souffre

Plusieurs facteurs se cumulent au milieu : les biais positionnels favorisent les jetons récents et les tout premiers jetons, les données d'entraînement surreprésentent les schémas où la réponse se trouve près du début ou de la fin, et le grand nombre d'éléments distracteurs concurrents à l'intérieur dilue l'attention portée à chaque fait.

Vous ne pouvez pas supprimer ce biais du modèle, mais vous pouvez cesser de lutter contre lui.

Placez le contenu crucial aux extrémités

La première mesure d'atténuation, et la plus fiable : placez aux limites ce que le modèle doit utiliser. L'instruction de la tâche et les éléments les plus importants doivent se trouver près du haut et du bas, et non être enfouis au centre.

  • Commencez par la tâche et les faits essentiels.
  • Répétez l'instruction principale tout à la fin (« rappel de votre tâche : ... »).
context = (
  TASK_INSTRUCTION +
  KEY_EVIDENCE +
  bulk_supporting_material +
  TASK_REMINDER  # restate at the tail
)

Placement selon la pertinence

Lorsque vous contrôlez l'ordre des blocs récupérés, ne les déversez pas dans l'ordre du score de récupération, du début à la fin. Entrelacez-les afin que les blocs les plus pertinents se trouvent aux deux extrémités et que les moins pertinents remplissent le milieu — en exploitant délibérément la courbe en U.

Ce « placement aux extrémités » peut récupérer une grande partie de la perte liée aux positions centrales.

def edge_load(chunks):
    # chunks sorted by relevance desc
    head, tail = [], []
    for i, c in enumerate(chunks):
        (head if i % 2 == 0 else tail).append(c)
    return head + list(reversed(tail))

Réduisez la botte de foin

La solution la moins coûteuse au problème de perte au milieu consiste à avoir moins de contenu au milieu. Un préfiltrage énergique — supprimer les blocs non pertinents avant l'assemblage — réduit la zone intérieure où les faits se perdent et concentre l'attention sur ce qui compte.

Une requête ciblée de 15 k jetons n'a pratiquement pas de milieu vulnérable ; une requête de 600 k jetons est presque entièrement constituée de milieu.

Repérage et indexation

Donnez une carte au modèle. Une table des matières en haut, accompagnée d'ancrages de section clairs, permet au modèle de se diriger vers les zones pertinentes plutôt que de dépendre du rappel positionnel brut.

  • Numérotez les sections et faites-y référence dans la question.
  • Ajoutez des ancrages explicites tels que SECTION 7: PRICING, que le modèle peut rechercher.

La structure remplace en partie la fiabilité positionnelle.

# Top of prompt
# INDEX: [S1 Overview] [S2 Risks] [S3 Pricing] [S4 Appendix]
# Question: 'Using S3 only, what is the renewal fee?'

Forcez une analyse avant de répondre

Demandez au modèle d'énumérer où se trouve le contenu pertinent avant de répondre. Le fait de localiser d'abord les éléments probants contrecarre sa tendance à ignorer le milieu.

« Commencez par lister chaque section qui mentionne les frais de renouvellement avec son ancrage, puis répondez. » Cette analyse explicite fait apparaître le contenu central qu'une question directe aurait ignoré.

ask = (
  'Step 1: list all anchors mentioning the topic. '
  'Step 2: quote the relevant line from each. '
  'Step 3: answer using only those quotes.'
)

Reposez la question en repositionnant les éléments

Si un fait crucial se retrouve dans la zone morte et que son rappel est incertain, relancez l'appel en déplaçant ce fait vers une extrémité. Pour les tâches comportant plusieurs faits, vous pouvez exécuter plusieurs passages en faisant varier les faits qui occupent les positions les plus fiables, puis rapprocher les résultats.

La rotation des positions est une astuce pratique pour renforcer la robustesse lorsqu'une seule disposition n'est pas fiable.

Découpage et fusion pour la couverture

Pour les tâches exhaustives (« trouver toutes les violations »), une seule exécution géante ignorera certains éléments centraux. Divisez le contenu en fenêtres qui se chevauchent et qui sont suffisamment petites pour ne pas avoir de milieu faible, exécutez chacune, puis fusionnez les résultats et dédupliquez-les.

  • Le chevauchement évite les éléments manqués aux limites.
  • L'étape de fusion rapproche les doublons et les conflits.

Les tâches de couverture privilégient de nombreux petits passages plutôt qu'une seule exécution gigantesque.

def coverage(doc, win, overlap):
    out = []
    for w in windows(doc, win, overlap):
        out += extract(w)
    return dedupe(out)

Mesurez votre propre courbe en U

La gravité de l'effet varie selon le modèle et la forme de la requête. Caractérisez-la : insérez un marqueur sentinelle à différentes profondeurs et tracez le rappel. Utilisez la courbe pour déterminer la longueur de contexte sûre et votre stratégie de placement aux extrémités pour ce modèle.

Concevez votre système en fonction de comportements mesurés, et non de croyances reçues.

depths = [0.0, 0.25, 0.5, 0.75, 1.0]
recall = {d: probe_canary_at(d) for d in depths}
# Expect a dip around 0.5

Guide pratique de robustesse positionnelle

Pour vaincre la perte au milieu : réduisez la botte de foin, placez le contenu le plus pertinent aux extrémités, reformulez la tâche à la fin, ajoutez un index et forcez une analyse de localisation avant la réponse, faites tourner les positions lorsque vous reposez la question et utilisez le découpage-fusion pour une couverture exhaustive. Surtout, mesurez la courbe de votre modèle et concevez votre système en conséquence.

Vérification rapide

Vous disposez d'un seul fait indispensable et d'un vaste contexte complémentaire, et vous avez remarqué que le modèle ignore parfois ce fait.

Récapitulatif : effets de l'attention positionnelle

Le rappel dans un contexte long suit une courbe en U : les extrémités sont fiables, le milieu ne l'est pas. Contrez ce phénomène en réduisant la botte de foin, en plaçant les blocs les plus pertinents aux extrémités, en reformulant la tâche à la fin, en ajoutant un index et en forçant une analyse de localisation avant la réponse, en faisant tourner les positions lorsque vous reposez la question et en utilisant le découpage-fusion pour une couverture exhaustive. Mesurez la courbe réelle de votre modèle et concevez le placement en fonction de celle-ci, plutôt que de faire confiance à un rappel uniforme.

Questions Fréquemment Posées

La leçon « Perdu au milieu » est-elle gratuite ?

Oui — le texte complet de « Perdu au milieu » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Prompt Engineering, passe à CoddyKit PRO. Le cours AI Prompt Engineering comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Perdu au milieu » ?

Effets de l’attention selon la position. Tu pratiques AI Prompt Engineering avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AI Prompt Engineering ?

Aucune expérience préalable n'est requise. AI Prompt Engineering sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Perdu au milieu » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AI Prompt Engineering ?

Oui. Chaque leçon AI Prompt Engineering inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Fenêtres de contexte d’un million de jetons
  2. Perdu au milieu
  3. Structurer d’immenses prompts
  4. Mettre en cache les longs préfixes
← Retour à AI Prompt Engineering