Zamiast jednej pary KV na głowę (MHA) lub jednej na cały model (MQA), GQA grupuje głowy zapytań — każda grupa współdzieli jedną parę KV. Np. 8 głów podzielonych na 2 grupy po 4 → tylko 2 pary KV zamiast 8.
Multi-Head Attention wymaga przechowywania osobnej pary klucz-wartość dla każdej głowy, co jest kosztowne pamięciowo. GQA redukuje zużycie pamięci KV cache przez grupowanie głów zapytań.
G=1 to MQA (maksymalna oszczędność, strata jakości), G=H to MHA (brak oszczędności). Optymalna wartość G zależy od zadania i rozmiaru modelu — brak uniwersalnej reguły.
Modele pretrenowane z MHA nie mogą być bezpośrednio fine-tunowane jako GQA bez konwersji wag KV heads (np. przez uśrednianie lub pruning). Wymaga dedykowanego etapu konwersji.
GQA redukuje rozmiar KV cache — szczególnie wartościowe na GPU z ograniczoną VRAM przy długich kontekstach (128k+ tokenów). Wspierane natywnie przez FlashAttention-2 i vLLM.