Stummel Was sind transformatorische neuronale Netze? - Unite.AI
Vernetzen Sie sich mit uns

AI 101

Was sind transformatorische neuronale Netze?

mm
Aktualisiert on

Beschriebene transformatorische neuronale Netze

Transformatoren sind eine Art maschinelles Lernmodell, das auf die Verarbeitung und Interpretation sequenzieller Daten spezialisiert ist und sich daher optimal für Aufgaben der Verarbeitung natürlicher Sprache eignet. Um besser zu verstehen, was ein Transformator für maschinelles Lernen ist und wie er funktioniert, werfen wir einen genaueren Blick auf Transformatormodelle und die Mechanismen, die sie antreiben.

Dieser Artikel behandelt:

  • Sequenz-zu-Sequenz-Modelle
  • Die Transformer Neural Network-Architektur
  • Der Aufmerksamkeitsmechanismus
  • Unterschiede zwischen Transformatoren und RNNs/LSTMs

Sequenz-zu-Sequenz-Modelle

Sequenz-zu-Sequenz-Modelle sind eine Art NLP-Modell, das zum Konvertieren von Sequenzen eines Typs in Sequenzen eines anderen Typs verwendet wird. Es gibt verschiedene Arten von Sequenz-zu-Sequenz-Modellen, wie z Wiederkehrendes neuronales Netz Modelle und Langes Kurzzeitgedächtnis (LSTM) Modelle.

Traditionelle Sequenz-zu-Sequenz-Modelle wie RNNs und LSTMS stehen nicht im Mittelpunkt dieses Artikels, aber ein Verständnis dieser Modelle ist notwendig, um zu verstehen, wie Transformatormodelle funktionieren und warum sie herkömmlichen Sequenz-zu-Sequenz-Modellen überlegen sind.

Kurz gesagt bestehen RNN-Modelle und LSTM-Modelle aus Encoder- und Decoder-Netzwerken, die Eingabedaten in verschiedenen Zeitschritten analysieren. Das Encodermodell ist für die Bildung einer codierten Darstellung der Wörter in den Eingabedaten verantwortlich. Bei jedem Zeitschritt übernimmt das Encodernetzwerk eine Eingabesequenz und einen verborgenen Zustand aus dem vorherigen Zeitschritt in der Reihe. Die verborgenen Zustandswerte werden aktualisiert, während die Daten das Netzwerk durchlaufen, bis zum letzten Zeitschritt, in dem ein „Kontextvektor“ generiert wird. Der Kontextvektor wird dann an das Decodernetzwerk übergeben, das zur Generierung einer Zielsequenz verwendet wird, indem das wahrscheinlichste Wort vorhergesagt wird, das für die jeweiligen Zeitschritte mit dem Eingabewort gepaart wird.

Diese Modelle können durch die Verwendung eines „Aufmerksamkeitsmechanismus“. Ein Aufmerksamkeitsmechanismus definiert, auf welche Teile des Eingabevektors sich das Netzwerk konzentrieren sollte, um die richtige Ausgabe zu generieren. Anders ausgedrückt: Ein Aufmerksamkeitsmechanismus ermöglicht es dem Transformatormodell, ein Eingabewort zu verarbeiten und gleichzeitig die relevanten Informationen zu berücksichtigen, die in den anderen Eingabewörtern enthalten sind. Aufmerksamkeitsmechanismen maskieren auch Wörter, die keine relevanten Informationen enthalten.

Transformer Neural Network Architecture

Wir werden später noch detaillierter auf den Aufmerksamkeitsmechanismus eingehen, aber werfen wir zunächst einen Blick darauf die Architektur eines transformatorischen neuronalen Netzwerks auf höherem Niveau.

Im Allgemeinen sieht ein transformatorisches neuronales Netzwerk etwa so aus:

Während sich diese allgemeine Struktur zwischen den Netzwerken ändern kann, bleiben die Kernbestandteile dieselben: Positionskodierungen, Wortvektoren, Aufmerksamkeitsmechanismus, vorwärtsgerichtetes neuronales Netzwerk.

Positionskodierungen und Wortvektoren

Ein Transformator neuronaler Netze arbeitet indem man eine Folge von Eingaben nimmt und diese Eingaben in zwei andere Folgen umwandelt. Der Transformator erzeugt eine Folge von Wortvektoreinbettungen und Positionskodierungen.

Word-Vektor-Einbettungen sind lediglich der in einem numerischen Format dargestellte Text, den das neuronale Netzwerk verarbeiten kann. Bei den Positionskodierungen handelt es sich dagegen um vektorisierte Darstellungen, die Informationen über die Position des aktuellen Wortes im Eingabesatz im Verhältnis zu anderen Wörtern enthalten.

Andere textbasierte neuronale Netzwerkmodelle wie RNNs und LSTMs verwenden Vektoren, um die Wörter in Eingabedaten darzustellen. Diese Vektoreinbettungen ordnen Wörter konstanten Werten zu. Dies stellt jedoch eine Einschränkung dar, da Wörter in unterschiedlichen Kontexten verwendet werden können. Ein Transformatornetzwerk löst dieses Problem, indem es Wortwerte flexibler macht und Sinusfunktionen verwendet, damit die Wortvektoren je nach Position des Wortes im Satz unterschiedliche Werte annehmen können.

Dies ermöglicht es dem neuronalen Netzwerkmodell, Informationen über die relative Position der Eingabewörter beizubehalten, selbst nachdem sich die Vektoren durch die Schichten des Transformatornetzwerks bewegt haben.

Die Positionskodierungen und die Wortvektoreinbettungen werden summiert und dann sowohl an die Encoder- als auch an die Decodernetzwerke weitergeleitet. Während transformatorische neuronale Netzwerke wie RNNs und LSTMs Encoder-/Decoderschemata verwenden, besteht ein wesentlicher Unterschied zwischen ihnen darin, dass alle Eingabedaten gleichzeitig in das Netzwerk eingespeist werden, während bei RNNs/LSTMs die Daten sequentiell übergeben werden.

Die Encoder-Netzwerke sind dafür verantwortlich, die Eingaben in Darstellungen umzuwandeln, aus denen das Netzwerk lernen kann, während die Decoder-Netzwerke das Gegenteil tun und die Codierungen in eine Wahrscheinlichkeitsverteilung umwandeln, die zur Generierung der wahrscheinlichsten Wörter im Ausgabesatz verwendet wird. Entscheidend ist, dass sowohl das Encoder- als auch das Decodernetzwerk über einen Aufmerksamkeitsmechanismus verfügen.

Da GPUs zur Parallelverarbeitung fähig sind, 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, die sogenannte „Mehrkopfaufmerksamkeit“, hilft dem neuronalen Netzwerk, den Kontext eines Wortes innerhalb eines Satzes zu lernen, und ist einer der Hauptvorteile, die Transformatornetzwerke gegenüber RNNs und LSTMs haben.

Der Aufmerksamkeitsmechanismus

Der Aufmerksamkeitsmechanismus ist der wichtigste Teil eines Transformatornetzwerks. Der Aufmerksamkeitsmechanismus ermöglicht es Transformatormodellen, über die Aufmerksamkeitsgrenze eines typischen RNN- oder LSTM-Modells hinauszugehen. Herkömmliche Sequence-to-Sequence-Modelle verwerfen alle Zwischenzustände und verwenden nur den endgültigen Zustand/Kontextvektor, wenn das Decodernetzwerk initialisiert wird, um Vorhersagen über eine Eingabesequenz zu generieren.

Alles außer dem endgültigen Kontextvektor zu verwerfen funktioniert einwandfrei, wenn die Eingabesequenzen relativ klein sind. Mit zunehmender Länge einer Eingabesequenz nimmt jedoch die Leistung des Modells bei Verwendung dieser Methode ab. Dies liegt daran, dass es ziemlich schwierig wird, 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 nutzen, um Kontextvektoren für den Decoder zu erstellen.

Der Aufmerksamkeitsmechanismus definiert, wie wichtig andere Eingabe-Tokens für das Modell sind, wenn Codierungen für ein bestimmtes Token erstellt werden. Beispielsweise ist „es“ ein allgemeines Pronomen, das häufig für Tiere verwendet wird, deren Geschlecht nicht bekannt ist. Ein Aufmerksamkeitsmechanismus würde es einem Transformatormodell ermöglichen, zu bestimmen, dass sich „es“ im aktuellen Kontext auf ein Eichhörnchen bezieht, da es alle relevanten Wörter im Eingabesatz untersuchen kann.

Ein Aufmerksamkeitsmechanismus kann auf drei verschiedene Arten verwendet werden: Encoder-zu-Decoder, nur Encoder, nur Decoder.

Die Encoder-Decoder-Aufmerksamkeit ermöglicht es dem Decoder, Eingabesequenzen beim Generieren einer Ausgabe zu berücksichtigen, während die Nur-Encoder- und Nur-Decoder-Aufmerksamkeitsmechanismen es den Netzwerken ermöglichen, alle Teile der vorherigen bzw. aktuellen Sequenzen zu berücksichtigen.

Der Aufbau eines Aufmerksamkeitsmechanismus lässt sich in fünf Schritte unterteilen:

  1. Berechnen einer Punktzahl für alle Encoderzustände.
  2. Berechnung der Aufmerksamkeitsgewichte
  3. Kontextvektoren berechnen
  4. Der Kontextvektor wird mit der vorherigen Zeitschrittausgabe aktualisiert
  5. Ausgabe mit Decoder generieren

Der erste Schritt besteht darin, den Decoder eine Bewertung für alle Encoderzustände berechnen zu lassen. Dies geschieht durch Training des Decoder-Netzwerks, bei dem es sich um ein grundlegendes neuronales Feed-Forward-Netzwerk handelt. Wenn der Decoder auf das erste Wort in der Eingabesequenz trainiert wird, wurde noch kein interner/verborgener Zustand erstellt, 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 generieren.

Nachdem die Aufmerksamkeitsgewichte berechnet wurden, muss der Kontextvektor berechnet werden. Dies erfolgt durch Multiplikation der Aufmerksamkeitsgewichte und des verborgenen Zustands für jeden Zeitschritt.

Nachdem der Kontextvektor berechnet wurde, wird er zusammen mit dem im vorherigen Zeitschritt generierten Wort verwendet, um das nächste Wort in der Ausgabesequenz zu generieren. Da der Decoder im ersten Zeitschritt keine vorherige Ausgabe hat, auf die er verweisen kann, wird stattdessen häufig ein spezieller „Start“-Token verwendet.

Unterschiede zwischen Transformatoren und RNNs/LSTMs

Lassen Sie uns kurz auf einige Unterschiede zwischen RNNs und LSTMs eingehen.

RNNs verarbeiten Eingaben nacheinander, während ein verborgener Zustandsvektor beibehalten und von den Eingabewörtern geändert wird, während sie sich durch das Netzwerk bewegen. Die verborgenen Zustände eines RNN enthalten normalerweise nur sehr wenige relevante Informationen zu den früheren Eingaben. Neue Eingaben überschreiben häufig den aktuellen Status, was zu Informationsverlusten führt und mit der Zeit die Leistung beeinträchtigt.

Im Gegensatz dazu verarbeiten Transformatormodelle die gesamte Eingabesequenz auf einmal. Der Aufmerksamkeitsmechanismus ermöglicht es, jedes Ausgabewort über jeden Eingabe- und verborgenen Zustand zu informieren, wodurch das Netzwerk bei langen Textteilen zuverlässiger wird.

LSTMs sind modifizierte Versionen von RNNs, die an die Verarbeitung längerer Eingabesequenzen angepasst sind. Die LSTM-Architektur verwendet eine Struktur namens „Gates“ mit „Input Gates“, „Output Gates“ und „Forget Gates“. Das Gated-Design befasst sich mit dem Informationsverlust, der bei RNN-Modellen üblich ist. Daten werden immer noch sequentiell verarbeitet, und das wiederkehrende Design der Architektur macht es schwierig, LSTM-Modelle mithilfe paralleler Berechnungen zu trainieren, wodurch die Trainingszeit insgesamt länger wird.

LSTM-Ingenieure fügten dem Netzwerk häufig Aufmerksamkeitsmechanismen hinzu, die bekanntermaßen die Leistung des Modells verbesserten. Schließlich stellte sich jedoch heraus, dass allein der Aufmerksamkeitsmechanismus die Genauigkeit verbesserte. Diese Entdeckung führte zur Schaffung von Transformatornetzwerken, die dank GPUs Aufmerksamkeitsmechanismen und paralleles Rechnen nutzten.