Robocikowo>ROBOCIKOWO
Architektura

MQA

2019AktywnyOpublikowano: 29 maja 2026Aktualizacja: 29 maja 2026Opublikowany
Wariant uwagi, w którym wszystkie głowy Q współdzielą jedną parę K/V — drastycznie redukuje rozmiar KV cache i przyspiesza inferencję autoregresywną kosztem niewielkiej utraty jakości.
Kluczowa innowacja
Wariant Multi-Head Attention, w którym wszystkie głowy zapytań (Q) współdzielą jedną parę głów Key i Value, redukując rozmiar KV cache H-krotnie kosztem akceptowalnej utraty jakości.
Kategoria
Architektura
Poziom abstrakcji
Wzorzec
Poziom operacji
Element architekturyInferencja
Zastosowania
Inferencja LLM z długim kontekstem (Falcon, PaLM)Modele on-device / edge gdzie pamięć HBM jest ograniczonaSerwowanie modeli z dużym batch size (więcej requestów na GPU)Baseline dla GQA — która interpoluje między MHA a MQA

Jak działa

W warstwie attention MQA, dla wejścia x: wszystkie H głów Q są obliczane niezależnie (Q_i = x · W_Q^i), natomiast K i V są obliczane raz jako pojedyncze projekcje (K = x · W_K, V = x · W_V) bez wymiaru głowy. W operacji attention każda głowa Q_i atakuje to samo wspólne K i V. Implementacyjnie sprowadza się to do broadcastu K i V po wymiarze głów. Cache przechowuje tylko jeden K i jeden V per token zamiast H — redukcja H-krotna (zwykle 8-128×).

Rozwiązany problem

Standardowa Multi-Head Attention generuje KV cache o rozmiarze proporcjonalnym do liczby głów H, co czyni autoregresywną inferencję długich kontekstów memory-bound i drogim — koszt rośnie liniowo z H.

Komponenty

Wspólna projekcja K

Pojedyncza macierz W_K projektująca x na jedną głowę Key, współdzieloną przez wszystkie głowy Q.

Wspólna projekcja V

Pojedyncza macierz W_V projektująca x na jedną głowę Value, współdzieloną przez wszystkie głowy Q.

Niezależne głowy Q

H osobnych macierzy W_Q^i, dających H osobnych zapytań — zachowuje wielowymiarową przestrzeń uwagi po stronie zapytań.

Implementacja

Pułapki implementacyjne
Spadek jakości i niestabilność treninguWysoka

MQA może obniżyć jakość modelu o 1-3% na benchmarkach i utrudniać konwergencję, zwłaszcza przy treningu od zera.

Rozwiązanie:Użyj GQA z 4-8 grupami zamiast pełnego MQA. Alternatywnie: uptraining z MHA checkpoint (metoda Ainslie et al.).
Brak korzyści przy małym batch sizeNiska

Korzyść MQA materializuje się dopiero przy długim kontekście lub dużym batch — przy krótkich promptach i batch=1 redukcja cache jest pomijalna.

Rozwiązanie:Profiluj rzeczywistą charakterystykę workloadu przed wyborem MQA vs MHA.

Ewolucja

Oryginalny paper · 2019 · arXiv preprint · Noam Shazeer
Fast Transformer Decoding: One Write-Head is All You Need
Noam Shazeer
2019
Wprowadzenie MQA (Shazeer)
Punkt przełomowy

Shazeer identyfikuje KV cache jako wąskie gardło inferencji i proponuje współdzielenie K/V między głowami Q.

2022
Adopcja w PaLM (Google)

Google używa MQA w PaLM 540B dla szybszej inferencji przy zachowaniu jakości — pierwsze duże wdrożenie produkcyjne.

2023
Adopcja w Falcon

TII używa MQA w Falcon-40B/180B — pierwszy szeroko dostępny open-source model z MQA.

2023
GQA jako uogólnienie (Ainslie et al.)
Punkt przełomowy

GQA interpoluje między MHA a MQA, oferując lepszy trade-off jakość/pamięć — wypiera MQA w nowszych modelach.

Złożoność obliczeniowa

Paradygmat wykonania

Tryb główny
Gęsty

Wszystkie głowy Q są zawsze aktywne; różnica vs MHA leży w strukturze parametrów, nie w wzorcu aktywacji.

Wzorzec aktywacji
Wszystkie ścieżki aktywne

Równoległość

Poziom równoległości
W pełni równoległy
Zakres
TreningInferencjaPomiędzy warstwami

Wymagania sprzętowe

Podstawowe
Podstawowe