KI 101
Was sind Transformer-Neuronale Netze?

Transformer-Neuronale Netze Beschrieben
Transformator-Modelle sind eine Art von maschinellen Lernalgorithmen, die sich auf die Verarbeitung und Interpretation von sequenziellen Daten spezialisieren, was sie optimal für Aufgaben im Bereich der natürlichen Sprachverarbeitung macht. Um besser zu verstehen, was ein maschinelles Transformator-Modell ist und wie es funktioniert, werfen wir einen genaueren Blick auf Transformator-Modelle und die Mechanismen, die sie antreiben.
Dieser Artikel wird folgendes behandeln:
- Sequenz-zu-Sequenz-Modelle
- Die Architektur von Transformer-Neuronalen Netzen
- Der Aufmerksamkeitsmechanismus
- Unterschiede zwischen Transformern und RNNs/LSTMs
Sequenz-zu-Sequenz-Modelle
Sequenz-zu-Sequenz-Modelle sind eine Art von NLP-Modell, das verwendet wird, um Sequenzen einer Art in Sequenzen einer anderen Art umzuwandeln. Es gibt verschiedene Arten von Sequenz-zu-Sequenz-Modellen, wie z.B. Recurrente Neuronale Netzwerke und Long Short-Term Memory (LSTM)-Modelle.
Traditionelle Sequenz-zu-Sequenz-Modelle wie RNNs und LSTMs sind nicht der Schwerpunkt dieses Artikels, aber ein Verständnis von ihnen ist notwendig, um zu verstehen, wie Transformator-Modelle funktionieren und warum sie traditionellen Sequenz-zu-Sequenz-Modellen überlegen sind.
In Kürze bestehen RNN-Modelle und LSTM-Modelle aus Encoder- und Decoder-Netzwerken, die die Eingabedaten bei verschiedenen Zeitpunkten analysieren. Das Encoder-Modell ist dafür verantwortlich, eine codierte Darstellung der Wörter in den Eingabedaten zu erstellen. Bei jedem Zeitpunkt nimmt das Encoder-Netzwerk eine Eingabesequenz und einen versteckten Zustand aus dem vorherigen Zeitpunkt in der Reihe entgegen. Die versteckten Zustandswerte werden aktualisiert, während die Daten durch das Netzwerk fließen, bis zum letzten Zeitpunkt, an dem ein “Kontextvektor” generiert wird. Der Kontextvektor wird dann an das Decoder-Netzwerk übergeben, das verwendet wird, um eine Zielsequenz zu generieren, indem das wahrscheinlichste Wort, das mit dem Eingabewort für die jeweiligen Zeitpunkte korreliert, vorhergesagt wird.
Diese Modelle können durch die Verwendung eines “Aufmerksamkeitsmechanismus” erweitert werden. Ein Aufmerksamkeitsmechanismus definiert, welche Teile des Eingabevektors das Netzwerk fokussieren sollte, um die richtige Ausgabe zu generieren. Mit anderen Worten, ein Aufmerksamkeitsmechanismus ermöglicht es dem Transformator-Modell, ein Eingabewort zu verarbeiten, während es gleichzeitig auf die relevanten Informationen in den anderen Eingabewörtern achtet. Aufmerksamkeitsmechanismen maskieren auch Wörter, die keine relevanten Informationen enthalten.
Die Architektur von Transformer-Neuronalen Netzen
Wir werden uns später noch genauer mit dem Aufmerksamkeitsmechanismus befassen, aber zunächst werfen wir einen Blick auf die Architektur eines Transformer-Neuronalen Netzes auf höherer Ebene.
Im Allgemeinen sieht ein Transformer-Neuronales Netz wie folgt aus:

Obwohl diese allgemeine Struktur zwischen Netzwerken variieren kann, bleiben die Kernbestandteile gleich: Positionscodierungen, Wortvektoren, Aufmerksamkeitsmechanismus, Feed-Forward-Neuronales Netz.
Positionscodierungen und Wortvektoren
Ein Transformer-Neuronales Netz funktioniert, indem es eine Sequenz von Eingaben nimmt und diese in zwei andere Sequenzen umwandelt. Der Transformator erzeugt eine Sequenz von Wortvektor-Einbettungen und Positionscodierungen.
Wortvektor-Einbettungen sind nur die Textdarstellung in einem numerischen Format, das das Neuronale Netz verarbeiten kann. Die Positionscodierungen hingegen sind vektorisierte Darstellungen, die Informationen über die Position des aktuellen Wortes im Eingabesatz enthalten, im Verhältnis zu anderen Wörtern.
Andere textbasierte Neuronale Netzwerke wie RNNs und LSTMs verwenden Vektoren, um die Wörter in den Eingabedaten darzustellen. Diese Vektor-Einbettungen ordnen Wörtern konstante Werte zu, aber dies ist begrenzt, da Wörter in verschiedenen Kontexten verwendet werden können. Ein Transformator-Netz löst dieses Problem, indem es die Wortwerte flexibler macht, indem es sinusförmige Funktionen verwendet, um die Wortvektoren je nach Position des Wortes im Satz unterschiedliche Werte annehmen zu lassen.
Dadurch kann das Neuronale Netzwerk Informationen über die relative Position der Eingabewörter erhalten, auch nachdem die Vektoren durch die Schichten des Transformator-Netzwerks geflossen sind.
Die Positionscodierungen und die Wortvektor-Einbettungen werden zusammengefasst und dann an beide Encoder- und Decoder-Netzwerke übergeben. Obwohl Transformer-Neuronale Netze wie RNNs und LSTMs Encoder/Decoder-Schemata verwenden, besteht ein wichtiger Unterschied zwischen ihnen darin, dass alle Eingabedaten gleichzeitig in das Netzwerk eingegeben werden, während bei RNNs und LSTMs die Daten sequenziell eingegeben werden.
Die Encoder-Netzwerke sind dafür verantwortlich, die Eingaben in Darstellungen umzuwandeln, die das Netzwerk lernen kann, während die Decoder-Netzwerke das Gegenteil tun und die Kodierungen in eine Wahrscheinlichkeitsverteilung umwandeln, die verwendet wird, um die wahrscheinlichsten Wörter in der Ausgabesequenz zu generieren. Wichtig ist, dass sowohl die Encoder- als auch die Decoder-Netzwerke einen Aufmerksamkeitsmechanismus haben.
Da GPUs parallel verarbeiten können, werden mehrere Aufmerksamkeitsmechanismen parallel verwendet, um die relevanten Informationen für alle Eingabewörter zu berechnen. Diese Fähigkeit, auf mehrere Wörter gleichzeitig zu achten, auch als “Mehrkopf-Aufmerksamkeit” bezeichnet, hilft dem Neuronalen Netzwerk, den Kontext eines Wortes in einem Satz zu lernen, und ist einer der Hauptvorteile, die Transformator-Netze gegenüber RNNs und LSTMs haben.
Der Aufmerksamkeitsmechanismus
Der Aufmerksamkeitsmechanismus ist der wichtigste Teil eines Transformator-Netzes. Der Aufmerksamkeitsmechanismus ermöglicht es Transformator-Modellen, die Aufmerksamkeitsgrenze eines typischen RNN- oder LSTM-Modells zu überschreiten. Traditionelle Sequenz-zu-Sequenz-Modelle verwerfen alle Zwischenzustände und verwenden nur den finalen Zustand/Kontextvektor, wenn sie das Decoder-Netz initialisieren, um Vorhersagen über eine Eingabesequenz zu treffen.
Das Verwerfen aller Zustände außer dem finalen Kontextvektor funktioniert okay, wenn die Eingabesequenzen ziemlich kurz sind. Wenn jedoch die Länge einer Eingabesequenz zunimmt, wird die Leistung des Modells abnehmen, wenn diese Methode verwendet wird. Dies liegt daran, dass es schwierig ist, eine lange Eingabesequenz als einen einzelnen Vektor zusammenzufassen. Die Lösung besteht darin, die “Aufmerksamkeit” des Modells zu erhöhen und die Zwischenzustände des Encoders zu verwenden, um Kontextvektoren für den Decoder zu konstruieren.
Der Aufmerksamkeitsmechanismus definiert, wie wichtig andere Eingabetoken für das Modell sind, wenn Kodierungen für ein bestimmtes Token erstellt werden. Zum Beispiel ist “es” ein allgemeines Pronomen, das oft verwendet wird, um Tiere zu bezeichnen, wenn ihr Geschlecht nicht bekannt ist. Ein Aufmerksamkeitsmechanismus ermöglicht es einem Transformator-Modell, zu bestimmen, dass “es” in dem aktuellen Kontext auf ein Eichhörnchen verweist, weil es alle relevanten Wörter im Eingabesatz untersuchen kann.
Ein Aufmerksamkeitsmechanismus kann auf drei verschiedene Arten verwendet werden: Encoder-zu-Decoder, Encoder-nur, Decoder-nur.
Der Encoder-Decoder-Aufmerksamkeitsmechanismus ermöglicht es dem Decoder, Eingabesequenzen zu berücksichtigen, wenn er eine Ausgabe generiert, während die Encoder-nur- und Decoder-nur-Aufmerksamkeitsmechanismen es den Netzwerken ermöglichen, alle Teile der vorherigen und aktuellen Sequenzen zu berücksichtigen.
Die Konstruktion eines Aufmerksamkeitsmechanismus kann in fünf Schritte unterteilt werden:
- Berechnung eines Scores für alle Encoder-Zustände.
- Berechnung der Aufmerksamkeitsgewichte
- Berechnung der Kontextvektoren
- Aktualisierung des Kontextvektors mit der Ausgabe des vorherigen Zeitpunkts
- Erzeugung der Ausgabe mit dem Decoder
Der erste Schritt besteht darin, dass der Decoder einen Score für alle Encoder-Zustände berechnet. Dies geschieht durch das Trainieren des Decoder-Netzwerks, das ein grundlegendes Feed-Forward-Neuronales Netz ist. Wenn der Decoder auf das erste Wort in der Eingabesequenz trainiert wird, ist noch kein interner/versteckter Zustand erstellt worden, sodass der letzte Zustand des Encoders normalerweise als vorheriger Zustand des Decoders verwendet wird.
Um die Aufmerksamkeitsgewichte zu berechnen, wird eine Softmax-Funktion verwendet, um eine Wahrscheinlichkeitsverteilung für die Aufmerksamkeitsgewichte zu erzeugen.
Sobald die Aufmerksamkeitsgewichte berechnet wurden, muss der Kontextvektor berechnet werden. Dies geschieht, indem die Aufmerksamkeitsgewichte und der versteckte Zustand für jeden Zeitpunkt miteinander multipliziert werden.
Nachdem der Kontextvektor berechnet wurde, wird er zusammen mit dem im vorherigen Zeitpunkt generierten Wort verwendet, um das nächste Wort in der Ausgabesequenz zu generieren. Da der Decoder im ersten Zeitpunkt keine vorherige Ausgabe hat, auf die er zurückgreifen kann, wird oft ein spezielles “Start”-Token verwendet.
Unterschiede zwischen Transformern und RNNs/LSTMs
Lassen Sie uns einige der Unterschiede zwischen RNNs und LSTMs abdecken.
RNNs verarbeiten Eingaben sequenziell, während ein versteckter Zustandsvektor aufrechterhalten und durch die Eingabewörter geändert wird, während sie durch das Netzwerk fließen. Die versteckten Zustandsvektoren eines RNN enthalten normalerweise sehr wenig relevante Informationen über die früheren Eingaben. Neue Eingaben überschreiben oft den aktuellen Zustand, was zu Informationsverlust und Leistungsabfall über die Zeit führt.
Im Gegensatz dazu verarbeiten Transformator-Modelle die gesamte Eingabesequenz auf einmal. Der Aufmerksamkeitsmechanismus ermöglicht es jedem Ausgabewort, durch jedes Eingabewort und jeden versteckten Zustand informiert zu werden, was das Netzwerk für lange Textstücke zuverlässiger macht.
LSTMs sind modifizierte Versionen von RNNs, die so angepasst wurden, dass sie längere Eingabesequenzen verarbeiten können. Die LSTM-Architektur verwendet eine Struktur namens “Gates”, mit “Eingabe-Gates”, “Ausgabe-Gates” und “Vergess-Gates”. Die gate-basierte Konstruktion behebt den Informationsverlust, der für RNN-Modelle typisch ist. Die Daten werden immer noch sequenziell verarbeitet, und die rekurrente Konstruktion der Architektur macht es schwierig, LSTM-Modelle mit parallelem Rechnen zu trainieren, was die Trainingszeit insgesamt verlängert.
LSTM-Ingenieure fügten oft Aufmerksamkeitsmechanismen zum Netzwerk hinzu, was bekanntermaßen die Leistung des Modells verbesserte. Es wurde jedoch schließlich entdeckt, dass der Aufmerksamkeitsmechanismus allein die Genauigkeit verbesserte. Diese Entdeckung führte zur Entwicklung von Transformator-Netzen, die Aufmerksamkeitsmechanismen und paralleles Rechnen dank GPUs verwendeten.












