Was ist Aufmerksamkeit?
In the context of Neural Networks, Attention is a mechanism that allows a model to focus on specific parts of its input when producing an output.Aufmerksamkeit ist der Kernmechanismus, der es Transformern ermöglicht, die Wichtigkeit verschiedener Teile der Eingabe bei der Generierung jedes Ausgabe-Tokens zu gewichten. Es ermöglicht dem Modell, sich auf relevanten Kontext zu "konzentrieren".
"Attention is all you need."
— The title of the 2017 paper that introduced the Transformer architecture
Interaktive Aufmerksamkeitskarte
Bewege den Mauszeiger, um Aufmerksamkeitsmuster zu erkunden
Bewege den Mauszeiger über verschiedene Wörter in den Sätzen unten. Die Hervorhebung zeigt, wohin das Modell "schaut", um dieses spezifische Wort zu verstehen.
Attention Map Simulator
Fahre darüber, um Aufmerksamkeitsgewichte zu sehen
Die drei Schlüssel: Query, Key und Value
Query
"Wonach suche ich?" - Repräsentiert das aktülle Wort, das Kontext sucht.
Key
"Was enthalte ich?" - Ein Label für jedes Wort in der Sequenz zur Überprüfung gegen die Query.
Value
"Welche Information biete ich?" - Der tatsächliche Inhalt, der weitergegeben wird, wenn Query und Key übereinstimmen.
The model calculates a score by multiplying Q and K. This score determines how much of V to keep.
Warum es alles verändert hat
Parallele Verarbeitung
Im Gegensatz zu älteren Modellen (RNNs) können Transformer alle Wörter eines Satzes gleichzeitig verarbeiten, was das Training viel schneller macht.
Langstreckenabhängigkeiten
Aufmerksamkeit kann zwei Wörter verbinden, auch wenn sie Tausende von Tokens voneinander entfernt sind, solange sie im selben Kontextfenster sind.
Dynamischer Kontext
Das Modell schaut nicht nur auf Wörter; es lernt, welche Wörter *füreinander* wichtig sind, basierend auf dem spezifischen Satz.
Das Quadratische Problem
Standard-Aufmerksamkeit berechnet Scores zwischen jedem Token-Paar, was zu O(n²) Komplexität führt. Eine Verdopplung der Kontextlänge vervierfacht Speicherverbrauch und Rechenaufwand. Deshalb ist die Erweiterung von Kontextfenstern so herausfordernd.
Aufmerksamkeits-Optimierungen
Mehrere Techniken wurden entwickelt, um Aufmerksamkeit effizienter zu machen und längere Kontexte sowie schnellere Inferenz zu ermöglichen.
Flash Attention
Schreibt den Aufmerksamkeitsalgorithmus IO-bewusst um und berechnet Aufmerksamkeit in Blöcken, die in den schnellen GPU-Speicher (SRAM) passen, anstatt ständig aus dem langsamen HBM zu lesen/schreiben. Die Mathematik ist identisch – nur intelligentere Speicherzugriffsmuster.
Multi-Query Attention (MQA)
Anstatt separate Key- und Value-Köpfe für jeden Query-Kopf zu haben, teilen sich alle Query-Köpfe ein einzelnes K und V. Reduziert die KV-Cache-Größe drastisch und beschleunigt die Inferenz auf Kosten etwas geringerer Qualität.
Grouped-Query Attention (GQA)
Ein Mittelweg zwischen Standard Multi-Head Attention und MQA. Gruppen von Query-Köpfen teilen sich K/V-Köpfe. Erhält den Großteil der Qualität bei reduziertem Speicherbedarf.
Sliding Window Attention
Jedes Token beachtet nur ein festes Fenster nahegelegener Tokens (z.B. 4096) anstatt des gesamten Kontexts. Information propagiert durch die Schichten, sodass entfernte Tokens sich dennoch indirekt beeinflussen können.
Ring Attention
Verteilt die Sequenz über mehrere Geräte in einer Ring-Topologie. Jedes Gerät berechnet Aufmerksamkeit für seinen Abschnitt, während KV-Zustände im Ring weitergereicht werden, was Kontextlängen in Millionen ermöglicht.
Wichtige Erkenntnisse
- 1Aufmerksamkeit ermöglicht Transformern, Langstreckenabhängigkeiten zu erfassen
- 2Die quadratische Komplexität der Aufmerksamkeit begrenzt die Kontextfenstergröße
- 3Verschiedene Aufmerksamkeitsköpfe lernen, sich auf verschiedene linguistische Muster zu konzentrieren
- 4Aufmerksamkeitsvisualisierung kann helfen, das Modellverhalten zu interpretieren