Attention Is All You Need ist eine 2017 veröffentlichte einflussreiche wissenschaftliche Arbeit im Bereich des maschinellen Lernens von Forschern von Google Research und Google Brain. Die Publikation führte die Transformer-Architektur ein, welche heute die Grundlage vieler Modelle der natürlichen Sprachverarbeitung bildet, insbesondere großer Large Language Model. Die Arbeit wurde über 150'000-mal zitiert und gehört damit zu den am häufigsten zitierten wissenschaftlichen Publikationen des 21. Jahrhunderts.
Der in der Arbeit eingeführte Transformer unterscheidet sich von den modernen Transformern der Large Language Models dadurch, dass er eine Encoder-Decoder-Architektur verwendet, während heutige Sprachmodelle häufig als Decoder-only-Architekturen umgesetzt sind. Der Transformer ist ein neuronales Sequenz-zu-Sequenz-Modell, das auf dem 2014 eingeführten Attention-Mechanismus basiert. Frühere Modelle basierten auf rekurrenten (RNN) oder konvolutionellen Strukturen (CNN), während der Transformer ohne solche Mechanismen auskommt.
Attention Is All You Need Die Publikation wurde 2017 auf der NeurIPS-Konferenz veröffentlicht und gilt als ein zentraler Meilenstein im Bereich des Deep Learning. Neben der theoretischen Einführung des Modells enthält die Arbeit Ergebnisse empirischer Experimente, die deutliche Verbesserungen in der maschinellen Übersetzung sowie eine erhebliche Reduktion der Trainingszeit gegenüber damaligen Systemen zeigen.
Der Titel "Attention Is All You Need" ist eine Anspielung auf das Lied All You Need Is Love von The Beatles.
Autoren Die Autoren der Arbeit sind Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan Gomez, Łukasz Kaiser und Illia Polosukhin. Alle acht Autoren gelten laut Publikation als gleichberechtigte Hauptbeitragende. Nach Veröffentlichung der Arbeit verließen mehrere der Autoren Google und wechselten zu anderen Unternehmen oder gründeten eigene Start-ups, darunter OpenAI und Anthropic.
Hintergrund und Inhalt Vor der Einführung des Transformers basierten Sequenzmodelle überwiegend auf rekurrenten oder konvolutionellen neuronalen Netzen in Encoder-Decoder-Architekturen. Diese verarbeiten Sequenzen schrittweise, wodurch die Parallelisierbarkeit eingeschränkt ist und das Training auf moderner Hardware vergleichsweise langsam erfolgt.
Mit dem Transformer wurde diese sequentielle Verarbeitung vollständig durch eine Attention-basierte Architektur ersetzt, die ohne Rekurrenz oder Faltung auskommt und Eingabesequenzen parallel verarbeiten kann. Dadurch ergeben sich deutlich effizientere Trainingsverfahren und eine bessere Skalierbarkeit auf großen Datensätzen.
Der Ansatz beruht auf der Idee, dass sogenannte Self-Attention ausreicht, um Abhängigkeiten innerhalb von Sequenzen zu modellieren. Der Attention-Mechanismus wurde bereits zuvor eingesetzt, jedoch lediglich als Ergänzung bestehender Architekturen und nicht als alleinige Grundlage des Modells.
Bedeutung und Einfluss Insgesamt etablierte die Arbeit eine neue Architekturklasse, die sich schnell zum Standard in der natürlichen Sprachverarbeitung entwickelte und in zahlreichen Folgearbeiten weiter ausgebaut wurde.
Die Transformer-Architektur bildet die Grundlage nahezu aller modernen Large Language Models wie ChatGPT und Gemini sowie vieler moderner Modelle der Bildverarbeitung.
Architektur des ursprünglichen Transformer mini|363x363px|Die Original-Transformer-Architektur.
Der Hauptteil der Publikation ist die Erklärung der Transformer-Architektur. Dabei werden die einzelnen Komponenten (Encoder/Decoder) sowie deren Unterstrukturen erläutert.
Übersicht über die Architektur des Transformers Die Transformer-Architektur besteht aus einer Encoder-Decoder-Architektur und lässt sich grob wie folgt zusammenfassen (wichtige Zwischenschritte sind dabei ausgeblendet):
Encoder-Decoder-Architektur
Die Encoder-Decoder-Architektur lässt sich so beschreiben: Encoder-Komponente: Der Encoder wandelt eine Eingabesequenz aus Tokens in eine kontinuierliche Repräsentation um, wobei jedes ein Vektor ist.
Decoder-Komponente: Der Decoder erhält als Input die vom Encoder erzeugte Repräsentation sowie die bisher erzeugten Ausgabesymbole bis zum Zeitpunkt . Im ersten Schritt gilt wobei ein Startsymbol ist. Der Decoder gibt als Ausgabe eine bedingte Wahrscheinlichkeitsverteilung über das nächste Ausgabesymbol zurück.
Die Eingaben und werden zu Beginn durch eine Einbettungs-Funktion in einen hochdimensionalen Raum eingebettet. Der Transformer lässt sich dann kompakt wie folgt verstehen:
Schichten des Encoders und Decoders Encoder und Decoder bestehen jeweils aus gestapelten Schichten mit identischer Struktur. Sowohl der Encoder als auch der Decoder bestehen aus identischen Schichten (im Original ):
Eine Encoder-Schicht besteht wiederum aus zwei aufeinanderfolgenden Teilschichten , eine Decoder-Schicht hingegen aus drei aufeinanderfolgenden Teilschichten.
Teilschichten des Encoders und Decoders Die Teilschichten des Encoders sind Multi-Head Self-Attention position-wise Feedforward neural network .
Die Teilschichten des Decoder sind Masked Multi-Head Self-Attention Encoder-Decoder-Attention position-wise Feedforward Neural Network Jede Teilschicht ist zudem mit einer Residual-Verbindung und anschließender Normalisierung versehen, das heißt, man addiert den Eingang zur Ausgabe der Teilschicht und normalisiert das Ergebnis:
Es ist zu beachten, dass zwei Schichten innerhalb des Encoders respektive des Decoders denselben Aufbau besitzen, die einzelnen Teilschichten jeweils aber eigene Parameter haben.
Layer-Normalisierung Die Layer-Normalisierung ist im Kern die aus der Statistik bekannte Standardisierung. Sei der Eingabevektor in , dann werden die einzelnen Komponenten von mithilfe des empirischen Mittelwerts und der empirischen Varianz standardisiert:
Auf das Resultat wird dann eine affine Transformation angewendet:
wobei der Skalierungsvektor und der Verschiebungsvektor im Training gelernt werden.
Es gilt dann
Einbettung mit Positional Encoding Bevor die Eingabesequenzen im Encoder und im Decoder in das Modell eingegeben werden, werden die Eingaben zunächst in einen hochdimensionalen Vektorraum eingebettet und mit Informationen zur Position ergänzt:
Da der Transformer keine rekurrente oder konvolutionelle Struktur besitzt, wird die Positionsinformation durch ein Positional Encoding ergänzt, das jeder Position einen Vektor
zuordnet. Die -te Komponente des Positional-Encoding-Vektors ist definiert durch:
wobei der Positionsindex in der Sequenz .
Die kombinierte Einbettung ist dann definiert als die Matrix , definiert als mit , wobei der Positionsindex in der Sequenz ist.
Als Veranschaulichung sei die Eingabesequenz . Für das zweite Token könnte die Einbettung und das Positional-Encoding beispielsweise wie folgt aussehen:
Encoder Jede Encoder-Schicht besteht aus zwei Teilschichten:
Multi-Head Self-Attention : ein Attentionmechanismus, bei dem Query, Key und Value aus derselben Eingabesequenz stammen, sodass für jedes Token Information aller Token der Sequenz entsprechend ihrer Relevanz kombiniert werden. position-wise Feedforward neural network : Ein Feedforward-Netzwerk, das für jedes Token der Sequenz separat und mit denselben Parametern eine nichtlineare Transformation seiner Repräsentation durchführt, ohne Informationen zwischen den Tokens auszutauschen
Mit Layer-Normalisierung hat man
Die -te Encoder-Schicht ist dann definiert als
Der Encoder ist die Verkettung dieser Schichten:
Decoder Jede Decoder-Schicht besteht aus: Masked Multi-Head Self-Attention : Eine Variante der Multi-Head Self-Attention, bei der eine Maskierung verhindert, dass eine Position auf zukünftige Positionen zugreifen kann, wodurch die autoregressive Struktur erhalten bleibt Encoder-Decoder-Attention : Ein Attention-Mechanismus, bei dem die Keys und Values aus der Ausgabe des Encoders stammen und die Queries aus dem Decoder, sodass der Decoder auf die kodierte Eingabesequenz zugreifen kann. Position-wise Feedforward Neural Network .
Analog zum Encoder werden auch diese Normalisiert
Die -te Decoder-Schicht ist dann definiert als
Der Decoder ist die Verkettung dieser Schichten:
Position-wise Feedforward-Netzwerk Jede Schicht enthält ein Feedforward-Netzwerk, das unabhängig auf jede Position angewendet wird und daher als position-wise Feedforward Neural Network bezeichnet wird. Es besteht aus zwei linearen Transformationen und einem Rectifier dazwischen:
Attention-Mechanismen Beim Attention-Mechanismus werden zuerst aus der eingebetteten Eingabesequenz mittels lernbaren Gewichtsmatrizen lineare Projektionen berechnet, daraus resultieren drei Matrizen, welche als („Query“), („Key“) und („Value“) bezeichnet werden:
Metaphorisch lassen sich diese wie folgt interpretieren: beschreibt „was wird gesucht?“, beschreibt „welche Merkmale werden mit der Suche verglichen?“, beschreibt „welche Information wird geliefert?“. Die tatsächliche Bedeutungen der drei Vektoren wird jedoch erst durch die im Training gelernten Projektionen erzeugt.
+ Beispiel für den Query (Q): „Wer schrieb der Freischütz?“ Key (K) Value (V) Gewicht (α) Oper mit Freischütz-Bezug Carl Maria von Weber 0.35 Romantische Opern des 19. Jahrhunderts Carl Maria von Weber 0.15 Werk der Schauerromantik Johann August Apel 0.35 Moralische Erzählungen über Versuchung Jeremias Gotthelf 0.10 Literatur über Teufelspakte Johann Wolfgang von Goethe 0.05
Die Attention berechnet Ähnlichkeiten zwischen und via Skalarprodukt und bildet daraus Gewichte , mit Hilfe deren die -Vektoren gewichtet werden.
Man schreibt für die verschiedenen Formen von Attention statt häufig , dies ist wie folgt zu verstehen
Self-Attention und Cross-Attention Man spricht von Self-Attention, wenn , und durch dieselbe Eingabesequenz erzeugt wurden. Man spricht von Cross-Attention, wenn aus einer Sequenz kommt und und aus einer anderen Sequenz.
Beim Cross-Attention können dann die Sequenzlängen (das heißt Anzahl Tokens) auch unterschiedlich sein
Attention-Funktion auf einen Query Für jeden Token gibt es einen Query . Eine Attention-Funktion bildet einen Query und eine Menge von Key-Value-Paaren auf einen mit Softmax gewichteten Vektor ab:
das heißt die Skalarprodukte werden mit normalisiert (wobei ), um die Gewichte zu bilden.
misst, wie ähnlich der Query und der Key sind. wird zur Skalierung verwendet, damit die Skalarprodukte bei höherer Dimension stabil bleiben, gewichtet höher, wenn sehr ähnlich zu ist.
Das bedeutet bestimmt, wie relevant das zugehörige auf den Query ist.
Attention-Funktion auf alle Queries (Self-Attention und Cross-Attention) Die Attention angewendet auf alle Queries:
im Falle von Self-Attention sind die Matrizen und definiert als
Im Falle von Cross-Attention gilt und definiert als
Verschiedene Formen von Attention Masked Self-Attention: Im Decoder wird die Attention so eingeschränkt, dass jedes Element der Position der Sequenz nur seine und die früheren Positionen berücksichtigt:
wobei die Maskierungs-Matrix ist mit für erlaubte und für verbotene Positionen.
Encoder-Decoder-Attention: Queries stammen aus dem Decoder, Keys und Values aus dem Encoder:
Multi-Head Attention: Berechnet mehrere Attention-Köpfe parallel. Die Eingaben stammen je nach Block aus Self-Attention (alle aus derselben Sequenz) oder aus der Encoder-Decoder-Attention (Query aus dem Decoder, Keys und Values aus dem Encoder):
mit: . Die Konkatenation ist einfach das Aneinanderfügen von Vektoren, das heißt für zwei Vektor und ist die Operation definiert als
Ausgabe Die Wahrscheinlichkeit der gesamten Ausgabesequenz ist
Die Ausgabe ist nicht mehr Teil der Transformer-Architektur oder der Publikation, doch anschließend wird das nächste Symbol durch
bestimmt, wobei die Menge aller möglichen Ausgabesymbole ist.
Einzelnachweise
Kategorie:Deep Learning Kategorie:Künstliche Intelligenz Kategorie:Google