P

Grouped Query Attention : Définition et Exemples

Mécanisme d'attention qui regroupe plusieurs têtes de requête (query heads) pour partager les mêmes clés et valeurs, réduisant ainsi la mémoire et le coût de calcul lors de l'inférence des grands modèles de langage.

Définition complète

Le Grouped Query Attention (GQA) est une technique d'optimisation de l'architecture Transformer introduite par des chercheurs de Google en 2023. Elle se situe à mi-chemin entre le Multi-Head Attention (MHA) classique, où chaque tête de requête possède ses propres clés et valeurs, et le Multi-Query Attention (MQA), où toutes les têtes partagent un seul jeu de clés-valeurs. Dans le GQA, les têtes de requête sont divisées en groupes, et chaque groupe partage un même ensemble de clés et de valeurs.

L'intérêt principal du GQA réside dans la réduction significative de la mémoire nécessaire pour stocker le cache KV (Key-Value) pendant l'inférence. Dans un modèle classique à 32 têtes d'attention, le cache KV doit stocker 32 paires clés-valeurs par couche. Avec le GQA utilisant 8 groupes, ce nombre tombe à 8, soit une réduction de 75 % de la mémoire du cache KV, tout en conservant une qualité de génération très proche du MHA.

Cette technique est devenue un standard dans les modèles de langage modernes. Llama 2 (70B) de Meta a été l'un des premiers grands modèles à adopter le GQA, suivi par Mistral, Llama 3 et de nombreux autres. Le GQA permet à ces modèles de traiter des contextes plus longs et de servir davantage de requêtes simultanées avec le même matériel, ce qui est crucial pour le déploiement en production.

En pratique, le GQA accélère la phase de décodage (génération token par token) sans dégrader significativement la qualité des réponses. Les benchmarks montrent que la perte de performance est généralement inférieure à 1 % par rapport au MHA complet, pour un gain de vitesse d'inférence de 30 à 50 % selon les configurations. C'est un compromis très favorable qui explique son adoption massive.

Étymologie

Le terme provient de l'article "GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints" publié par Ainslie et al. (Google Research) en 2023. "Grouped" fait référence au regroupement des têtes de requête, "Query" désigne les vecteurs de requête dans le mécanisme d'attention, et "Attention" renvoie au mécanisme d'attention des Transformers introduit dans "Attention Is All You Need" (2017).

Exemples concrets

Choix d'architecture pour un LLM

Je conçois un modèle de 13B paramètres. Compare les compromis entre Multi-Head Attention, Grouped Query Attention avec 4 groupes et 8 groupes, et Multi-Query Attention en termes de mémoire KV cache, vitesse d'inférence et qualité de génération.

Optimisation d'inférence en production

Mon modèle Llama 3 8B utilise le GQA avec 4 groupes KV pour 32 têtes de requête. Calcule la taille du KV cache pour un batch de 64 requêtes avec un contexte de 8192 tokens, et propose des stratégies pour réduire encore la mémoire.

Compréhension technique pour la veille IA

Explique-moi comme si j'étais développeur backend pourquoi les modèles récents comme Mistral et Llama utilisent le Grouped Query Attention plutôt que le Multi-Head Attention classique. Quels sont les impacts concrets sur le coût de déploiement ?

Usage pratique

En prompt engineering, comprendre le GQA aide à évaluer les capacités et limites des modèles déployés : un modèle avec GQA peut gérer des contextes plus longs et des batchs plus importants à coût matériel égal. Cela influence le choix du modèle selon votre cas d'usage, notamment pour les applications nécessitant de longues fenêtres de contexte ou un débit élevé. Lorsque vous comparez des modèles, vérifier s'ils utilisent MHA, GQA ou MQA vous donne un indicateur fiable de leur efficacité en production.

Concepts liés

Multi-Head AttentionMulti-Query AttentionKV CacheArchitecture TransformerMécanisme d'attentionInférence LLM

FAQ

Quelle est la différence entre Grouped Query Attention et Multi-Query Attention ?
Le Multi-Query Attention (MQA) utilise un seul jeu de clés-valeurs partagé par toutes les têtes de requête, ce qui maximise les économies de mémoire mais peut dégrader la qualité. Le Grouped Query Attention (GQA) divise les têtes en plusieurs groupes, chacun avec son propre jeu de clés-valeurs. C'est un compromis intermédiaire : plus économe que le MHA classique, mais plus expressif que le MQA. En pratique, le GQA offre presque la même qualité que le MHA avec une grande partie des gains de performance du MQA.
Le Grouped Query Attention affecte-t-il la qualité des réponses d'un LLM ?
Les études montrent que l'impact sur la qualité est minimal. Sur les benchmarks standard, les modèles GQA affichent des performances très proches des modèles MHA équivalents, avec une dégradation généralement inférieure à 1 %. Certains chercheurs ont même observé que le GQA peut agir comme une forme de régularisation, améliorant légèrement la généralisation dans certains cas. C'est pourquoi les plus grands modèles open source actuels l'ont adopté sans hésitation.
Quels modèles utilisent le Grouped Query Attention ?
Le GQA est utilisé par de nombreux modèles majeurs : Llama 2 (70B), Llama 3 (toutes tailles), Mistral 7B et Mixtral, Gemma de Google, Qwen 2, et bien d'autres. Il est devenu le choix par défaut pour les nouveaux modèles de grande taille, remplaçant progressivement le Multi-Head Attention classique dans les architectures Transformer modernes.

Voir aussi

Recevez de nouveaux prompts chaque semaine

Rejoignez notre newsletter.