Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Transformer (Maschinelles Lernen)

Ein Transformer ist eine von Google weiterentwickelte Deep Learning (DL)-Architektur, die einen sogenannten „Aufmerksamkeitsmechanismus“ (englisch …

Inhalt6 Abschnitte
  1. 1. Grundidee und Bedeutung
  2. 2. Aufbau der Architektur
  3. 3. Kodierer und Dekodierer
  4. 4. Berechnung von Attention
  5. 5. Positionsinformationen
  6. 6. Anwendungen über Text hinaus

Grundidee und Bedeutung

Ein Transformer ist eine Deep-Learning-Architektur, die einen Aufmerksamkeitsmechanismus, englisch attention, nutzt. Sie wurde 2017 von Google vorgestellt und ist eine wichtige Grundlage vieler vortrainierter Modelle, darunter generative vortrainierte Transformer wie GPT und Large Language Models. Vortrainierte Modelle werden zuerst mit großen Datensätzen trainiert und später für konkrete Aufgaben eingesetzt.

Bei Sprachaufgaben wird Text durch Worteinbettung, also Embedding, in numerische Vektoren umgewandelt. Diese Vektoren werden statistisch weiterverarbeitet, zum Beispiel für maschinelle Übersetzung, Textgenerierung oder Zusammenfassung längerer Texte. Ein Transformer wird dafür mit vielen Beispieltexten trainiert und anschließend auf neue Eingaben angewandt.

Transformer gelten als effizienter als frühere Long-Short-Term-Memory-Architekturen (LSTM). Vor Transformern wurden in der Verarbeitung natürlicher Sprache vor allem rekurrente Modelle wie RNN, LSTM, GRU und Seq2Seq verwendet, die Sequenzen Schritt für Schritt abarbeiten. Später erhielten solche Modelle Aufmerksamkeitsmechanismen. Der Transformer von 2017 entfernte den rekurrenten Anteil und verzichtete auch auf Convolutional Neural Networks (CNN). Stattdessen basiert er auf Selbst-Aufmerksamkeit, englisch self-attention, kombiniert mit Feed-Forward-Netzen.

Der Aufmerksamkeitsmechanismus soll mathematisch nachahmen, wie wichtige Zusammenhänge in einem Kontext hervorgehoben werden. Für jedes Wort beziehungsweise dessen Einbettung berechnet das Modell eine weiche Gewichtung. Weiche Gewichte können sich bei jedem Durchlauf abhängig vom Kontext ändern, im Gegensatz zu festen, vortrainierten harten Gewichten. Die Gewichte können parallel berechnet werden, wie bei Transformern, oder sequenziell, wie bei RNNs. Bekannte Transformer-Modelle sind BERT als reines Encoder-Modell und GPT-Varianten als reine Decoder-Architekturen.

Aufbau der Architektur

Die ursprüngliche Transformer-Architektur besteht aus in Serie geschalteten Kodierern, englisch Encoder, und in Serie geschalteten Dekodierern, englisch Decoder. Die Eingabesequenz wird zuerst durch eine Embedding-Schicht in Vektoren umgewandelt. Da ein Transformer von sich aus keine Reihenfolge wie ein rekurrentes Modell verarbeitet, wird zusätzlich eine Positionskodierung verwendet. Dadurch kann dasselbe Wort am Satzanfang eine andere Repräsentation erhalten als am Satzende.

Die Kodierer überführen die Eingabesequenz in eine interne Repräsentation, die die Bedeutung der Eingabe abstrakt abbildet. Die Dekodierer übersetzen diese interne Repräsentation in eine Ausgabesequenz. Eingaben werden in Batches verarbeitet. Die Länge der Encoder-Decoder-Pipeline begrenzt die maximale Eingabelänge. Kürzere Eingaben werden durch Padding aufgefüllt.

Ein Kodierer besteht aus einem Selbst-Aufmerksamkeitsmodul und einem Feed-Forward-Netz (FFN). Ein Dekodierer enthält ein Selbst-Aufmerksamkeitsmodul, ein Encoder-Decoder-Aufmerksamkeitsmodul und ein Feed-Forward-Modul. Außerdem nutzt die Architektur Residualverbindungen und Layer-Normalisierung. Residualverbindungen addieren die Eingabe einer Teilschicht wieder zur Ausgabe hinzu; Layer-Normalisierung stabilisiert die Berechnungen.

Der Artikel gibt den Encoder-Block als Funktion f: R^(t_max × d) -> R^(t_max × d) mit f_theta(X)=Z an. Er berechnet unter anderem A = sqrt(1/d) XW^(q)(XW^(k))^T, M = SoftMax(A)XW^(v), O = LayerNorm_1(M+X), F = ReLU(OW^(f_1)+b^(f_1))W^(f_2)+b^(f_2) und Z = LayerNorm_2(O+F). Dabei werden die Softmax-Funktion und ReLU, ein Rectifier, verwendet.

Im ursprünglichen Transformer von 2017 wurde die Layer-Normalisierung nach jeder Teilschicht eingesetzt, die sogenannte Post-LN-Konvention: LayerNorm(x + Sublayer(x)). Später wurde die Pre-LN-Konvention vorgeschlagen: x + Sublayer(LayerNorm(x)). Sie erwies sich als einfacher zu trainieren, da kein Aufwärmen der Lernrate nötig ist und die Konvergenz schneller erfolgt.

Kodierer und Dekodierer

Der Kodierer nutzt Multi-Head Self-Attention. Dabei erhalten mehrere sogenannte Heads jeweils linear projizierte Versionen von Abfragen, Schlüsseln und Werten. Sie arbeiten parallel und erzeugen Ausgaben, die anschließend zu einem Endergebnis zusammengeführt werden. Die zweite Teilschicht des Kodierers ist ein vollständig verbundenes Feedforward Neural Network mit zwei linearen Transformationen und einer ReLU-Aktivierung dazwischen. In der beschriebenen Architektur wenden alle sechs Kodiererschichten dieselben Arten linearer Transformationen auf alle Wörter an, aber jede Schicht besitzt eigene Parameter.

Der Dekodierer kann während der Inferenz autoregressiv Sequenzen erzeugen. Das bedeutet: Er erhält eine Startsequenz, sagt das nächste wahrscheinlichste Token voraus, nimmt dieses Token im nächsten Schritt in die Eingabe auf und fährt so fort. Beim Training wird dieser Prozess durch Teacher Forcing und Maskierung ersetzt, wodurch das Training stark beschleunigt wird.

Jede Decoder-Schicht enthält drei Teilschichten: kausal maskierte Selbstaufmerksamkeit, Kreuzaufmerksamkeit und ein Feedforward-Netz. Kausal maskiert bedeutet, dass der Dekodierer nur vergangene Tokens beachten darf, nicht zukünftige. Kreuzaufmerksamkeit verbindet den Decoder mit dem Encoder: Das Self-Attention-Modul berechnet Query-, Key- und Value-Vektoren aus den Ausgaben des vorherigen Kodierers oder Dekodierers. Das Encoder-Decoder-Attention-Modul berechnet dagegen nur den Query-Vektor aus dem vorgelagerten Attention-Modul; Key- und Value-Vektoren stammen aus dem Encoder.

Masked Attention wird im Artikel als MaskedAttention(Q,K,V)=softmax(M + QK^T / sqrt(d_k))V angegeben. Die Maskierungsmatrix M hat bei unmaskierten Werten den Wert 0 und bei maskierten Werten den Wert -∞. Durch die Softmax-Funktion wird daraus für maskierte Stellen eine Attention von Null. Häufig wird die Maske so gewählt, dass nur vorhergehende Werte beachtet werden.

Berechnung von Attention

Die Aufgabe eines Attention-Moduls ist es, die Korrelation eines Tokens zu anderen Tokens der Eingabe zu berechnen. Ein Token ist ein Eingabesymbol, zum Beispiel ein Wort oder Wortteil. Für die Worteinbettung x_i des i-ten Tokens werden drei Vektoren berechnet, indem x_i mit erlernten Matrizen Q, K und V multipliziert wird: q_i = x_i · Q ist der Abfragevektor, englisch query; k_i = x_i · K ist der Schlüsselvektor, englisch key; v_i = x_i · V ist der Wertevektor, englisch value.

Das Aufmerksamkeitsgewicht zwischen Token i und Token j entsteht durch das Skalarprodukt s_i,j = q_i · k_j. Danach wird durch die Quadratwurzel der Länge der Schlüsselvektoren dim(k) geteilt: s_i,j / sqrt(dim(k)). Diese Skalierung stabilisiert die Gradienten, weil die Softmax-Funktion bei großen absoluten Argumenten stark abflacht und der Gradient sehr klein werden kann. Anschließend wird die Softmax-Funktion angewandt. Der entstehende Wert skaliert den Wertevektor, sodass z_i = softmax(s_i,j / sqrt(dim(k))) · v_i die Ausgabe des Attention-Moduls für Token i darstellt.

In der Praxis wird Multi-Head-Attention eingesetzt. Jeder Head besitzt eigene Versionen der Matrizen Q, K und V. Wenn ein Head für eine Eingabe nicht relevant ist, berechnet er einen niedrigen Wert; ein relevanter Head berechnet einen hohen Ausgabewert.

Der Transformer verwendet Scaled Dot-Product Attention. Die kompakte Formel lautet attention(Q,K,V)=softmax(QK^T / sqrt(d_k)) · V. Dabei werden die Ausrichtungswerte durch Multiplikation von Q mit K^T berechnet, mit 1/sqrt(d_k) skaliert, durch Softmax in Gewichte umgewandelt und anschließend auf V angewandt. Der Skalierungsfaktor verhindert, dass große Skalarprodukte zu extrem kleinen Gradienten führen, dem Problem verschwindender Gradienten.

Positionsinformationen

Self-Attention allein ignoriert die Reihenfolge einer Sequenz. Deshalb verwendet der Transformer Positionskodierungen. Ein gängiger Ansatz ist, Positionseinbettungen zur Eingabe hinzuzufügen, bevor diese in das eigentliche Transformer-Modell gelangt. Wenn U ∈ R^(t_max × d) die Matrix der Einheitseinbettungen ist und P ∈ R^(t_max × d) die Positionsinformationen enthält, wird dem Modell T(U+P) zugeführt.

In der ursprünglichen Architektur wird zu jedem eingebetteten Quell- und Zielwort ein absoluter Positionskodierungsvektor PE_j hinzugefügt, um dessen Position j anzugeben. Die Idee besteht darin, Sinus- und Kosinuskurven unterschiedlicher Wellenlängen zu verwenden. Für j ∈ {1,...,J} in einer Sequenz der Länge J ist PE_j ∈ R^(d_model) definiert durch PE_(j,2β)=sin(j/10000^(2β/d_model)) und PE_(j,2β+1)=cos(j/10000^(2β/d_model)), wobei β ∈ {1,..., floor(d_model/2)}. Vaswani et al. schlagen vor, dass sinusförmige Positionseinbettungen genauso gut funktionieren wie erlernte Positionskodierungen, und vermuten, dass sie besser auf längere Sequenzen verallgemeinert werden können.

Rotary Positional Embedding, kurz RoPE, kodiert Positionen durch Rotation von Koordinatenpaaren. Für einen zweidimensionalen Vektor (x_m^(1), x_m^(2)) und einen Winkel θ wird mit einer Rotationsmatrix um m·θ gerechnet. In komplexer Schreibweise lautet die Kodierung RoPE(z_m,m)=e^(i·m·θ) · z_m. Für 2n-dimensionale Vektoren wird RoPE auf jedes Koordinatenpaar angewandt. Ein Vorteil ist, dass das Skalarprodukt zweier kodierter Vektoren nur von ihrer relativen Position abhängt.

Anwendungen über Text hinaus

Transformer können auch für andere Modalitäten als Text verwendet werden, wenn diese in Token zerlegt werden. Eine Studie aus dem Jahr 2022 ergab, dass Transformer, die nur auf natürlicher Sprache vortrainiert wurden, durch Feinabstimmung von nur 0,03 % der Parameter bei vielen logischen und visuellen Aufgaben mit Long Short-Term Memory (LSTM) konkurrieren können. Das wird als Hinweis auf Transferleistungen bei Deep Learning beschrieben.

Vision Transformer übertragen die Transformer-Idee auf maschinelles Sehen. Sie zerlegen Eingabebilder in Patches, wandeln diese in Vektoren um und behandeln sie wie Token in einem Standard-Transformer. Conformer und später Whisper folgen für Spracherkennung einem ähnlichen Muster: Das Sprachsignal wird zuerst in ein Spektrogramm umgewandelt, dann wie ein Bild in Patches zerlegt, in Vektoren umgewandelt und als Token verarbeitet.

Perceiver sind eine Transformer-Variante, die für Multimodalität entwickelt wurde. Beispiele für Bildgeneratoren mit multimodalen Transformern sind DALL-E und Stable Diffusion. DALL-E ist im Gegensatz zu späteren Modellen kein Diffusionsmodell. Es nutzt einen Nur-Decoder-Transformer, der autoregressiv Text und danach eine Token-Darstellung eines Bildes erzeugt; diese wird anschließend von einem Variational Autoencoder in ein Bild umgewandelt.

Lernvideos zu Transformer (Maschinelles Lernen)

Weiterlesen

Deep Learning Deep Learning erlaubt die Verarbeitung und Analyse komplexer Datenmuster; dazu verwendet Deep Learning tiefe hierarchische neuronale Netze, die automatisch … Large Language Model Ein Large Language Model (kurz LLM, englisch), übertragen großes Sprachmodell, ist die softwaretechnische Realisierung eines mathematischen Sprachmodells, … Zahl Zahlen sind abstrakte mathematische Objekte beziehungsweise Objekte des Denkens, die sich historisch aus Vorstellungen von Größe und Anzahl entwickelten. Tupel (Informatik) In diversen Programmiersprachen bezeichnet „Tupel“ gemeinhin einen Listen-Datentyp, welcher über eine feste Länge verfügt und nach Definition nicht mehr … Maschinelles Lernen Maschinelles Lernen (ML) entwickelt, untersucht und verwendet statistische Algorithmen, auch Lernalgorithmen genannt. Solche Algorithmen können lernen, … Textgenerierung Die Generierung von Texten ist sowohl ein Teilbereich der Computerlinguistik als auch der künstlichen Intelligenz. Für eine Beispielanwendung zur … Inhaltsangabe Eine Inhaltsangabe oder Zusammenfassung ist eine Übersicht über den wesentlichen Inhalt eines Textes oder Filmes. Gebräuchliche Formen von Inhaltsangaben … 1990er Die 1990er umfassen die Jahre von 1990 bis 1999. Sie waren geprägt von einer Neuordnung der Welt nach dem Ende des Kalten Kriegs. Aus großen Teilen der … Rekurrentes neuronales Netz Bei einer direkten Rückkopplung (englisch direct feedback) wird der eigene Ausgang eines Neurons als weiterer Eingang genutzt. · Die indirekte Rückkopplung ( … Convolutional Neural Network Im Jahr 1987 trainierte Alex Waibel ein CNN namens TDNN durch Backpropagation und erzielte damit Bewegungsinvarianz. Auch Yann LeCun publizierte ab dem … Künstliches neuronales Netz Ein künstliches neuronales Netz besteht aus mehreren künstlichen Neuronen, die miteinander verbunden sind und in der Regel in Schichten organisiert werden. Im … Algorithmus Algorithmen bestehen aus endlich vielen, wohldefinierten Einzelschritten. ... Damit können sie zur Ausführung in ein Computerprogramm implementiert, aber auch in …