Multi-Head Attention, MQA & GQA
Wie Attention viele gelernte Blickwinkel parallel nutzt und wie MQA/GQA Key-Value-Heads teilen, um Inferenzspeicher zu sparen.
Viele Query-Linsen, weniger Key-Value-Regale: von MHA zu MQA
Wechsle die Teleskop-Linse, um zu sehen, wie jeder Query-Head den Prompt liest, und gehe dann die Head-Gruppierung durch. Bei MHA hat jeder Query-Head einen eigenen Key-Value-Head, bei GQA teilt sich jede Gruppe einen, und bei MQA bleibt ein einziger geteilter Key-Value-Head für alle Queries.
Jeder Query-Head behält eine eigene Q-Projektion, auch bei geteilten K/V-Projektionen. Dieses Muster illustriert nur eine andere Ansicht.
Geteilte Key-Value-Regale
MHA · 8 KV-HeadsMulti-Head Attention: Jeder Query-Head besitzt einen eigenen K/V-Head.
Mehr Sharing bedeutet weniger KV-Heads, die bei der Inferenz gespeichert und gelesen werden müssen. Das Modell behält alle 8 Query-Linsen, aber der KV-Cache schrumpft um den Sharing-Faktor.
Heads sind gelernte Projektionen
Jeder Head hat eigene gelernte Q-, K- und V-Projektionsmatrizen. Er bekommt keinen festen Slice des Originalvektors, sondern eine gelernte Sicht auf den ganzen Residual Stream.
- Heads können Syntax, Copying-Muster, lokale Ordnung oder Langstreckenbezüge mittragen.
- Nicht jeder Head hat eine saubere menschenlesbare Aufgabe; vieles ist verteilt.
Konkatenieren, dann mischen
Die Ausgaben der Heads werden konkateniert und durch eine weitere gelernte Output-Projektion geschickt. Diese mischt die parallelen Sichten zurück zu einem Update.
- Multi-Head Attention gibt einer Schicht mehrere Beziehungssucher gleichzeitig.
- Das Ergebnis wird über die Residual-Verbindung zurückgeschrieben.
MQA und GQA teilen Key-Value-Heads
Standard-Multi-Head-Attention kann jedem Query-Head eigene Key/Value-Heads geben. MQA und GQA behalten viele Query-Sichten, teilen aber weniger Key-Value-Projektionen.
- MQA lässt viele Query-Heads ein Key-Value-Set teilen.
- GQA gruppiert Query-Heads über weniger Key-Value-Heads.
- Das reduziert Speicher und Bandbreite bei der Inferenz, ohne alle Query-Sichten aufzugeben.
Kernaussagen
- Heads sind gelernte Sichten, keine festen Vektorstücke.
- MQA/GQA sind Attention-Architektur: viele Query-Sichten, aber weniger Key-Value-Heads.
- Geteilte Key-Value-Heads senken Speicher und Bandbreite bei der Inferenz.