Grouped Query Attention (GQA)
iaDéfinition
Le Grouped Query Attention (GQA) est une technique d'optimisation de l'attention dans les LLMs, introduite par Ainslie et al. (Google, 2023). Elle constitue un compromis entre le Multi-Head Attention (MHA) standard et le Multi-Query Attention (MQA) pour réduire la taille du KV-Cache tout en préservant la qualité des représentations. Dans le MHA traditionnel, chaque tête d'attention possède ses propres matrices K et V. Avec h=32 têtes (comme dans LLaMA 7B), cela génère 32 paires K/V distinctes à stocker dans le KV-Cache à chaque token généré — ce qui représente une consommation mémoire considérable pour les longues séquences. Pour une batch de 32 requêtes avec une séquence de 4096 tokens sur un modèle 7B, le KV-Cache peut dépasser 2 GB. Le MQA (Multi-Query Attention) résout ce problème en utilisant une seule tête K/V partagée par toutes les têtes Q. Si efficace en mémoire, ce compromis peut dégrader la qualité du modèle. Le GQA introduit un juste milieu : les h têtes de queries sont divisées en G groupes, chaque groupe partageant une paire K/V. Avec G=8 groupes et h=32 têtes Q, on obtient une réduction 4× du KV-Cache par rapport au MHA tout en préservant plus d'expressivité que le MQA. LLaMA 3 (toutes variantes), Gemma 2, Mistral 7B v0.3, Qwen2.5 et la plupart des LLMs open-source récents utilisent GQA. Pour les équipes MLOps déployant des LLMs en production avec vLLM ou TGI, GQA est directement bénéfique : il permet d'augmenter la batch size, réduire la latence et diminuer les coûts GPU en production.
Comparatif MHA / GQA / MQA
| Méthode | Têtes K/V | KV-Cache | Qualité |
|---|---|---|---|
| MHA | h (ex: 32) | 100% | Maximale |
| GQA (G=8) | 8 | 25% | Proche MHA |
| MQA | 1 | 3% | Légèrement réduite |
Impact en production
Sur LLaMA 3 70B avec GQA (8 groupes KV, 64 têtes Q) :
- KV-Cache réduit de 8× vs MHA classique
- Throughput augmenté de 30-40% avec vLLM
- Permet de servir des séquences de 8K tokens sur 2× A100 80GB au lieu de 4×
Vérification avec Transformers
from transformers import AutoConfig
config = AutoConfig.from_pretrained("meta-llama/Meta-Llama-3-8B")
print(config.num_attention_heads) # 32 (têtes Query)
print(config.num_key_value_heads) # 8 (têtes KV — GQA avec G=8)
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés. 2.1.7
Un projet cybersécurité ?
Expert dispo · Réponse 24h