Typen
:Involvierte Definitionen
:Veranstaltung
: EMLReferenz
:
⠀
Definition: Transformer
Als Transformer bezeichnen wir eine Klasse von neuronalen Netzwerkarchitekturen, die für die Verarbeitung von sequenziellen Daten wie natürlicher Sprache entwickelt wurden.
Transformer zeichnen sich dank ihrer Nutzung von Self-Attention-Blöcken durch die Fähigkeit aus, Informationen über lange Distanzen zu behalten und komplexe Abhängigkeiten in den Daten modellieren zu können.
Die Funktionsweise eines Transformers lässt sich wie folgt herunterbrechen:
- Der Transformer erhält einen Text als Input.
- Die Wörter des Textes werden mithilfe einer embedding Matrix (und einem Positional Embedding) in separate Embedding-Vektoren umgewandelt.
- Jeder der Embedding-Vektoren wird durch eine Reihe von Self-Attention-Blöcken in einen Kontext mit den umliegenden Tokens des gesamten Inputs gesetzt.
- Schließlich wird der resultierende Vektor des letzten Tokens des Textes gewählt und mithilfe einer (ebenfalls gelernten) “unembedding” Matrix multipliziert, um eine Vorhersage für das nächst-folgende Token zu erstellen.
Definition: Funktionsweise eines Transformers
- Encoder
- Der Encoder erhält zunächst eine Reihe1 von Wörtern als Input.
- Diese Wörter werden zunächst als Vektoren embedded.
- Um die Reihenfolge der Embeddings ableiten zu können, wird ein Positional Embedding elementweise hinzuaddiert.
- Die so erzeugte Reihe an Embeddings wird an einen Multi-Head Self-Attention Layer weitergeleitet. Dieser “reichert” die Input-Embeddings um Kontextinformationen an.
- Da es sich um sehr tiefe Neuronale Netze handelt, werden die ursprünglichen Embeddings vor dem Attention Layer per Residualverbindung zu den angereicherten Embeddings hinzuaddiert.
- Um das Ergebnis anschließend numerisch zu standardisieren, nutzen wir Layer Normalization.
- Das darauffolgende Feed-Forward Netzwerk entspricht einem Bottleneck Residual Block, der einzeln pro Embedding angewendet wird. Die Parameter werden jedoch zwischen den Anwendungen geteilt. Der Layer führt eine nicht-lineare Transformation des Embeddings durch.
- Decoder
- Der Decoder erhält als Input die zuletzt vom Decoder produzierten Outputs als Sequenz. Wurden noch keine Outputs produziert, erhält er einen
<Start>
-Token.- Wie im Encoder werden die Outputs embedded und die Embeddings mittels eines Multi-Head Self-Attention Layers angereichert.
- In einem zweiten Multi-Head Cross-Attention Layer werden die gerade vom Decoder produzierten angereicherten Embeddings (als
keys
undvalues
) mit den vom Encoder ausgegebenen Vektoren (alsqueries
) kombiniert und entsprechend angereichert.- Wie im Encoder folgt nach der Anreicherung ein weiteres Feed-Forward Netzwerk im Stile eines Bottleneck Residual Blocks, der einzeln pro Embedding angewendet wird und die Embeddings nicht-linear transformiert.
- Generierung des Outputs
Um nun einen neuen Token zu produzieren, würde der so angereicherte Vektor des neusten Outputs des Decoders ausgewählt werden.
Der ausgewählte Vektor wird mittels einer linearen Transformation (bspw. Neuronales Netzwerk mit linearer Aktivierungsfunktion) in den Embedding Space projiziert.
Um eine Wahrscheinlichkeitsverteilung zu erhalten, wird eine Softmax-Transformation ausgeführt.
Der Eintrag des Vektors mit der höchsten Wahrscheinlichkeit wird in das Vokabular zurückübersetzt und bildet den Output.
Definition: Context-Size
Die Context-Size legt fest, wie viele Tokens der Transformer pro Vorhersage berücksichtigen kann.
Die Context-Size ist also genau die Anzahl der für die Self-Attention berechnet wird.
Footnotes
-
Die Anzahl der Wörter entspricht der Context-Size des Transformers. ↩