KI‑Kompass
Kompass

Attention

Der Mechanismus hinter jedem modernen Sprachmodell: wie ein Token entscheidet, worauf es schaut, und warum der Aufwand quadratisch wächst.

·2 Min. Lesezeit·Von Fachredaktion Technik
DETAILGRAD
3 Abschnitte

Die Idee

Um „sie" in einem Satz zu verstehen, müssen Sie wissen, worauf es sich bezieht. Sie schauen also zurück und gewichten: Das Substantiv drei Wörter vorher ist wahrscheinlich gemeint, der Nebensatz davor eher nicht.

Attention macht genau das, nur für jedes Token gleichzeitig und mit Zahlen statt Intuition.

Die drei Rollen

Jedes Token erzeugt drei Vektoren:

RolleBedeutung
QueryWonach dieses Token sucht
KeyWofür dieses Token zuständig ist
ValueWas es beisteuert, wenn es ausgewählt wird

Jede Query wird mit allen Keys verglichen. Wo die Übereinstimmung groß ist, geht der zugehörige Value stark in das Ergebnis ein.

Von Hand

import numpy as np

def softmax(x):
    x = x - x.max(axis=-1, keepdims=True)     # numerisch stabil
    e = np.exp(x)
    return e / e.sum(axis=-1, keepdims=True)

rng = np.random.default_rng(0)
s, d = 6, 16                                   # 6 Token, 16 Dimensionen
Q, K, V = (rng.normal(size=(s, d)) for _ in range(3))

scores = Q @ K.T / np.sqrt(d)                  # Skalierung ist nicht optional

# Kausale Maske: Token duerfen nicht in die Zukunft sehen.
maske = np.triu(np.ones((s, s)), k=1).astype(bool)
scores[maske] = -np.inf

A = softmax(scores)
aus = A @ V
print(A.round(2)[3])       # Zeile 3: worauf Token 4 achtet
print(A.sum(axis=-1))      # jede Zeile summiert sich zu 1

Mehrere Köpfe

Statt einer Attention mit 4096 Dimensionen rechnet man 32 Köpfe mit je 128 Dimensionen. Jeder Kopf kann sich auf eine andere Art von Beziehung spezialisieren, Syntax, Bezug, Position, Thema. Die Ergebnisse werden aneinandergehängt und durch eine weitere Matrix geschickt.

Die Formel

Skalierte Skalarprodukt-Attention

Attention(Q,K,V) = softmax( (Q Kᵀ) / √d_k + M ) · V

Anfragen werden mit Schlüsseln verglichen, skaliert, maskiert, in Gewichte umgerechnet und auf die Werte angewandt.

Q
Anfragen, Größe s mal d_k
K
Schlüssel, Größe s mal d_k
V
Werte, Größe s mal d_v
d_k
Dimension je Kopf
M
die kausale Maske

Warum die Skalierung nötig ist

Für zufällige Vektoren mit unabhängigen Komponenten der Varianz 1 hat das Skalarprodukt q·k die Varianz d_k. Bei d_k = 128 ist die Standardabweichung der Werte also rund 11,3. Softmax auf Werten dieser Größenordnung ist praktisch ein Maximum: eine Komponente bekommt fast das gesamte Gewicht, alle anderen fast null, und der Gradient verschwindet. Die Division durch √d_k bringt die Varianz zurück auf 1.

Der Aufwand

Rechen- und Speicheraufwand

FLOPs ≈ 4·s·d² (Projektionen) + 2·s²·d (Attention selbst) Speicher der Matrix ≈ s² · Köpfe · Bytes

Der Vergleich aller Token mit allen wächst quadratisch, die Projektionen nur linear in der Länge.

s
Sequenzlänge
d
Modellbreite

Bei s = 4096, d = 4096: Projektionen 2,7e11, Attention 1,4e11, noch vergleichbar. Bei s = 32768: Projektionen 2,2e12, Attention 8,8e12, also das Vierfache. Ab etwa s = d dominiert der quadratische Term vollständig.

FlashAttention

Der Ausweg besteht nicht darin, weniger zu rechnen, sondern die Matrix nie vollständig zu speichern. FlashAttention verarbeitet Blöcke, hält sie im schnellen Speicher der Recheneinheit und aktualisiert das Softmax-Ergebnis schrittweise mit einem laufenden Maximum und einer laufenden Summe.

Ergebnis: Der Speicherbedarf sinkt von O(s²) auf O(s), und die Laufzeit sinkt trotz gleicher Operationszahl, weil der langsame Kartenspeicher nicht mehr der Engpass ist. Ohne dieses Verfahren wären Kontextlängen über etwa 8.000 Token praktisch nicht bezahlbar. Siehe Das Kontextfenster, technisch.

Passende Kurse und Quellen

StudieKostenlosEN

Attention Is All You Need

Die Arbeit von 2017, die den Transformer einführte. Alles, was heute Sprachmodell heißt, steht auf diesen acht Seiten.

Die acht Seiten, auf denen alles steht, was heute Sprachmodell heißt.

BuchKostenlosEN

Dive into Deep Learning

Lehrbuch mit ausführbarem Code neben jeder Herleitung. Jedes Kapitel lässt sich als Notebook öffnen und nachrechnen.

Für alle, die beim Lesen mitrechnen wollen; jedes Kapitel lässt sich als Notizbuch öffnen.

StudieKostenlosEN

FlashAttention

Aufmerksamkeit berechnen, ohne die quadratische Matrix je vollständig abzulegen. Die Voraussetzung für lange Kontexte.

Für alle, die lange Kontexte betreiben und wissen müssen, woran der Speicher hängt.

VideoKostenlos150 Min.EN

Neuronale Netze, visuell erklärt

Von der einzelnen Gewichtung über Gradientenabstieg bis zum Aufmerksamkeitsmechanismus. Die beste verfügbare Anschauung für das, was die Formeln beschreiben.

Vor dem ersten Lehrbuch anzusehen, nicht danach. Spart Wochen an Verwirrung.

3Blue1BrownZum Angebot
War diese Seite hilfreich?
Attention