Robocikowo>ROBOCIKOWO
Architektura

GQA

2023AktywnyAktualizacja: 28 września 2026Opublikowany
Mechanizm uwagi będący kompromisem między Multi-Head Attention a Multi-Query Attention: kilka głów Q współdzieli pary K/V w obrębie grupy. Redukuje rozmiar KV-cache i przyspiesza inferencję. Stosowany w Llama 2/3, Mistral, Gemma, DBRX.
Kluczowa innowacja
Rozwiązuje trade-off między Multi-Head Attention (jakość) a Multi-Query Attention (szybkość inferencji): grupuje głowy Q współdzielące K i V w obrębie grupy, redukując pamięć KV-cache bez znaczącej utraty jakości.
Kategoria
Architektura
Poziom abstrakcji
Building block
Poziom operacji
WarstwaElement architektury
Zastosowania
Wydajna inferencja dużych modeli językowychRedukcja zużycia pamięci GPU/TPUModele z długim kontekstemLLaMA 2/3, Mistral, Gemma — standardowy element architekturyDeployment na sprzęcie o ograniczonej pamięci

Jak działa

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.

Rozwiązany problem

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ń.

Komponenty

Query headsWytwarzają H osobnych reprezentacji zapytań, dzielonych następnie na G grup.

H niezależnych projekcji zapytań, tak jak w Multi-Head Attention.

Grouped Key/Value headsRedukują rozmiar KV cache z proporcjonalnego do H do proporcjonalnego do G.

G par klucz-wartość (1 < G < H); każda para jest współdzielona przez wszystkie głowy zapytań w danej grupie.

KV head grouping (mean-pool conversion)Umożliwia konwersję istniejących modeli MHA do GQA bez treningu od zera.

Procedura uptrainingu: głowy K/V oryginalnego checkpointu MHA są uśredniane (mean-pool) w obrębie każdej grupy, po czym model jest dotrenowywany ok. 5% budżetu pretreningu.

Oficjalna

Implementacja

Pułapki implementacyjne
Dobór liczby grup G wymaga eksperymentówŚrednia

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.

Niezgodność z checkpointami MHA przy fine-tuninguWysoka

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.

Ewolucja

Oryginalny paper · 2023 · EMNLP 2023 · Joshua Ainslie
GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints
Joshua Ainslie, James Lee-Thorp, Michiel de Jong, Yury Zemlyanskiy, Federico Lebrón, Sumit Sanghai
2019
Multi-Query Attention (MQA) — bezpośredni prekursor

Noam Shazeer wprowadza MQA: pojedyncza para K/V dla wszystkich głów, przyspieszająca dekodowanie kosztem jakości.

2023
Publikacja GQA (Ainslie i in., EMNLP 2023)
Punkt przełomowy

Wprowadzenie GQA jako uogólnienia MQA oraz przepisu na uptraining checkpointów MHA przy ~5% budżetu pretreningu.

2023
Adopcja w Llama 2 (70B) i Mistral 7B

GQA trafia do produkcyjnych LLM open-weight, m.in. Llama 2 70B oraz Mistral 7B.

2024
Standard w Llama 3, Gemma, DBRX, Qwen

GQA staje się domyślnym mechanizmem uwagi w większości nowych rodzin LLM.

Hiperparametry (konfigurowalne osie)

Liczba głów/grup K/V (G)Krytyczna

Liczba par K/V. G = num_attention_heads → MHA; G = 1 → MQA; 1 < G < H → GQA. Główny parametr kontrolujący trade-off jakość/pamięć.

8Llama 2 70B, Llama 3
1skrajny przypadek = MQA
Liczba głów zapytań (H)Wysoka

Liczba głów zapytań; musi być podzielna przez liczbę grup K/V.

Wymiar głowyŚrednia

Wymiar pojedynczej głowy uwagi (d_head), zwykle hidden_size / num_attention_heads.

Złożoność obliczeniowa

Złożoność czasowa: O(n² · d). Złożoność przestrzenna: O(n · d_head · G).

Wąskie gardło obliczeniowe

Przepustowość pamięci KV cache przy dekodowaniu

Autoregresyjne dekodowanie jest memory-bound: dominującym kosztem jest wielokrotne ładowanie KV cache z pamięci. GQA zmniejsza rozmiar KV cache, redukując ten ruch pamięci.

Paradygmat wykonania

Tryb główny
Gęsty

GQA to gęsty mechanizm uwagi — wszystkie głowy są aktywne dla każdego tokenu; brak routingu (w odróżnieniu od Mixture of Experts).

Wzorzec aktywacji
Wszystkie ścieżki aktywne
Mechanizm routingu

Równoległość

Poziom równoległości
W pełni równoległy

Obliczenia uwagi pozostają równoległe po głowach i pozycjach; współdzielenie K/V nie wprowadza sekwencyjności. Autoregresyjne dekodowanie jest sekwencyjne po tokenach — jak w każdym dekoderze — niezależnie od GQA.

Zakres
TreningInferencja

Wymagania sprzętowe

Podstawowe

GQA redukuje rozmiar KV cache — szczególnie wartościowe na GPU z ograniczoną VRAM przy długich kontekstach (128k+ tokenów). Wspierane natywnie m.in. przez FlashAttention-2 i vLLM.

Dobry fit

GQA opracowano w Google z myślą o wydajnej inferencji; redukcja pamięci i przepustowości KV jest korzystna także na TPU.