Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Grouped Query Attention (GQA)

L’attention à requêtes groupées (GQA) permet à des groupes de têtes de requête de partager des têtes clé-valeur, ce qui réduit le cache KV et accélère le décodage des LLM.

L’attention à requêtes groupées (GQA) est une forme d’attention multi-tête pour les Transformers, dans laquelle des groupes de têtes de requête partagent une tête de clé et une tête de valeur. Llama 3.1 8B, par exemple, associe 32 têtes de requête à 8 têtes clé-valeur dans chaque couche. La GQA se situe entre l’attention multi-tête (MHA), où chaque tête de requête possède ses propres clés et valeurs, et l’attention multi-requête (MQA), où toutes les têtes de requête partagent une seule tête de clé et une seule tête de valeur. Joshua Ainslie et ses collègues de Google Research l’ont présentée dans GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints, à EMNLP 2023, montrant que les modèles GQA atteignent une qualité proche de MHA à une vitesse de décodage proche de MQA. Des grands modèles de langage (LLM) ouverts tels que Llama 2 70B, la famille Llama 3, Mistral 7B et Gemma 2 l’utilisent. Les modèles vision-langage (VLM) qui reposent sur ces modèles, comme PaliGemma 2 de Google basé sur Gemma 2, en héritent dans leurs décodeurs de langage.

Fonctionnement de la GQA#

Dans l’auto-attention, chaque jeton est projeté en une requête, une clé et une valeur pour chaque tête, et chaque tête compare ses requêtes à ses clés. La GQA conserve l’ensemble des têtes de requête, mais projette moins de têtes de clé et de valeur ; chaque groupe de têtes de requête utilise les clés et les valeurs partagées de son groupe. Avec 8 têtes de requête et 2 têtes clé-valeur, chaque tête clé-valeur sert 4 têtes de requête :

Le calcul de l’attention au sein de chaque tête reste une attention à produit scalaire mis à l’échelle. Avec un seul groupe, la couche devient MQA ; avec autant de groupes que de têtes de requête, elle devient MHA. PyTorch prend directement en charge cette disposition avec l’argument enable_gqa de scaled_dot_product_attention :

import torch
import torch.nn.functional as F

torch.manual_seed(0)
q = torch.randn(1, 8, 16, 64)  # 8 query heads, 16 tokens, 64 dimensions per head
k = torch.randn(1, 2, 16, 64)  # only 2 key heads
v = torch.randn(1, 2, 16, 64)  # and 2 value heads

out = F.scaled_dot_product_attention(q, k, v, is_causal=True, enable_gqa=True)

# Equivalent multi-head attention: copy each key-value head to its group of 4 query heads
k_full, v_full = k.repeat_interleave(4, dim=1), v.repeat_interleave(4, dim=1)
reference = F.scaled_dot_product_attention(q, k_full, v_full, is_causal=True)

print(f"Output {tuple(out.shape)}, same as copied heads: {torch.allclose(out, reference, atol=1e-6)}")
print(f"Cached values per token per layer: {k[0, :, 0].numel() * 2} with GQA, {k_full[0, :, 0].numel() * 2} with MHA")

Il affiche Output (1, 8, 16, 64), same as copied heads: True et 256 with GQA, 1024 with MHA : les 8 têtes de requête produisent des sorties à partir d’un quart des clés et des valeurs que MHA stockerait.

Pourquoi la GQA réduit le cache KV#

Pendant la génération de texte, un modèle conserve les clés et les valeurs de chaque jeton précédent dans son cache KV et lit l’intégralité du cache pour chaque nouveau jeton. La vitesse de décodage est donc davantage limitée par la bande passante mémoire que par les opérations arithmétiques. La taille du cache varie en fonction du nombre de têtes clé-valeur. Llama 3.1 8B comporte 32 couches, chacune avec 8 têtes clé-valeur de 128 dimensions ; il stocke donc 128 Kio par jeton en précision 16 bits, soit 16 Gio pour sa fenêtre de contexte complète de 131 072 jetons. Avec MHA, le même modèle nécessiterait 512 Kio par jeton et 64 Gio à pleine longueur. La mémoire libérée peut servir à des contextes plus longs, à des lots plus importants pour le traitement continu par lots et à réduire la latence d’inférence par jeton. L’interface LLM d’Ultralytics accepte un base_url pour tout serveur compatible avec OpenAI, comme un Llama 3.1 8B hébergé sur place. Grâce à ses 8 têtes clé-valeur, le serveur peut conserver quatre fois plus de jetons de conversation dans une mémoire de cache donnée qu’avec une disposition MHA à 32 têtes.

Conversion de modèles en GQA#

La GQA ne nécessite pas d’entraînement à partir de zéro. Les auteurs ont converti un point de contrôle MHA existant en calculant la moyenne des têtes de clé et de valeur de chaque groupe, puis ont poursuivi le préentraînement avec environ 5 % du calcul initial, une étape qu’ils appellent entraînement complémentaire. MQA, le cas extrême où une seule tête est partagée, a été introduite par Noam Shazeer en 2019. C’est la disposition la plus rapide, mais elle dégrade la qualité et peut rendre l’entraînement instable ; un nombre intermédiaire de groupes permet de récupérer la majeure partie de cette qualité.

  • Attention latente multi-tête (MLA) : présentée avec DeepSeek-V2, elle compresse les clés et les valeurs de chaque jeton dans un petit vecteur latent partagé.
  • PagedAttention : alloue le cache KV en blocs de taille fixe pour éviter la fragmentation, quel que soit le nombre de têtes qui le remplissent.
  • Attention à fenêtre glissante : limite le nombre de jetons mis en cache par couche ; Mistral 7B la combine avec la GQA.
  • Attention Flash : noyau GPU qui calcule l’attention exacte plus rapidement et prend en charge nativement les dispositions GQA.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique