Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Was ist das Machine-Learning-Modell von Transformer?

Was ist das Machine-Learning-Modell von Transformer?

王林
王林nach vorne
2023-04-08 18:31:061436Durchsuche

Übersetzer |. Li Rui

Rezensent |. Es wird hauptsächlich für fortgeschrittene Anwendungen in der Verarbeitung natürlicher Sprache verwendet. Google nutzt es, um seine Suchmaschinenergebnisse zu verbessern. OpenAI hat Transformer verwendet, um die berühmten GPT-2- und GPT-3-Modelle zu erstellen.

Was ist das Machine-Learning-Modell von Transformer?Seit ihrem Debüt im Jahr 2017 hat sich die Transformer-Architektur weiterentwickelt und in viele verschiedene Varianten erweitert, die von Sprachaufgaben bis hin zu anderen Domänen reichen. Sie wurden für die Zeitreihenvorhersage verwendet. Sie sind die Schlüsselinnovation hinter AlphaFold, dem Proteinstruktur-Vorhersagemodell von DeepMind. Das Quellcode-Generierungsmodell Codex von OpenAI basiert ebenfalls auf Transformer. Transformatoren sind seit Kurzem auch im Bereich der Computer Vision angekommen, wo sie bei vielen komplexen Aufgaben nach und nach Convolutional Neural Networks (CNN) ersetzen.

Forscher suchen immer noch nach Möglichkeiten, Transformer zu verbessern und für neue Anwendungen zu nutzen. Hier ist eine kurze Erklärung, was Transformers spannend macht und wie sie funktionieren.

1. Verwenden Sie neuronale Netze, um Sequenzdaten zu verarbeiten.

Was ist das Machine-Learning-Modell von Transformer?

Herkömmliche Feedforward-Neuronale Netze sind nicht dafür ausgelegt, Sequenzdaten zu verfolgen und jede Eingabe einer Ausgabe zuzuordnen. Es funktioniert gut für Aufgaben wie die Bildklassifizierung, schlägt jedoch bei Sequenzdaten wie Text fehl. Modelle für maschinelles Lernen, die Text verarbeiten, müssen nicht nur jedes Wort verarbeiten, sondern auch berücksichtigen, wie Wörter in der richtigen Reihenfolge angeordnet und zueinander in Beziehung stehen. Und die Bedeutung eines Wortes kann sich abhängig von den anderen Wörtern ändern, die davor und danach im Satz vorkommen.

Vor dem Aufkommen von Transformer waren Recurrent Neural Networks (RNN) die bevorzugte Lösung für die Verarbeitung natürlicher Sprache. Wenn eine Folge von Wörtern vorgegeben wird, verarbeitet ein wiederkehrendes neuronales Netzwerk (RNN) das erste Wort und gibt die Ergebnisse an die Schicht zurück, die das nächste Wort verarbeitet. Dies ermöglicht es, einen ganzen Satz zu verfolgen, anstatt jedes Wort einzeln zu verarbeiten.


Die Mängel rekurrenter neuronaler Netze (RNN) schränken ihren Nutzen ein. Erstens sind sie sehr langsam zu verarbeiten. Da sie Daten sequentiell verarbeiten müssen, können sie die Vorteile paralleler Rechenhardware und Grafikprozessoren (GPUs) nicht für Training und Inferenz nutzen. Zweitens können sie lange Textsequenzen nicht verarbeiten. Je tiefer das rekurrente neuronale Netzwerk (RNN) in den Textausschnitt eindringt, desto geringer wird die Wirkung der ersten paar Wörter des Satzes. Dieses als „verschwindender Farbverlauf“ bekannte Problem tritt auf, wenn zwei verknüpfte Wörter im Text weit voneinander entfernt sind. Drittens erfassen sie nur die Beziehung zwischen einem Wort und den ihm vorangehenden Wörtern. Tatsächlich hängt die Bedeutung von Wörtern von den Wörtern ab, die vor und nach ihnen stehen.

Das Long Short-Term Memory (LSTM)-Netzwerk ist der Nachfolger des Recurrent Neural Network (RNN), das das Problem des verschwindenden Gradienten bis zu einem gewissen Grad lösen und größere Textsequenzen verarbeiten kann. Aber Long Short-Term Memory (LSTM) ist noch langsamer zu trainieren als Recurrent Neural Networks (RNN) und kann dennoch nicht alle Vorteile des parallelen Rechnens nutzen. Sie setzen immer noch auf die serielle Verarbeitung von Textsequenzen.

In einem Artikel aus dem Jahr 2017 mit dem Titel „Aufmerksamkeit ist alles, was benötigt wird“ wurde Transformer vorgestellt und festgestellt, dass Transformer

zwei wichtige Beiträge geleistet hat: Erstens ermöglichten sie die parallele Verarbeitung ganzer Sequenzen und ermöglichten so die Konvertierung sequentieller Geschwindigkeit und Kapazität Deep-Learning-Modelle lassen sich mit beispielloser Geschwindigkeit skalieren. Zweitens führen sie „Aufmerksamkeitsmechanismen“ ein, die Beziehungen zwischen Wörtern in sehr langen Textsequenzen sowohl vorwärts als auch rückwärts verfolgen können.


Was ist das Machine-Learning-Modell von Transformer?

Bevor wir diskutieren, wie das Transformer-Modell funktioniert, ist es notwendig, die Arten von Problemen zu diskutieren, die sequenzielle neuronale Netze lösen.

  • Vector-to-Sequence-Modelle nehmen eine einzelne Eingabe (z. B. ein Bild) und generieren eine Datensequenz (z. B. eine Beschreibung).
  • „Sequence-to-Vector“-Modelle nehmen Sequenzdaten als Eingabe, etwa Produktbewertungen oder Social-Media-Beiträge, und geben einen einzelnen Wert aus, etwa einen Sentiment-Score.
  • Ein „Sequenz-zu-Sequenz“-Modell nimmt als Eingabe eine Sequenz, beispielsweise einen englischen Satz, und gibt eine andere Sequenz aus, beispielsweise die französische Übersetzung dieses Satzes.

Trotz ihrer Unterschiede haben alle diese Modelltypen eines gemeinsam: Sie lernen Ausdrücke. Die Aufgabe eines neuronalen Netzwerks besteht darin, einen Datentyp in einen anderen Datentyp umzuwandeln. Während des Trainings passt die verborgene Schicht des neuronalen Netzwerks (die Schicht zwischen Eingabe und Ausgabe) ihre Parameter so an, dass sie die Eigenschaften des Eingabedatentyps am besten darstellen, und ordnet sie der Ausgabe zu. Der ursprüngliche Transformer wurde als Sequenz-zu-Sequenz-Modell (seq2seq) für die maschinelle Übersetzung konzipiert (Sequenz-zu-Sequenz-Modelle sind natürlich nicht auf Übersetzungsaufgaben beschränkt). Es besteht aus einem Encodermodul, das die Eingabezeichenfolge aus der Quellsprache in einen Vektor komprimiert, der Wörter und ihre Beziehungen zueinander darstellt. Das Decodermodul wandelt den codierten Vektor in eine Textzeichenfolge in der Zielsprache um.

2. Markieren und Einbetten

Was ist das Machine-Learning-Modell von Transformer?

Eingabetext muss verarbeitet und in ein einheitliches Format konvertiert werden, bevor er in Transformer eingegeben werden kann. Zunächst wird der Text durch einen „Tokenizer“ geleitet, der ihn in einzelne Zeichenblöcke zerlegt, die einzeln verarbeitet werden können. Der Tokenisierungsalgorithmus kann von der Anwendung abhängen. In den meisten Fällen zählt jedes Wort und jedes Satzzeichen ungefähr als ein Token. Einige Suffixe und Präfixe gelten als separate Token (z. B. „ize“, „ly“ und „pre“). Der Tokenizer generiert eine Liste von Zahlen, die die Token-IDs des Eingabetexts darstellen.

Die Token werden dann in „Worteinbettungen“ umgewandelt. Worteinbettung ist ein Vektor, der versucht, den Wert eines Wortes in einem mehrdimensionalen Raum zu erfassen. Beispielsweise können die Wörter „Katze“ und „Hund“ in einigen Dimensionen ähnliche Werte haben, da sie beide in Sätzen über Tiere und Haustiere verwendet werden. In anderen Dimensionen, die Katzen von Hunden unterscheiden, ist „Katze“ jedoch eher „Löwe“ als „Wolf“. Ebenso liegen „Paris“ und „London“ wahrscheinlich näher beieinander, da es sich bei beiden um Städte handelt. Aufgrund der unterschiedlichen Dimensionen eines Landes ist „London“ jedoch näher an „England“ und „Paris“ eher an „Frankreich“. Und Worteinbettungen haben typischerweise Hunderte von Dimensionen.

Worteinbettungen werden über Einbettungsmodelle erstellt, die separat vom Transformer trainiert werden. Es gibt mehrere vorab trainierte Einbettungsmodelle für Sprachaufgaben.

3. Aufmerksamkeitsschicht

Was ist das Machine-Learning-Modell von Transformer?

Sobald der Satz in eine Liste von Worteinbettungen umgewandelt wurde, wird er in das Encodermodul des Transformers eingespeist. Im Gegensatz zu den Modellen „Recurrent Neural Network“ (RNN) und „Long Short-Term Memory“ (LSTM) empfängt Transformer nicht jeweils eine Eingabe. Es kann Einbettungswerte für ganze Sätze empfangen und parallel verarbeiten. Dies macht Transformers recheneffizienter als ihre Vorgänger und ermöglicht es ihnen außerdem, Textszenarien sowohl in Vorwärts- als auch in Rückwärtssequenzen zu untersuchen.

Um die Reihenfolge der Wörter im Satz beizubehalten, wendet der Transformer eine „Positionskodierung“ an, was im Grunde bedeutet, dass er den Wert jedes Einbettungsvektors ändert, um seine Position im Text darzustellen.

Als nächstes wird die Eingabe an den ersten Encoderblock weitergeleitet, der sie über eine „Aufmerksamkeitsschicht“ verarbeitet. Die Aufmerksamkeitsschicht versucht, die Beziehungen zwischen Wörtern in einem Satz zu erfassen. Betrachten Sie zum Beispiel den Satz „Die große schwarze Katze überquerte die Straße, nachdem ihr eine Flasche auf die Seite gefallen war.“ Hier muss das Modell „it“ mit „cat“ und „its“ mit „bottle“ verknüpfen. Daher sollten weitere Assoziationen entstehen, etwa „groß“ und „Katze“ oder „gekreuzt“ und „Katze“. Andernfalls erhält die Aufmerksamkeitsschicht eine Liste von Worteinbettungen, die einzelne Wortwerte darstellen, und generiert eine Liste von Vektoren, die einzelne Wörter und ihre Beziehungen darstellen. Die Aufmerksamkeitsschicht enthält mehrere „Aufmerksamkeitsköpfe“, von denen jeder unterschiedliche Arten von Beziehungen zwischen Wörtern erfassen kann.

Die Ausgabe der Aufmerksamkeitsschicht wird einem Feedforward-Neuronalen Netzwerk zugeführt, das sie in eine Vektordarstellung umwandelt und an die nächste Aufmerksamkeitsschicht sendet. Transformer
enthalten mehrere Aufmerksamkeitsblöcke und Feedforward-Ebenen, um nach und nach komplexere Zusammenhänge zu erfassen.

Das Decodermodul hat die Aufgabe, die Aufmerksamkeitsvektoren des Encoders in Ausgabedaten (z. B. eine übersetzte Version des Eingabetextes) umzuwandeln. Während der Trainingsphase hat der Decoder Zugriff auf die vom Encoder erzeugten Aufmerksamkeitsvektoren und die erwarteten Ergebnisse (z. B. übersetzte Zeichenfolgen).

Der Decoder verwendet die gleichen Tokenisierungs-, Worteinbettungs- und Aufmerksamkeitsmechanismen, um die erwarteten Ergebnisse zu verarbeiten und Aufmerksamkeitsvektoren zu erstellen. Anschließend werden dieser Aufmerksamkeitsvektor und die Aufmerksamkeitsschicht im Encodermodul übergeben, um eine Beziehung zwischen den Eingabe- und Ausgabewerten herzustellen. In einer Übersetzungsanwendung ist dies der Teil, in dem Wörter in der Ausgangs- und der Zielsprache einander zugeordnet werden. Wie das Encodermodul werden die Aufmerksamkeitsvektoren des Decoders durch Feedforward-Schichten geleitet. Das Ergebnis wird dann auf einen sehr großen Pool an Vektoren abgebildet, d. h. auf die Größe der Zieldaten (im Falle einer Übersetzung kann dies Zehntausende Wörter umfassen). 4. Training Transformer Das Encodermodul empfängt und verarbeitet den vollständigen Eingabestring. Der Decoder empfängt jedoch eine maskierte Version der Ausgabezeichenfolge (ein Wort nach dem anderen) und versucht, eine Zuordnung zwischen dem codierten Aufmerksamkeitsvektor und dem erwarteten Ergebnis herzustellen. Der Encoder versucht, das nächste Wort vorherzusagen und nimmt basierend auf der Differenz zwischen seiner Ausgabe und dem erwarteten Ergebnis Korrekturen vor. Diese Rückmeldung ermöglicht es dem Konverter, die Parameter des Encoders und Decoders zu ändern und nach und nach die richtige Zuordnung zwischen den Eingabe- und Ausgabesprachen zu erstellen.

Je mehr Trainingsdaten und Parameter ein Transformer hat, desto besser ist er in der Lage, Kohärenz und Konsistenz über längere Textsequenzen hinweg aufrechtzuerhalten.

5. Änderungen in Transformer

Im oben untersuchten Beispiel der maschinellen Übersetzung lernt das Encodermodul von Transformer die Beziehung zwischen englischen Wörtern und Sätzen, während der Decoder die Zuordnung zwischen Englisch und Französisch lernt.

Aber nicht alle Transformer-Anwendungen erfordern Encoder- und Decodermodule. Beispielsweise verwendet die GPT-Familie großer Sprachmodelle einen Stapel von Decodermodulen, um Text zu generieren. BERT ist eine weitere Variante des von Google-Forschern entwickelten Transformer-Modells, die jedoch nur das Encoder-Modul verwendet.

Der Vorteil einiger dieser Architekturen besteht darin, dass sie durch selbstüberwachtes Lernen oder unüberwachte Methoden trainiert werden können. BERT beispielsweise führt den Großteil seines Trainings durch, indem es einen großen Korpus unbeschrifteten Textes nimmt, Teile davon ausblendet und versucht, die fehlenden Teile vorherzusagen. Anschließend passt es seine Parameter an, je nachdem, wie nah oder weit seine Vorhersagen von den tatsächlichen Daten entfernt sind. Durch die kontinuierliche Wiederholung dieses Vorgangs erfasst BERT die Beziehung zwischen verschiedenen Wörtern in verschiedenen Szenen. Nach dieser Vortrainingsphase kann BERT für nachgelagerte Aufgaben wie die Beantwortung von Fragen, die Zusammenfassung von Texten oder die Stimmungsanalyse durch Training anhand einer kleinen Anzahl beschrifteter Beispiele verfeinert werden. Der Einsatz von unbeaufsichtigtem und selbstüberwachtem Vortraining kann den Aufwand für die Kommentierung von Trainingsdaten reduzieren.

Es gibt noch viel mehr über Transformers und die neuen Apps, die sie freischalten, was den Rahmen dieses Artikels sprengen würde. Forscher suchen immer noch nach Möglichkeiten, mehr Hilfe von Transformer zu erhalten.

Transformer löste auch Diskussionen über Sprachverständnis und allgemeine künstliche Intelligenz aus. Klar ist, dass der Transformer, wie andere neuronale Netze auch, ein statistisches Modell ist, das in der Lage ist, Regelmäßigkeiten in Daten auf clevere und raffinierte Weise zu erfassen. Obwohl sie Sprache nicht so „verstehen“ wie Menschen, ist ihre Entwicklung dennoch spannend und hat noch viel mehr zu bieten.

Originallink: https://bdtechtalks.com/2022/05/02/what-is-the-transformer/

Das obige ist der detaillierte Inhalt vonWas ist das Machine-Learning-Modell von Transformer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen