Wie das Teilen von Key-Value Heads den Speicherbedarf des KV-Cache drastisch reduziert, ohne die Modellqualitaet wesentlich zu beeintraechtigen.
Während der autoregressiven Generierung müssen die Key- und Value-Vektoren aller vorherigen Tokens im Speicher gehalten werden. Bei langen Kontexten wächst dieser Cache enorm.
Für Llama 2 70B mit 128K Kontext: 64+ GB nur für den KV-Cache!
GQA gruppiert Query-Heads und lässt sie Key-Value Heads teilen. Llama 2 70B nutzt 64 Query-Heads mit nur 8 KV-Heads.
Ergebnis: 8× weniger KV-Cache Speicher bei nahezu unverändeter Modellqualität. Ein idealer Trade-off zwischen MHA und MQA.
| Modell | Q Heads | KV Heads | Typ |
|---|---|---|---|
| GPT-3 175B | 96 | 96 | MHA |
| Llama 2 70B | 64 | 8 | GQA |
| Llama 3 70B | 64 | 8 | GQA |
| Mistral 7B | 32 | 8 | GQA |
| Falcon 180B | 232 | 1 | MQA |