Retrieval Head
Une retrieval head est une tête d’attention spécialisée au sein d’un Transformer, responsable de la récupération d’informations pertinentes depuis le contexte d’entrée vers la sortie. Moins de 5 % des têtes d’attention d’un LLM sont des retrieval heads, mais elles sont indispensables à la factualité en long contexte.
- Catégorie
- Interprétabilité mécaniste / Architecture LLM
- Article fondateur
- Wu et al., « Retrieval Head Mechanistically Explains Long-Context Factuality » (arXiv, avril 2024)
- Auteurs
- Wenhao Wu (Peking University), Yizhong Wang (U. of Washington), Guangxuan Xiao (MIT), Hao Peng (UIUC), Yao Fu (U. of Edinburgh)
- Proportion
- Moins de 5 % des têtes d’attention dans les modèles testés
- Modèles étudiés
- 4 familles (LLaMA, Mistral, Qwen, Yi), 6 échelles de paramètres, 3 types de fine-tuning
- Concept complémentaire
- Streaming Head (toutes les autres têtes, focalisées sur les tokens récents)
- Verdict
- Découverte majeure en interprétabilité. Impact direct sur l’optimisation du KV cache et la compréhension de la factualité long contexte.
Le problème qui a mené à la découverte
Les LLM modernes acceptent des fenêtres de contexte de 128K, 1M, voire plusieurs millions de tokens. Mais une question fondamentale restait ouverte : comment un modèle à base de Transformer parvient-il à récupérer une information précise enfouie à un endroit arbitraire dans un contexte aussi volumineux ? Le test Needle in a Haystack démontrait que certains modèles réussissaient cette tâche, mais le mécanisme interne restait opaque.
Wu et al. ont abordé cette question sous l’angle de l’interprétabilité mécaniste. Leur hypothèse, inspirée des travaux sur les CopyNet (Gu et al., 2016) et les Induction Heads (Olsson et al., 2022), était qu’il existe des têtes d’attention spécialisées dans la récupération d’information, de la même façon que les induction heads sont responsables de l’apprentissage en contexte.
Comment fonctionne une retrieval head
L’algorithme de copier-coller conditionnel
Une retrieval head implémente ce que les auteurs appellent un « algorithme de copier-coller conditionnel ». Concrètement, lorsque le modèle génère une réponse, la retrieval head identifie dans le contexte d’entrée les tokens pertinents par rapport à la question posée, puis redirige ces tokens vers la sortie. C’est un mécanisme de recopie sélective, conditionné par la requête.
Le « retrieval score » d’une tête est défini comme la fréquence avec laquelle cette tête effectue une opération de copier-coller lors de la réponse à des questions factuelles. Si le token auquel la tête porte le plus d’attention est identique au token en cours de génération, c’est un comportement de type retrieval. Les têtes qui présentent ce comportement de manière systématique sont classifiées comme retrieval heads.
Illustration concrète
Prenons un exemple simple. On donne au modèle un long texte contenant la phrase « The best fruit is orange » quelque part au milieu, puis on pose la question « What is the best fruit? ». Lors de la génération du token « orange » dans la réponse, les retrieval heads vont diriger leur attention vers le token « orange » dans le contexte d’entrée, effectuant ainsi le transfert d’information. Les streaming heads, elles, se focalisent sur les tokens récents et les attention sinks, sans participer activement à la récupération.
Cinq propriétés fondamentales des retrieval heads
L’étude systématique de Wu et al. sur 4 familles de modèles, 6 échelles de paramètres et 3 types de fine-tuning a révélé cinq propriétés remarquables :
| Propriété | Description | Implication |
|---|---|---|
| 1. Universelles | Tous les modèles explorés avec capacité long contexte possèdent un ensemble de retrieval heads | Ce n’est pas un artefact d’un modèle spécifique, c’est un mécanisme fondamental des Transformers |
| 2. Éparses | Moins de 5 % des têtes d’attention sont des retrieval heads | La grande majorité des têtes ne participent pas directement à la récupération d’information |
| 3. Intrinsèques | Les retrieval heads existent déjà dans les modèles pré-entraînés sur des contextes courts. L’extension du contexte (32K→128K par entraînement continu) ne crée pas de nouvelles retrieval heads | La capacité de récupération est encodée tôt dans l’entraînement, pas acquise par l’extension de contexte |
| 4. Activées dynamiquement | Dans LLaMA-2 7B, 12 retrieval heads sont systématiquement actives quelle que soit la modification du contexte. D’autres sont activées selon la situation | Il existe un « noyau dur » de retrieval heads toujours actif et un ensemble flexible adaptatif |
| 5. Causales | Désactiver (pruning) les retrieval heads provoque l’échec du modèle au test NIAH et des hallucinations. Désactiver des têtes non-retrieval n’affecte pas la récupération | Les retrieval heads sont nécessaires et causalement responsables de la factualité en long contexte |
Comment détecter les retrieval heads
Méthode originale (Wu et al.)
La détection repose sur un algorithme statistique qui calcule le retrieval score de chaque tête d’attention. Le processus se déroule comme suit :
Premièrement, on prépare un ensemble d’exemples de type Needle in a Haystack : un fait est inséré dans un long contexte, et on pose une question dont la réponse est ce fait. Deuxièmement, pour chaque tête d’attention, on examine si, lors de la génération du token de réponse, la tête « regarde » principalement le token correspondant dans le contexte d’entrée. Troisièmement, on agrège ce score sur l’ensemble des exemples pour obtenir un retrieval score moyen par tête. Les têtes avec un score élevé sont classifiées comme retrieval heads.
L’implémentation utilise FlashAttention pour le caching et l’attention standard pour le décodage (FlashAttention ne retourne pas la matrice d’attention, nécessaire pour l’analyse). Un seul GPU A100 80 Go suffit pour détecter les retrieval heads sur des contextes allant jusqu’à 50K tokens.
import json
import numpy as np
# Charger les scores par tête (exemple : LLaMA-2 7B 80K)
with open('./head_score/llama-2-7b-80k.json') as file:
head_list = json.loads(file.readline())
# Calculer le score moyen et classer
head_score_list = [
([int(x) for x in l[0].split("-")], np.mean(l[1]))
for l in head_list.items()
]
head_score_list = sorted(head_score_list, key=lambda x: x[1], reverse=True)
# Top 5 retrieval heads
for head, score in head_score_list[:5]:
print(f"Couche {head[0]}, Tête {head[1]} → Score: {score:.2f}")
Sur LLaMA-2 7B 80K, les retrieval heads les plus puissantes sont situées aux couches 16 (tête 19, score 0.94) et 11 (tête 15, score 0.92). Quelques échantillons suffisent à identifier de manière stable les retrieval heads les plus fortes.
Méthode DuoAttention (Xiao et al., MIT)
DuoAttention (ICLR 2025) propose une approche alternative, basée sur l’optimisation plutôt que la statistique. Au lieu de mesurer le comportement de copier-coller, DuoAttention évalue directement l’impact de la compression du KV cache de chaque tête sur la qualité de la sortie. Les têtes dont la compression dégrade significativement la sortie sont identifiées comme retrieval heads. Cette méthode est plus robuste car elle mesure la déviation de sortie plutôt qu’un motif attentionnel spécifique.
Retrieval Heads vs Streaming Heads
La découverte des retrieval heads a naturellement conduit à caractériser les autres têtes d’attention. DuoAttention formalise cette dichotomie :
| Caractéristique | Retrieval Head | Streaming Head |
|---|---|---|
| Proportion | ~5 % (MHA) à ~50 % (GQA) | ~95 % (MHA) à ~50 % (GQA) |
| Focus attentionnel | Tokens pertinents n’importe où dans le contexte | Tokens récents + attention sinks (premier token) |
| Rôle | Récupération factuelle depuis le contexte | Modélisation du langage, fluidité, cohérence locale |
| Besoin en KV cache | Cache complet sur toute la longueur de contexte | Cache réduit (tokens récents + sinks) suffisant |
| Impact du pruning | Échec au NIAH, hallucinations | Pas d’impact significatif sur la récupération |
La proportion de retrieval heads varie selon l’architecture. Les modèles à Multi-Head Attention (MHA) comme LLaMA-2 ont environ 25 % de retrieval heads (par le critère DuoAttention). Les modèles à Grouped-Query Attention (GQA) comme LLaMA-3 en ont environ 50 %, car le partage de clés/valeurs entre têtes rend chaque « groupe » plus critique.
Applications pratiques
Optimisation du KV cache
L’application la plus immédiate des retrieval heads est l’optimisation du KV cache, le principal goulot d’étranglement mémoire pour l’inférence en long contexte. Pour LLaMA-2 7B, le KV cache de 100K tokens occupe plus de 50 Go de mémoire GPU. En compressant le KV cache des streaming heads (qui n’ont besoin que des tokens récents) tout en conservant le cache complet des retrieval heads, DuoAttention réduit la mémoire jusqu’à 2,55× pour les modèles MHA et 1,67× pour les modèles GQA, avec une perte de précision minimale sur le test NIAH et sur LongBench.
Résultat spectaculaire : combiné avec la quantification (poids en 4 bits, KV cache en 4 bits), DuoAttention permet à LLaMA-3 8B de décoder un contexte de 3,3 millions de tokens sur un seul GPU A100 80 Go.
Réduction des hallucinations
L’étude montre que l’activation des retrieval heads est corrélée avec la factualité de la sortie. Quand les retrieval heads s’activent correctement (elles « trouvent » le bon passage), la réponse est factuelle. Quand elles échouent, le modèle hallucine. Cette observation ouvre la voie à des systèmes de détection d’hallucinations basés sur le monitoring de l’activité des retrieval heads pendant la génération.
Impact sur le raisonnement Chain-of-Thought
Les retrieval heads influencent fortement le raisonnement Chain-of-Thought (CoT). En CoT, le modèle doit fréquemment se référer à la question initiale et au contexte précédemment généré pour construire son raisonnement étape par étape. Ce va-et-vient constant repose sur les retrieval heads. Les tâches où le modèle génère directement une réponse à partir de ses connaissances entraînées (sans besoin de se référer au contexte) sont beaucoup moins affectées par la désactivation des retrieval heads.
Extension : QRHead (Query-Focused Retrieval Head)
Zhang et al. (2025) ont introduit QRHead, une amélioration du concept de retrieval head. Au lieu de mesurer le comportement de copier-coller générique, QRHead agrège les scores d’attention par rapport à la requête spécifique de l’utilisateur, en utilisant quelques exemples de tâches réelles (QA long contexte). Le retriever QRRetriever qui en découle sélectionne les passages les plus pertinents en fonction de la masse attentionnelle des QRHeads. Sur les tâches de raisonnement multi-hop (LongMemEval, CLIPPER), cette approche améliore les performances de plus de 10 % par rapport au contexte complet.
Place dans l’écosystème
| Concept | Relation avec les Retrieval Heads |
|---|---|
| Needle in a Haystack | Le test NIAH est l’outil principal utilisé pour détecter et valider les retrieval heads. La heatmap NIAH montre visuellement l’activation des retrieval heads. |
| Lost in the Middle | Les retrieval heads fournissent une explication mécaniste partielle du Lost in the Middle : les positions centrales reçoivent moins d’attention de certaines retrieval heads en raison de la décroissance positionnelle. |
| Multi-Head Attention | Les retrieval heads sont un sous-ensemble fonctionnel spécifique des têtes du mécanisme MHA. Leur découverte montre que les têtes d’attention ne sont pas interchangeables. |
| KV Cache | La distinction retrieval/streaming heads est le fondement des méthodes de compression intelligente du KV cache comme DuoAttention. |
| Induction Heads | Les induction heads (Olsson et al., 2022) implémentent l’apprentissage en contexte. Les retrieval heads implémentent la récupération conditionnelle. Les deux sont des sous-réseaux fonctionnels spécialisés au sein du Transformer. |
| Attention Visualization | L’analyse visuelle des patterns d’attention est la méthode d’identification initiale des retrieval heads. |
Limites de la recherche actuelle
La découverte des retrieval heads est une avancée significative, mais plusieurs limites subsistent. Les études ont porté principalement sur des modèles open-weight (LLaMA, Mistral, Qwen, Yi). Les modèles propriétaires (GPT-5.4, Claude Opus 4.6, Gemini 3.1 Pro) ne sont pas analysables avec cette méthode car ils ne donnent pas accès aux matrices d’attention internes. La relation exacte entre retrieval heads et le phénomène Lost in the Middle n’est pas entièrement clarifiée : les retrieval heads expliquent le « quoi » (quelles têtes récupèrent l’info) mais pas complètement le « pourquoi » du biais positionnel en U. Enfin, les retrieval heads expliquent la récupération factuelle, mais pas les capacités de raisonnement, de synthèse ou de compréhension globale d’un long contexte.
Verdict
La découverte des retrieval heads est l’une des contributions les plus importantes en interprétabilité mécaniste des LLM de ces dernières années. Pour la première fois, on identifie un sous-réseau concret et spécialisé qui implémente un algorithme fonctionnel (copier-coller conditionnel) au sein d’un Transformer. Les implications sont directes : compression intelligente du KV cache (DuoAttention réduit la mémoire de 2,5×), compréhension de la factualité, et détection potentielle d’hallucinations. Si vous travaillez sur l’optimisation d’inférence en long contexte ou sur la fiabilité des LLM, c’est un article incontournable.
FAQ
Qu’est-ce qu’une retrieval head dans un LLM ?
C’est une tête d’attention spécialisée qui récupère des informations pertinentes depuis le contexte d’entrée pour les transférer vers la sortie du modèle. Elle fonctionne comme un algorithme de copier-coller conditionnel : elle identifie les tokens pertinents dans le contexte et les « redirige » vers la génération. Moins de 5 % des têtes d’attention d’un LLM sont des retrieval heads, mais leur désactivation provoque des hallucinations et l’échec au test Needle in a Haystack.
Quelle est la différence entre retrieval head et streaming head ?
Les retrieval heads scrutent l’ensemble du contexte pour trouver l’information pertinente. Les streaming heads se focalisent sur les tokens récents et les « attention sinks » (typiquement le premier token). Les streaming heads assurent la fluidité et la cohérence linguistique, tandis que les retrieval heads assurent la factualité. En pratique, seules les retrieval heads nécessitent un KV cache complet, ce qui est la base de l’optimisation mémoire de DuoAttention.
Combien de retrieval heads un modèle possède-t-il ?
Cela dépend de l’architecture. Sur les modèles Multi-Head Attention (MHA) comme LLaMA-2, les retrieval heads représentent environ 5 % des têtes (critère Wu et al.) soit environ 25 % (critère DuoAttention, plus large). Sur les modèles Grouped-Query Attention (GQA) comme LLaMA-3, la proportion est d’environ 50 % selon DuoAttention, car le partage de clés/valeurs rend chaque groupe plus critique. Dans tous les cas, c’est une minorité des têtes qui porte la responsabilité de la récupération.
Pourquoi les retrieval heads sont-elles importantes pour l’optimisation du KV cache ?
Le KV cache est le principal goulot d’étranglement mémoire pour l’inférence en long contexte (pour LLaMA-2 7B, 100K tokens consomment plus de 50 Go). En identifiant les retrieval heads (qui ont besoin du cache complet) et les streaming heads (qui fonctionnent avec un cache réduit), on peut compresser le cache des streaming heads sans perdre la capacité de récupération. DuoAttention atteint une réduction mémoire de 2,55× sur les modèles MHA, permettant à LLaMA-3 8B de traiter 3,3 millions de tokens sur un seul GPU A100.
Comment détecter les retrieval heads dans mon propre modèle ?
Utilisez le code open source de Wu et al. (github.com/nightdessert/Retrieval_Head). L’algorithme génère des exemples Needle in a Haystack, mesure le score de copier-coller de chaque tête d’attention, et produit un classement. Un seul GPU A100 suffit pour des contextes jusqu’à 50K tokens. Le processus est rapide : même un petit nombre d’échantillons suffit à identifier les retrieval heads les plus fortes de manière stable. Pour une approche orientée optimisation du KV cache, utilisez DuoAttention (github.com/mit-han-lab/duo-attention) qui détecte les retrieval heads par déviation de sortie.