Polydesk-logotype
Polydesk.ai — Header

Multi-Head Attention (MHA)

Le Multi-Head Attention (MHA) est le mécanisme central de l’architecture Transformer qui exécute plusieurs calculs d’attention en parallèle, chacun avec ses propres matrices de projection apprenables, permettant au modèle de capturer simultanément différents types de relations (syntaxiques, sémantiques, positionnelles) entre les tokens d’une séquence.

Multi-Head Attention en bref
Origine
« Attention Is All You Need » (Vaswani et al., 2017)
Principe
Exécuter H mécanismes d’attention en parallèle avec des projections distinctes
Formule
MHA(Q,K,V) = Concat(head₁, …, head_H) × WO
Têtes typiques
8 (petits modèles) à 128 (très gros modèles)
Variantes modernes
MQA (Multi-Query), GQA (Grouped-Query), MLA (Multi-head Latent)
Utilisé dans
Tous les LLM (GPT, Claude, Gemini, Llama, Mistral, Qwen, DeepSeek…)
Impact KV cache
MHA standard est le plus coûteux ; GQA et MLA réduisent la taille du KV cache de 4x à 20x+

D’une tête à plusieurs : pourquoi MHA existe

Les limites d’une seule tête d’attention

Le mécanisme de self-attention de base (single-head) calcule pour chaque token un score de pertinence vis-à-vis de tous les autres tokens de la séquence, via les vecteurs Query (Q), Key (K) et Value (V). Cela fonctionne, mais avec une limitation importante : une seule tête d’attention ne peut capturer qu’un seul type de relation à la fois.

Le langage est multidimensionnel. Dans la phrase « Le chat noir que Marie a adopté dort sur le canapé », les relations pertinentes incluent simultanément la syntaxe (« dort » est le verbe principal de « chat »), la sémantique (« adopté » est lié à « Marie »), les coréférences (« que » réfère à « chat »), et la localisation spatiale (« sur le canapé »). Une seule tête d’attention ne peut pas capturer toutes ces relations efficacement.

L’intuition du Multi-Head Attention

MHA résout ce problème en exécutant plusieurs mécanismes d’attention en parallèle, chacun avec ses propres matrices de projection WQ, WK, et WV. Chaque « tête » apprend à se spécialiser sur un type de relation différent. Lors de l’entraînement, certaines têtes apprennent spontanément à suivre les dépendances grammaticales, d’autres les relations sémantiques à longue distance, d’autres encore les patterns positionnels locaux.

L’analogie souvent utilisée est celle d’une équipe d’experts qui lisent le même texte : chacun se concentre sur un aspect différent (grammaire, sens, ton, références), puis leurs observations sont combinées pour former une compréhension plus riche et nuancée qu’aucun expert seul ne pourrait atteindre.

Fonctionnement technique

Le calcul étape par étape

Prenons un modèle avec une dimension cachée d_model = 512 et H = 8 têtes d’attention. Chaque tête travaille avec une dimension réduite d_k = d_model / H = 64.

Étape 1 : Projections linéaires. L’entrée X de dimension [séquence, d_model] est projetée en Q, K et V pour chaque tête via des matrices apprises distinctes. La tête i utilise WQ_i, WK_i et WV_i, chacune de dimension [d_model, d_k]. Résultat : 8 triplets (Q_i, K_i, V_i), chacun de dimension [séquence, 64].

Étape 2 : Attention par tête. Chaque tête calcule indépendamment l’attention scalée : head_i = softmax(Q_i × K_iT / √d_k) × V_i. Le facteur 1/√d_k empêche les produits scalaires de devenir trop grands à mesure que la dimension augmente, ce qui saturerait le softmax.

Étape 3 : Concaténation. Les sorties de toutes les têtes sont concaténées le long de la dimension des features : Concat = [head_1 ; head_2 ; … ; head_8], donnant un tenseur de dimension [séquence, 512].

Étape 4 : Projection de sortie. Le résultat concaténé est projeté via une matrice WO de dimension [d_model, d_model] : MHA(Q,K,V) = Concat × WO. Cette projection finale apprend à combiner optimalement les informations de toutes les têtes.

Pas de surcoût de calcul Le MHA avec H têtes de dimension d_k = d_model/H effectue exactement le même nombre d’opérations qu’une seule tête de dimension d_model. Le modèle ne « paye » pas plus cher pour avoir plusieurs têtes : il répartit simplement le même budget de calcul en sous-espaces indépendants, ce qui améliore la capacité de représentation sans augmenter le coût.

Spécialisation des têtes

Les études empiriques montrent que les têtes d’attention apprennent des rôles distincts et interprétables. On observe typiquement trois catégories de têtes :

Têtes positionnelles. Elles se concentrent sur les tokens voisins (le token précédent, le suivant). Elles capturent les patterns locaux de la langue, comme les collocations et les structures syntaxiques immédiates.

Têtes syntaxiques. Elles identifient les relations grammaticales à distance, comme le lien sujet-verbe, les propositions relatives, ou les structures de coordination. Dans la phrase « Le chat que Marie a adopté dort », une tête syntaxique relie « dort » à « chat » en traversant la proposition relative.

Têtes rares / globales. Elles se concentrent sur des tokens spécifiques ou peu fréquents, ou maintiennent une attention globale sur l’ensemble de la séquence. Certaines têtes développent le pattern « attention sink » identifié par la recherche sur le KV cache, où les tout premiers tokens de la séquence reçoivent une attention disproportionnée.

Cette spécialisation émerge spontanément pendant l’entraînement sans supervision explicite. Le modèle découvre que distribuer l’attention sur différents sous-espaces est plus efficace que de concentrer tout le budget attentionnel sur un seul espace.

Où le MHA apparaît dans un Transformer

Le Multi-Head Attention apparaît à trois endroits dans un Transformer complet (encoder-decoder) :

Self-attention de l’encodeur. Chaque token de l’entrée s’attent à tous les autres tokens de l’entrée. Les Q, K et V proviennent tous de la même séquence d’entrée.

Self-attention masquée du décodeur. Chaque token de la sortie s’attent uniquement aux tokens précédents (via un masque causal), empêchant le modèle de « voir » le futur pendant l’entraînement.

Cross-attention encodeur-décodeur. Les Q proviennent du décodeur, les K et V de l’encodeur. C’est ce qui permet au décodeur de « regarder » l’entrée pour générer la sortie (par exemple en traduction).

Les LLM modernes de type decoder-only (GPT, Claude, Llama, Mistral) n’utilisent que la self-attention masquée du décodeur, qui est le pattern le plus simple et le plus efficace pour la génération de texte.

Variantes modernes du MHA

Le MHA standard a un problème majeur en production : le KV cache. Chaque tête d’attention stocke ses propres vecteurs K et V pour chaque token de la séquence. Pour un modèle avec 32 têtes, 80 couches, et un contexte de 128K tokens, le KV cache atteint des dizaines de gigaoctets. Plusieurs variantes ont été développées pour réduire ce coût.

Multi-Query Attention (MQA)

Proposé par Shazeer (2019), MQA conserve des Q distinctes par tête mais partage une seule paire K/V entre toutes les têtes. Cela réduit la taille du KV cache d’un facteur H (le nombre de têtes). Le gain en mémoire et en bande passante est massif, mais la capacité de représentation souffre : avec un seul set de K/V, toutes les têtes voient la même information contextuelle, ce qui peut dégrader la qualité, surtout pour les gros modèles.

Grouped-Query Attention (GQA)

La Grouped-Query Attention (Ainslie et al., 2023) est le compromis qui a conquis l’industrie. Au lieu de partager une seule paire K/V (MQA) ou d’en avoir une par tête (MHA), GQA divise les têtes de Query en G groupes, chaque groupe partageant une paire K/V dédiée.

Avec 32 têtes de Query et G = 8 groupes, on passe de 32 paires K/V (MHA) à 8 (GQA), soit une réduction de 4x du KV cache. Les études d’ablation, notamment dans les papiers originaux GQA et Llama 2, montrent que GQA performe au niveau du MHA standard en termes de qualité de modélisation.

GQA est devenu le standard de facto. La quasi-totalité des LLM open-weight modernes l’utilisent : Llama 3.x, Mistral (7B et Mixtral 8x7B), IBM Granite, et d’autres.

Variante Têtes Q Têtes K/V KV cache (relatif à MHA) Qualité Modèles notables
MHA H H 1x (référence) Maximale GPT-2/3, BERT, anciens modèles
MQA H 1 1/H Réduite sur gros modèles PaLM, certaines API d’inférence ultra-rapides
GQA H G (1 < G < H) G/H ≈ MHA Llama 3.x, Mistral, Qwen, Granite
MLA H Compression latente Très réduit (dimension latente) ≥ MHA DeepSeek V3/R1

Multi-head Latent Attention (MLA)

MLA, introduit par DeepSeek V2 et perfectionné dans V3, prend une approche radicalement différente. Au lieu de réduire le nombre de têtes K/V (comme GQA), MLA compresse les K et V dans un espace latent de dimension réduite d_c avant de les stocker dans le KV cache. Lors de l’inférence, les représentations compressées sont re-projetées vers leur dimension originale avant le calcul d’attention.

L’avantage est double. Le KV cache est significativement plus petit que celui de GQA (la dimension de compression d_c est typiquement bien inférieure à la somme des dimensions K/V de GQA). Et la puissance expressive est théoriquement supérieure : les études d’ablation de DeepSeek V2 montrent que MLA surpasse GQA en qualité de modélisation tout en utilisant moins de mémoire cache.

Le mécanisme est subtil : pendant le décodage, MLA peut basculer vers un mode « absorbé » qui ressemble à du MQA, où les projections d’absorption sont fusionnées dans les matrices de Query. Cela maximise la densité computationnelle sur les GPU modernes et permet d’utiliser efficacement les instructions matmul des Tensor Cores.

Le papier « TransMLA » (2025) démontre formellement que MLA (dans sa forme factorisée) est strictement plus expressif que GQA pour la partie non-positionnelle de la représentation. Autrement dit, tout modèle GQA peut être représenté en MLA, mais l’inverse n’est pas toujours vrai.

Mixture-of-Head Attention (MoH)

Une approche récente (2025) traite les têtes d’attention comme des experts dans un mécanisme de Mixture-of-Experts. Chaque token sélectionne dynamiquement les têtes les plus pertinentes, au lieu de toutes les activer systématiquement. MoH-LLaMA3-8B atteint une précision moyenne de 64,0% sur 14 benchmarks, surpassant LLaMA3-8B de 2,4% tout en n’utilisant que 75% des têtes. L’idée sous-jacente est que toutes les têtes ne sont pas également utiles pour chaque token, et qu’une sélection dynamique améliore à la fois l’efficacité et la qualité.

Attention hybride (Qwen3-Next)

Qwen3-Next (début 2026) introduit une attention hybride « gated » qui mélange des couches d’attention linéaire (DeltaNet) avec des couches d’attention standard. Cette approche vise un throughput encore plus élevé pour les contextes longs, en alternant des couches peu coûteuses (linéaires) avec des couches expressives (attention complète). C’est une direction de recherche active qui pourrait représenter la prochaine évolution après GQA/MLA.

MHA et les optimisations d’inférence

MHA et FlashAttention

FlashAttention optimise le calcul d’attention scalée (softmax(QKT/√d_k) × V) qui est effectué dans chaque tête. Toutes les variantes (MHA, GQA, MLA) bénéficient de FlashAttention pour le calcul d’attention proprement dit. FlashAttention-4 (mars 2026) supporte nativement le GQA, ce qui est essentiel pour les LLM modernes.

MHA et encodages positionnels

MHA seul est insensible à l’ordre des tokens (l’attention est une opération sur des ensembles, pas des séquences). Les encodages positionnels sont donc indispensables. Les approches modernes comme RoPE (Rotary Position Embedding) et ALiBi injectent l’information de position directement dans le calcul d’attention (via rotation des Q et K pour RoPE, ou biais additif pour ALiBi), plutôt que de l’ajouter aux embeddings d’entrée comme les encodages sinusoïdaux classiques.

L’interaction entre le mécanisme de position et la structure multi-tête est importante : avec RoPE, chaque paire de dimensions dans les Q et K d’une tête est traitée comme un plan de rotation avec sa propre fréquence, créant une « horloge » multi-échelle qui encode les distances relatives à différentes granularités.

MHA et décodage spéculatif

Le choix de variante MHA impacte directement le décodage spéculatif. Un modèle avec GQA a un KV cache plus petit, ce qui accélère le rollback en cas de rejet de tokens spéculatifs (moins de données à tronquer). MLA offre un avantage supplémentaire : dans son mode « absorbé » (MQA-like), le décodage spéculatif peut traiter les vérifications de tokens candidats avec une densité computationnelle maximale, ce qui est idéal pour les petits batch sizes typiques du speculative decoding.

Comment choisir sa variante d’attention

GQA est le choix par défaut. C’est le standard de l’industrie, supporté par tous les frameworks, avec un excellent compromis qualité/efficacité. Si vous entraînez un nouveau modèle ou choisissez un modèle open-weight, privilégiez GQA.

MLA pour l’ultra-efficacité long-contexte. Si votre cas d’usage implique des contextes très longs (100K+ tokens) et que vous avez besoin d’une empreinte KV cache minimale, les modèles basés sur MLA (DeepSeek V3/R1) offrent un avantage structurel.

MQA pour l’inférence ultra-rapide à faible qualité tolérable. Si la vitesse brute est la priorité absolue et qu’une légère dégradation de qualité est acceptable, MQA reste le plus rapide car il minimise le plus le KV cache.

MHA standard est obsolète pour les nouveaux modèles. Aucun LLM majeur lancé récemment n’utilise le MHA standard. Les variantes optimisées offrent la même qualité (ou mieux) avec un coût d’inférence nettement inférieur. Si vous travaillez avec un ancien modèle MHA, envisagez l’uptraining vers GQA (c’est possible avec un volume d’entraînement modéré).


Questions fréquentes sur le Multi-Head Attention

Pourquoi utiliser plusieurs têtes d’attention au lieu d’une seule grosse tête ?

Plusieurs têtes de dimension réduite capturent des types de relations différents en parallèle (syntaxe, sémantique, position, coréférences), tandis qu’une seule grosse tête ne peut optimiser qu’un seul type de pattern à la fois. Le coût total en calcul est identique : 8 têtes de dimension 64 effectuent le même nombre d’opérations qu’une tête de dimension 512. Mais les têtes multiples fournissent une représentation plus riche et plus robuste. Les expériences montrent des améliorations de perplexité de l’ordre de 7% en passant de 4 à 8 têtes sur des modèles de taille moyenne.

Quelle est la différence entre MHA, MQA et GQA ?

MHA (Multi-Head Attention) standard donne à chaque tête ses propres K et V, ce qui offre la meilleure expressivité mais le plus gros KV cache. MQA (Multi-Query) partage un seul set de K/V entre toutes les têtes, réduisant massivement le cache mais au prix d’une qualité dégradée. GQA (Grouped-Query) est le compromis optimal : les têtes sont regroupées, chaque groupe partageant un set K/V. Avec 32 têtes et 8 groupes, GQA réduit le cache de 4x tout en maintenant la qualité du MHA. C’est le standard actuel.

Que fait la projection de sortie WO après la concaténation des têtes ?

La projection de sortie WO est une transformation linéaire apprise qui combine les informations de toutes les têtes en une seule représentation unifiée. Sans cette projection, les informations des différentes têtes resteraient simplement juxtaposées. WO apprend quelles combinaisons d’informations inter-têtes sont les plus utiles pour les couches suivantes du réseau. C’est un composant essentiel qui permet aux têtes de « communiquer » indirectement.

Combien de têtes d’attention faut-il ?

Le nombre de têtes dépend de la taille du modèle. Les petits modèles (1-3B paramètres) utilisent typiquement 16 à 32 têtes. Les modèles moyens (7-13B) utilisent 32 têtes. Les très gros modèles (70B+) peuvent avoir 64 à 128 têtes. La règle est que la dimension par tête (d_model / H) reste entre 64 et 128, ce qui est le sweet spot identifié empiriquement. Au-delà de 12-16 têtes pour un modèle donné, les gains marginaux diminuent fortement.

Peut-on convertir un modèle MHA existant en GQA ?

Oui. Le papier original GQA montre qu’on peut « uptrain » un modèle MHA vers GQA avec un volume d’entraînement relativement modeste (environ 5% du pré-entraînement original). Les K et V des têtes d’un même groupe sont moyennés pour initialiser le K/V partagé, puis le modèle est entraîné brièvement pour s’adapter. MoH-LLaMA3-8B montre qu’on peut également convertir un modèle MHA vers une architecture Mixture-of-Head via continue-tuning. Ces conversions permettent de moderniser d’anciens modèles sans repartir de zéro.

Polydesk.ai — Footer