Un nouveau « Détecteur de puits d'attention » (Attention Sink Detector) repère les tokens qui accaparent la majeure partie de la masse d'attention lors de l'étape de prefill de l'inférence des grands modèles de langage (LLM). L'outil montre que la suppression de ces tokens de puits d'un cache clé-valeur (KV) paralyse les performances du modèle, les rendant essentiels comme ancres pour une génération stable.
Pourquoi l'étape de prefill est importante
La plupart des recherches sur les LLM se concentrent sur la boucle de génération token par token, mais le travail effectué avant le premier token — le prefill — définit le ton de tout ce qui suit. Pendant le prefill, le modèle traite l'intégralité du prompt, construit le cache KV et répartit l'attention sur chaque position. Comme la fonction softmax qui produit les poids d'attention doit sommer à 1, le modèle ne peut pas dire « rien n'est pertinent ». Il déverse la masse de probabilité restante sur un token facile à adresser, généralement le premier token de la séquence. Ce token devient un puits d'attention (attention sink).
Ce qu'est un puits d'attention, en termes simples
Dans un Transformer, chaque tête calcule un poids pour chaque paire de tokens. Lorsque la distribution est fortement asymétrique, un seul token peut recevoir une part disproportionnée du poids d'attention. Ce phénomène n'est pas un bug ; il découle de la contrainte softmax. Le premier token (souvent un marqueur de début de phrase) agit comme une « soupape de décharge » pour la probabilité résiduelle qui ne peut être assignée ailleurs.
Enjeux pour la gestion du cache KV
Les caches KV stockent les vecteurs clé et valeur pour chaque token traité, permettant des recherches rapides pendant la génération. Dans les scénarios à contexte long, les praticiens élaguent (pruning) le cache pour respecter les limites de mémoire du GPU. Le nouveau détecteur montre que supprimer indistinctement les tokens qui semblent « peu importants » revient également à supprimer les puits mêmes sur lesquels le modèle s'appuie, provoquant un effondrement des performances. Le maintien en cache des tokens de puits préserve l'équilibre interne du modèle et maintient la stabilité de la génération.
Comment fonctionne le détecteur
- Attention immédiate (Eager attention) : L'implémentation contourne les noyaux (kernels) rapides tels que FlashAttention, qui compressent la matrice d'attention complète, et enregistre à la place les scores d'attention bruts pour chaque tête.
- Agrégation à l'échelle des couches : Les scores sont moyennés sur l'ensemble des couches et des têtes pour produire un profil unique de masse d'attention par token.
- Écart absolu médian logarithmique (MAD) : Comme les poids d'attention présentent une forte asymétrie à droite, un simple test de moyenne-écart-type classifie mal la variance normale comme des valeurs aberrantes. La transformation logarithmique des poids normalise la distribution ; l'application de la méthode MAD permet ensuite de signaler les tokens dont la masse d'attention dépasse la dispersion typique.
Deux classes de puits découvertes
- Vrais puits – Le token de début de phrase (BOS) absorbe systématiquement une part massive de l'attention, quel que soit le contenu du prompt.
- Puits structurels – Les tokens appartenant à des prompts de niveau système, tels que les marqueurs utilisés dans ChatML (
<im_start>,<im_end>), forment de petits clusters qui attirent également l'attention. Ils agissent comme des frontières logiques, aidant le modèle à séparer les messages de l'utilisateur des instructions du système.
Contre-argument : Avons-nous réellement besoin de la matrice brute ?
L'auteur souligne que sans les chiffres bruts, le phénomène de puits reste caché, et toute politique d'élagage du cache basée sur des données incomplètes risque de déstabiliser le modèle.
À surveiller ensuite
Le détecteur est le deuxième volet d'une série en quatre parties qui a débuté avec un suivi de l'entropie pour la qualité de la génération. La partie suivante intégrera la détection de puits au décodage spéculatif guidé par l'entropie. L'étude finale sera une étude empirique.
À retenir : Les puits d'attention ne sont pas une bizarrerie obscure ; ce sont des piliers structurels qui maintiennent la distribution de l'attention d'un Transformer bien régulée pendant le prefill. Toute stratégie d'élagage du cache KV qui les ignore compromettra la stabilité du modèle. Détecter et préserver ces tokens est une mesure de protection à faible coût qui peut rendre l'inférence à contexte long à la fois fiable et efficace.
