Attention-Mechanismen

Wenn ein Sprachmodell einen Satz verarbeitet, muss es entscheiden, welche Wörter für welche anderen Wörter gerade wichtig sind. Attention-Mechanismen sind die verschiedenen Verfahren, mit denen diese Gewichtung berechnet wird.

Ein Transformer liest nicht einfach Wort für Wort von links nach rechts. Er berechnet für jedes Token eine Relevanzverteilung über alle anderen Tokens der Eingabe. Dieses Grundprinzip heißt Attention. In der Praxis existieren mehrere Varianten dieses Prinzips, die sich in Architektur, Rechenaufwand und Einsatzzweck unterscheiden. Diese Varianten fasst man unter dem Begriff Attention-Mechanismen zusammen.

Der folgende Überblick beginnt mit dem Grundverfahren und arbeitet sich über die gängigen Varianten bis zu aktuellen Optimierungen vor.

Wie Attention eine Gewichtung berechnet

Jedes Token in einer Eingabesequenz wird zunächst in einen numerischen Vektor umgewandelt, ein sogenanntes Embedding. Aus diesem Embedding erzeugt das Modell drei Darstellungen: eine Anfrage (Query), einen Schlüssel (Key) und einen Wert (Value). Die Query eines Tokens wird mit den Keys aller anderen Tokens verglichen. Daraus ergibt sich ein Relevanzwert für jedes Token-Paar. Diese Relevanzwerte werden normalisiert, sodass sie sich zu 1 addieren. Anschließend gewichtet das Modell die Value-Vektoren mit diesen normalisierten Werten und summiert sie auf. Das Ergebnis ist eine kontextabhängige Repräsentation des Tokens.

Beispiel: Im Satz "Die Bank am Fluss war überflutet" berechnet das Modell für das Token "Bank" hohe Relevanzwerte zu "Fluss" und "überflutet". Dadurch wird "Bank" im Kontext eines Gewässerufers repräsentiert, nicht im Kontext eines Finanzinstituts.

Beispiel: Bei der Eingabe "Der Entwickler prüfte den Code und korrigierte die Fehler" erhält "korrigierte" hohe Attention-Werte zu "Fehler" und "Code". Das Modell erfasst so die Handlungsbeziehung, obwohl die Wörter mehrere Positionen auseinander liegen.

Mathematisch lässt sich der Kern der Berechnung in einer Zeile zusammenfassen: Attention(Q, K, V) = softmax(Q * K^T / sqrt(d_k)) * V. Der Faktor sqrt(d_k) skaliert die Werte, damit die Softmax-Funktion nicht in einen Bereich gerät, in dem ihre Gradienten sehr klein werden.

Fachliche Einordnung: Diese Formel stammt aus dem Paper "Attention Is All You Need" (Vaswani et al., 2017). Die Skalierung durch sqrt(d_k) wird als Scaled Dot-Product Attention bezeichnet. Ohne diese Skalierung würden bei hoher Dimensionalität die Dot-Products so groß, dass die Softmax-Funktion nahezu binäre Verteilungen erzeugt.

Beziehungen innerhalb einer Sequenz: Self-Attention

Self-Attention ist die am häufigsten eingesetzte Variante. Hier stammen Query, Key und Value aus derselben Eingabesequenz. Jedes Token berechnet seine Relevanz zu jedem anderen Token derselben Sequenz. Das Ergebnis ist eine Repräsentation, in der jedes Token Informationen aller anderen Tokens enthält, gewichtet nach Relevanz.

Beispiel: In einem Nachrichtenartikel mit dem Satz "Die Europäische Zentralbank senkte den Leitzins, weil sie die Konjunktur stützen wollte" muss das Modell erkennen, dass "sie" sich auf "Europäische Zentralbank" bezieht. Self-Attention berechnet für "sie" einen hohen Relevanzwert zu "Europäische Zentralbank" und einen niedrigen zu "Konjunktur".

Beispiel: Bei der Code-Analyse von result = db.query(user_id).filter(active=True) berechnet Self-Attention hohe Gewichte zwischen result und db.query sowie zwischen filter und active. So erfasst das Modell die Methodenverkettung als zusammenhängende Operation.

Self-Attention ist die Basis der meisten Transformer-Architekturen, sowohl in Encoder- als auch in Decoder-Modellen. Der Rechenaufwand skaliert quadratisch mit der Sequenzlänge: Bei 1.000 Tokens entstehen 1.000.000 Token-Paare, bei 10.000 Tokens bereits 100.000.000.

Verbindung zweier Sequenzen: Cross-Attention

Bei Cross-Attention stammen Query und Key/Value aus unterschiedlichen Sequenzen. Der Decoder formuliert Queries, während Keys und Values aus dem Encoder stammen. So kann ein Modell Informationen aus einer Eingabe gezielt in eine Ausgabe übertragen.

Beispiel: Bei maschineller Übersetzung vom Deutschen ins Englische liest der Encoder den deutschen Satz "Der schnelle braune Fuchs springt über den Zaun". Während der Decoder das englische Wort "fox" generiert, richtet Cross-Attention die höchste Gewichtung auf "Fuchs" im Encoder-Output.

Beispiel: In einem multimodalen Modell, das Bilder beschreibt, stammen die Key/Value-Paare aus einem Bild-Encoder. Wenn das Sprachmodell den Satz "Ein Hund liegt auf einem roten Sofa" erzeugt, richtet Cross-Attention beim Token "Sofa" die Gewichtung auf die Bildregion, die das Sofa zeigt.

Cross-Attention ist zentral für alle Encoder-Decoder-Architekturen. Klassische Einsatzgebiete sind maschinelle Übersetzung, Zusammenfassung und Bild-zu-Text-Generierung.

Parallele Perspektiven: Multi-Head Attention

Ein einzelner Attention-Durchlauf erfasst eine bestimmte Art von Beziehung. Multi-Head Attention führt mehrere solcher Durchläufe parallel aus, jeweils mit eigenen gelernten Query-, Key- und Value-Projektionen. Die Ergebnisse aller Heads werden anschließend zusammengeführt.

Beispiel: Im Satz "Die Firma stellte den Bewerber ein, obwohl er keine Erfahrung hatte" könnte ein Head die grammatische Beziehung zwischen "stellte" und "ein" erfassen (trennbares Verb). Ein anderer Head erfasst die semantische Beziehung zwischen "Bewerber" und "Erfahrung". Ein dritter Head erkennt die Konzessivbeziehung durch "obwohl".

Eingabe-SequenzToken-Embeddings
Head 1Grammatik
Head 2Semantik
Head 3Position
ZusammenführungConcat + Projektion
KontextvektorAngereicherte Repräsentation

In der Praxis verwenden große Modelle 32, 64 oder mehr Heads. BERT-Base nutzt 12 Heads, BERT-Large 16. GPT-3 arbeitet mit 96 Heads. Jeder Head operiert auf einem Teilraum der Gesamtdimension.

Effiziente Varianten: Weniger Rechenaufwand bei langen Sequenzen

Standardmäßig berechnet Attention Beziehungen zwischen allen Token-Paaren. Bei einer Sequenz von n Tokens entstehen n² Berechnungen. Für Sequenzen mit 100.000 oder mehr Tokens wird dieser quadratische Aufwand zum Engpass. Mehrere Ansätze reduzieren die Komplexität.

Sparse Attention

Statt alle Token-Paare zu berechnen, beschränkt Sparse Attention die Berechnung auf ausgewählte Muster. Häufig sind lokale Fenster (jedes Token beachtet nur seine direkten Nachbarn) kombiniert mit globalen Verbindungen (ausgewählte Tokens beachten die gesamte Sequenz).

Beispiel: Beim Verarbeiten eines 50-seitigen Vertrags beachtet jedes Token zunächst nur die 256 Tokens in seiner Nähe. Zusätzlich beachten bestimmte Ankertokens (etwa am Absatzanfang) die gesamte Sequenz. So bleibt die globale Struktur erhalten, ohne alle 500.000.000 möglichen Paare zu berechnen.

Flash Attention

Flash Attention verändert nicht, welche Token-Paare berechnet werden, sondern wie die Berechnung auf der Hardware ausgeführt wird. Der Algorithmus strukturiert die Speicherzugriffe so um, dass Daten möglichst lange im schnellen SRAM des GPU-Chips bleiben, statt wiederholt aus dem langsamen HBM geladen zu werden.

Beispiel: Ein Modell mit 8.192 Tokens Kontextlänge benötigt mit Standard-Attention etwa 2,5 GB GPU-Speicher für die Attention-Matrix. Flash Attention reduziert den Speicherbedarf auf unter 100 MB, weil die Matrix nie vollständig materialisiert wird. Stattdessen wird sie blockweise berechnet und sofort zu Zwischenergebnissen aggregiert.

Grouped-Query Attention

Bei Standard-Multi-Head-Attention hat jeder Head eigene Key- und Value-Projektionen. Grouped-Query Attention teilt diese zwischen mehreren Heads. Statt 32 separate Key/Value-Paare speichert das Modell beispielsweise nur 8. Jeweils 4 Heads greifen auf dasselbe Key/Value-Paar zu.

Beispiel: Llama 2 (70B) verwendet Grouped-Query Attention mit 64 Query-Heads, aber nur 8 Key/Value-Gruppen. Bei der Textgenerierung muss der sogenannte KV-Cache nicht für jeden Head separat gespeichert werden. Das reduziert den Speicherbedarf bei der Inferenz erheblich und ermöglicht größere Batch-Größen.

Kausale und bidirektionale Attention

Neben der Frage, welche Tokens miteinander verglichen werden, unterscheiden sich Attention-Mechanismen darin, in welche Richtung ein Token schauen darf. Diese Unterscheidung bestimmt, für welche Aufgaben eine Architektur geeignet ist.

Kausale (autoregressive) Attention erlaubt jedem Token nur den Blick auf vorherige Tokens und auf sich selbst. Das Modell sieht keine zukünftigen Positionen. Diese Einschränkung wird durch eine Maske realisiert, die alle Attention-Werte zu späteren Positionen auf Null setzt. Decoder-Modelle wie GPT-Varianten verwenden dieses Verfahren, weil sie Text von links nach rechts generieren.

Beispiel: Beim Vervollständigen von "Das Meeting findet am" darf das Modell beim Token "am" nur auf "Das", "Meeting", "findet" und "am" zugreifen. Es generiert "Dienstag" basierend auf diesen vier Tokens, ohne spätere Tokens zu sehen.

Bidirektionale Attention erlaubt jedem Token den Zugriff auf alle Positionen der Sequenz, vor und nach der eigenen Position. Encoder-Modelle wie BERT nutzen dieses Verfahren, weil sie die gesamte Eingabe analysieren, statt neuen Text zu generieren.

Beispiel: Beim Klassifizieren einer Supportanfrage "Mein Paket ist nicht angekommen, obwohl die Trackingnummer Zustellung zeigt" kann BERT das Wort "nicht" im Kontext von "angekommen" und gleichzeitig im Kontext von "Zustellung zeigt" betrachten. Beide Richtungen fließen in die Repräsentation ein.

Zusammenspiel der Mechanismen in modernen Architekturen

Moderne Modelle kombinieren mehrere Attention-Varianten in einer Architektur. Ein typischer Aufbau:

Ein Encoder-Decoder-Modell für Übersetzung enthält drei verschiedene Attention-Typen pro Schicht. Der Encoder verwendet bidirektionale Self-Attention. Der Decoder verwendet kausale Self-Attention für die bisher generierten Tokens. Zwischen Encoder und Decoder vermittelt Cross-Attention. Alle drei verwenden Multi-Head Attention mit mehreren parallelen Heads.

Reine Decoder-Modelle (wie GPT-Varianten) verwenden ausschließlich kausale Multi-Head Self-Attention. Ihre Leistungsfähigkeit ergibt sich aus der Tiefe (viele gestapelte Schichten) und der Breite (viele Heads pro Schicht).

Beispiel: Ein Übersetzungsmodell auf Basis von T5 verarbeitet den deutschen Satz "Quantencomputer lösen bestimmte Probleme exponentiell schneller" wie folgt: Der Encoder berechnet bidirektionale Self-Attention über alle deutschen Tokens. Der Decoder generiert "Quantum computers solve certain problems exponentially faster" Token für Token. Bei jedem generierten Token greift Cross-Attention auf den Encoder-Output zu, um die relevanten deutschen Wörter zu identifizieren. Gleichzeitig stellt kausale Self-Attention im Decoder sicher, dass jedes englische Token nur auf bereits generierte englische Tokens zugreifen kann.

Grenzen und offene Herausforderungen

Trotz ihrer Leistungsfähigkeit haben Attention-Mechanismen strukturelle Einschränkungen, die aktive Forschungsgebiete darstellen.

Die quadratische Komplexität bleibt das zentrale Problem. Selbst mit Flash Attention bleibt die Anzahl der Berechnungen proportional zu n². Effiziente Varianten wie Sparse Attention reduzieren den Aufwand, verlieren dabei aber potenziell Informationen über entfernte Zusammenhänge.

Beispiel: Ein Modell, das ein gesamtes Buch (500.000 Tokens) mit voller Attention verarbeiten wollte, müsste 250 Milliarden Token-Paare berechnen. Selbst auf aktuellen GPUs wäre das impraktikabel. Sparse-Attention-Varianten können den Aufwand auf lineare Größenordnung reduzieren, doch bei Aufgaben, die Zusammenhänge zwischen dem ersten und dem letzten Kapitel erfordern, gehen Informationen verloren.

Attention-Gewichte sind keine zuverlässige Erklärung für Modellentscheidungen. Hohe Attention-Werte zwischen zwei Tokens bedeuten nicht zwingend, dass die Beziehung für die Ausgabe relevant ist. Studien zeigen, dass Attention-Muster manipuliert werden können, ohne die Modellergebnisse zu verändern.

Alternative Architekturen wie State-Space-Modelle (S4, Mamba) versuchen, die Fähigkeiten von Attention ohne quadratische Komplexität zu erreichen. Sie verarbeiten Sequenzen in linearer Zeit. Bisher erreichen diese Alternativen bei kurzen bis mittleren Sequenzlängen nicht die Qualität von Transformer-basierten Modellen mit voller Attention. Bei sehr langen Sequenzen können sie jedoch Vorteile bieten.

Fachliche Einordnung: Die Frage, ob Attention-Mechanismen für alle Sequenzmodellierungsaufgaben notwendig sind, ist Gegenstand aktueller Forschung. Hybride Architekturen wie Jamba (AI21, 2024) kombinieren Transformer-Schichten mit Mamba-Schichten und deuten darauf hin, dass die Zukunft in der Kombination verschiedener Ansätze liegen könnte. Die Grundidee der kontextabhängigen Gewichtung bleibt dabei in allen Varianten zentral.


Karl Kratz · 02.02.2025 (aktualisiert 03.04.2026)

Technologie Künstliche Intelligenz Llm