Attention

Fortgeschritten

Nachrechnen, wie ein Token Informationen anderer Positionen mit Queries, Keys, Values und einer kausalen Maske kombiniert.

Zuletzt aktualisiert: 13. Sept. 2026

Eine gewichtete Kombination von Vektoren

Self-Attention bildet jede Eingangsrepräsentation mit gelernten Projektionen auf Query, Key und Value ab. Für eine Position wird ihre Query mit den Keys verglichen. Die Scores werden skaliert, gegebenenfalls maskiert und mit Softmax normiert. Diese Gewichte kombinieren die Values zu einem kontextuellen Vektor dieser Position.

Query (Q)

Der projizierte Vektor, der für die gewählte Position die Keys bewertet.

Key (K)

Der projizierte Vektor jeder möglichen Bezugsposition. Ein Skalarprodukt vergleicht ihn mit der Query.

Value (V)

Die projizierte Information, die entsprechend dem Attention-Gewicht kombiniert wird. Der Key bestimmt ein Gewicht; der Value trägt zur Ausgabe bei.

Einen Attention-Head ausrechnen

Das Beispiel enthält drei Wörter. Jedes Wort wird hier als ein Token behandelt. Eingangsvektoren und Projektionsgewichte sind für einfache Rechnungen gewählt und nicht aus Sprache gelernt. Die Attention-Gewichte und die Ausgabe werden daraus berechnet.

1. Das abfragende Token wählen
2. Seinen Eingangsvektor x ändern: Katze

Feste Projektionen (Zeilenvektoren: Q = XWQ, K = XWK, V = XWV)

WQ

[1.00, 0.50]

[0.00, 1.00]

WK

[0.50, 1.00]

[1.00, 0.00]

WV

[1.00, -1.00]

[0.50, 1.00]

3. Alle Token-Vektoren ansehen

TokenxQKV
Die[1.00, 0.00][1.00, 0.50][0.50, 1.00][1.00, -1.00]
Katze[0.00, 1.00][0.00, 1.00][1.00, 0.00][0.50, 1.00]
schläft[1.00, 1.00][1.00, 1.50][1.50, 1.00][1.50, 0.00]

4. Skalarprodukt → Skalierung → Maske → Softmax

Die ausgewählte Query bewertet jeden Key. Danach wird durch √dₖ geteilt, verbotene Positionen werden auf −∞ gesetzt und Softmax wird auf die Zeile angewendet. Die Gewichte summieren sich zu 1; maskierte Positionen tragen null bei.

TokenQ · K÷ √2Attention-GewichtGewicht × V
Die1.0000.7070.670
[0.67, -0.67]
Katze0.0000.0000.330
[0.17, 0.33]
schläft1.000−∞0.000
[0.00, 0.00]

5. Gewichtete Values summieren

Σⱼ aⱼVⱼ = [0.83, -0.34]

Die Ausgabe ist ein kontextueller Vektor dieser Position, keine Next-Token-Wahrscheinlichkeit. Weitere Projektionen und Layer verarbeiten ihn. Ein großes Attention-Gewicht allein belegt weder Grammatik noch Wichtigkeit oder eine kausale Erklärung der Modellantwort.

Ein Head in Matrixschreibweise

Attention(Q,K,V) = softmax(QKᵀ / √dₖ + M) V

Q und K haben die Breite dₖ. Ihre Skalarprodukte ergeben einen Score pro Query-Key-Paar. Die Skalierung mit √dₖ kontrolliert die Scoregröße. Softmax wird zeilenweise über erlaubte Keys berechnet. M enthält 0 für erlaubte und −∞ für maskierte Positionen.

Die Sichtbarkeit hängt von der Aufgabe ab

Ein kausaler Decoder maskiert zukünftige Tokens, damit das Training die vorherzusagende Antwort nicht vorab verrät. Ein bidirektionaler Encoder kann Positionen auf beiden Seiten nutzen. Padding-Masken und andere Attention-Muster schränken die Sicht zusätzlich ein. Die Maske entscheidet über verfügbare Positionen; sie weist Heads keine sprachlichen Aufgaben zu.

Was wächst quadratisch?

Vollständige dichte Attention berechnet beim Prefill n² Query-Key-Scores pro Head. Die Tabelle zählt Scores, keine gesamten Rechenoperationen. Skalarprodukte hängen zusätzlich von der Head-Breite ab; Modelle besitzen mehrere Heads und Layer. Der gezeigte Speicher betrifft nur eine vollständig gespeicherte Scorematrix mit zwei Bytes pro Element.

SequenzlängeScore-Einträge pro HeadNaiver Score-Speicher
4.096 Tokens16.777.21632 MiB
8.192 Tokens67.108.864128 MiB
16.384 Tokens268.435.456512 MiB

Speichereffiziente Attention

FlashAttention organisiert exakte Attention in Blöcken. Dadurch sinken Transfers zwischen GPU-Speicherebenen, und die vollständige n × n-Scorematrix muss nicht gespeichert werden. Die dichte Attention-Rechnung wird dadurch nicht linear. Geschwindigkeits- und Speichergewinne hängen von Dimensionen, Präzision, Kernels und Hardware ab. Decoding eines einzelnen Tokens mit Cache hat eine andere Arbeitslast: Eine Query liest die vorhandenen Keys und Values.

Attention-Gewichte allein erklären keine Antwort

Die Gewichte beschreiben eine Operation in einem Head und Layer. Andere Heads, Value-Vektoren, Residualpfade und spätere Rechnungen beeinflussen die Antwort ebenfalls. Eine auffällige Verbindung belegt nicht, dass ein Wort die finale Entscheidung verursacht. Heads haben auch keine dauerhaft festgelegten Grammatik- oder Faktenaufgaben.

Primärquellen

Weiter zu Multi-Head Attention und GQA →