MQA
Attention-Variante, bei der sich alle Köpfe einen einzigen Satz Keys und Values teilen, aber jeweils eigene Queries behalten. Von Noam Shazeer 2019 aus genau einem Grund vorgeschlagen: den KV-Cache zu schrumpfen.
Bei gewöhnlicher Multi-Head-Attention speichert jeder Kopf für jedes Token eigene Keys und Values, und dieser Cache wächst bei der Generierung linear mit der Kontextlänge. Bei langen Kontexten wird nicht die Rechenleistung zum eigentlichen Flaschenhals, sondern die Speicherbandbreite zum Cache. Mit einem gemeinsamen Key-Value-Paar pro Layer schrumpft der Cache um einen Faktor in Höhe der Kopfanzahl — das kann das Zehn- bis Hundertfache bedeuten. Der Qualitätsverlust ist klein, aber messbar, weshalb sich als Kompromiss GQA durchsetzte: Köpfe werden gruppiert, sodass mehrere, aber nicht alle sich Keys teilen. PaLM und Falcon setzen direkt auf MQA; die meisten neueren Modelle sind bei GQA gelandet.