Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

WBOY
Freigeben: 2023-06-05 18:05:27
nach vorne
1637 Leute haben es durchsucht

Bevor wir Transformer vorstellen, werfen wir einen Blick auf die Struktur von RNN

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Wenn Sie ein gewisses Verständnis von RNN haben, werden Sie definitiv wissen, dass RNN zwei offensichtliche Probleme hat

  • Effizienzproblem: Es muss so sein Wort für Wort kann das nächste Wort erst verarbeitet werden, wenn der verborgene Zustand des vorherigen Wortes ausgegeben wird. Wenn der Übertragungsabstand zu lang ist, kommt es zu Gradientenverschwinden, Gradientenexplosion und Vergessensproblemen Übertragungen und Vergessensproblemen wurden verschiedene RNN-Zellen entworfen, die beiden bekanntesten sind LSTM und GRU
  • LSTM (Long Short Term Memory)

GRU (Gated Recurrent Unit)

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Aber um eine Analogie eines Online-Bloggers zu zitieren: Das ist so, als würde man die Räder einer Kutsche austauschen.

Da ist also die Kernstruktur, die wir in diesem Artikel vorstellen werden – Transformer. Transformer ist eine von Google Brain 2017 vorgeschlagene Arbeit. Es überarbeitet die Schwächen von RNN, behebt RNN-Effizienzprobleme und Übertragungsfehler und übertrifft die Leistung von RNN in vielen Punkten. Die Grundstruktur von Transformer ist in der folgenden Abbildung dargestellt. Es handelt sich um eine N-in-N-out-Struktur, das heißt, jede Transformer-Einheit entspricht einer Schicht einer RNN-Schicht als Eingabe und stellt dann jedes Wort im Satz bereit. Jedes Wort erzeugt eine Ausgabe. Im Gegensatz zu RNN kann Transformer jedoch alle Wörter im Satz gleichzeitig verarbeiten, und der Betriebsabstand zwischen zwei beliebigen Wörtern beträgt 1. Dies löst effektiv das oben erwähnte Effizienzproblem und die Entfernungsfrage von RNN.

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Jede Transformer-Einheit verfügt über zwei wichtigste Unterschichten, nämlich die Self-Attention-Schicht und die Feed-Forward-Schicht. Die detaillierten Strukturen dieser beiden Schichten werden später vorgestellt. Der Artikel verwendet Transformer, um ein Seq2Seq ähnliches Sprachübersetzungsmodell zu erstellen, und entwirft zwei verschiedene Transformer-Strukturen für Encoder und Decoder.

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Im Vergleich zum Encoder-Transformer verfügt der Decoder-Transformer über eine zusätzliche Encoder-Decoder-Aufmerksamkeitsschicht, die zum Empfangen der Ausgabe vom Encoder als Parameter verwendet wird. Solange sie schließlich wie in der folgenden Abbildung gezeigt gestapelt sind, kann die Struktur von Transformer Seq2Seq vervollständigt werden.

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Geben Sie mir ein Beispiel für die Verwendung dieses Transformer Seq2Seq für die Übersetzung

Zuerst kodiert der Transformer den Satz in der Originalsprache, um Speicher zu erhalten. Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Bei der ersten Dekodierung hat die Eingabe nur ein -Zeichen, das den Satzanfang anzeigt.

  • Der Decoder erhält aus dieser einzigartigen Eingabe eine eindeutige Ausgabe, die zur Vorhersage des ersten Wortes des Satzes verwendet wird.
  • Zum zweiten Mal dekodieren. Die Eingabe wird zu und das erste Wort des Satzes (Grundwahrheit oder Vorhersage aus dem vorherigen Schritt). wird verwendet, um das zweite Wort des Satzes vorherzusagen. Analog dazu (der Prozess ist Seq2Seq sehr ähnlich)
  • Nachdem wir die allgemeine Struktur von Transformer verstanden haben und wissen, wie man damit Übersetzungsaufgaben erledigt, werfen wir einen Blick auf die detaillierte Struktur von Transformer:

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Die Kernkomponenten sind die oben erwähnten Self-Attention- und Feed-Forward-Netzwerke, aber es gibt noch viele andere Details, und dann werden wir beginnen, sie zu strukturieren einer nach dem anderen, um Transformer zu interpretieren.

Selbstaufmerksamkeit

Selbstaufmerksamkeit ist etwas in einem Satz Wort macht Aufmerksamkeit ein für alle Mal, Worte seiner selbst. Berechnen Sie das Gewicht jedes Wortes für dieses Wort und stellen Sie dieses Wort dann als gewichtete Summe aller Wörter dar. Jede Selbstaufmerksamkeitsoperation ähnelt einer Faltungsoperation oder einer Aggregationsoperation für jedes Wort. Die spezifische Operation ist wie folgt:

Zunächst durchläuft jedes Wort eine lineare Änderung durch drei Matrizen Wq, Wk, Wv, die in drei Teile unterteilt sind, um für jedes Wort drei Vektoren zu erzeugen einer eigenen Abfrage, eines eigenen Schlüssels und eines eigenen Vektors. Wenn Sie „Selbstaufmerksamkeit“ mit einem Wort als Mittelpunkt durchführen, wird der Schlüsselvektor des Wortes verwendet, um das Skalarprodukt mit dem Abfragevektor jedes Wortes zu bilden, und dann wird die Gewichtung durch Softmax normalisiert. Verwenden Sie dann diese Gewichte, um die gewichtete Summe der Vektoren aller Wörter als Ausgabe dieses Wortes zu berechnen. Der spezifische Prozess ist in der folgenden Abbildung dargestellt

Vor der Normalisierung muss er durch Division durch die Dimension dk des Vektors standardisiert werden, damit die endgültige Selbstaufmerksamkeit ermittelt werden kann ausgedrückt als

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Schließlich akzeptiert jede Selbstaufmerksamkeit die Eingabe von n Wortvektoren und gibt n aggregierte Vektoren aus.

Wie oben erwähnt, unterscheidet sich die Selbstaufmerksamkeit im Encoder von der im Decoder. Die Werte Q, K und V im Encoder stammen alle aus der Ausgabe von die obere Schichteinheit, während nur Q des Decoders vom Ausgang der vorherigen Decodereinheit stammt und sowohl K als auch V vom Ausgang der letzten Schicht des Encoders stammen. Mit anderen Worten: Der Decoder berechnet die Gewichtung anhand des aktuellen Status und der Ausgabe des Encoders und gewichtet dann die Codierung des Encoders, um den Status der nächsten Ebene zu erhalten. #? Außerdem gibt es einen weiteren Unterschied zwischen Decoder und Encoder: Die Eingabeschicht jeder Decoder-Einheit muss zuerst eine Masked Attention-Schicht durchlaufen. Was ist also der Unterschied zwischen Masked und der gewöhnlichen Version von Attention?

Encoder Da der gesamte Satz codiert werden muss, muss bei jedem Wort der Kontext berücksichtigt werden. Daher sind während des Berechnungsprozesses jedes Wortes alle Wörter im Satz sichtbar. Der Decoder ähnelt jedoch dem Decoder in Seq2Seq. Jedes Wort kann nur den Status des vorherigen Wortes sehen, es handelt sich also um eine einseitige Selbstaufmerksamkeitsstruktur.

Die Implementierung der maskierten Aufmerksamkeit ist ebenfalls sehr einfach, solange sie vor dem Softmax-Schritt der gewöhnlichen Selbstaufmerksamkeit mit (&) der vorherigen unteren Dreiecksmatrix M kombiniert wird #🎜 ## 🎜 #

Multi-Head Aufmerksamkeit besteht darin, die oben genannte Aufmerksamkeit h-mal auszuführen und dann die h-Ausgaben zu verknüpfen, um die endgültige Ausgabe zu erhalten. Dies kann die Stabilität des Algorithmus erheblich verbessern und hat relevante Anwendungen in vielen aufmerksamkeitsbezogenen Arbeiten. Bei der Implementierung von Transformer wird W um das h-fache erweitert, um die Effizienz von Multi-Head zu verbessern, und dann werden k, q und v verschiedener Köpfe desselben Wortes für die gleichzeitige Berechnung durch Ansicht (Umformung) zusammen angeordnet ) und Transponierungsoperationen, um die Berechnung abzuschließen. Anschließend wird das Spleißen durch Umformen und Transponieren erneut abgeschlossen, was einer parallelen Verarbeitung aller Köpfe entspricht.

Positionsweise Feed Forward Networks

Encoder neutralisiert Decoder N Vektoren, die nach der Aufmerksamkeit ausgegeben werden (hier ist n die Anzahl der Wörter), werden jeweils in eine vollständig verbundene Schicht eingegeben, um ein Position-für-Position-Feedforward-Netzwerk zu vervollständigen.

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Hinzufügen & Normieren

ist ein Restnetzwerk, das lediglich die Eingabe einer Schicht und deren standardisierte Ausgabe hinzufügt. Auf jede Self-Attention-Ebene und FFN-Ebene in Transformer folgt eine Add & Norm-Ebene.

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Positionskodierung

#🎜 🎜#

Da es in Transformer weder RNN noch CNN gibt, werden alle Wörter im Satz gleich behandelt, sodass keine sequentielle Beziehung zwischen Wörtern besteht. Mit anderen Worten: Es weist wahrscheinlich die gleichen Mängel auf wie das Bag-of-Words-Modell. Um dieses Problem zu lösen, schlug Transformer die Positional Encoding-Lösung vor, die darin besteht, jedem Eingabewortvektor einen festen Vektor zu überlagern, um seine Position darzustellen. Die im Artikel verwendete Positionskodierung lautet wie folgt:

wobei pos die Position des Wortes im Satz und i die i-te Position im Wortvektor ist Das heißt, der Wortvektor jedes Wortes ist Eine Zeile wird überlagert, und dann wird jeder Spalte eine Welle mit einer anderen Phase oder einer allmählich zunehmenden Wellenlänge überlagert, um die Position eindeutig zu unterscheiden.

Transformer-Workflow

Der Workflow von Transformer ist wie oben beschrieben Das Spleißen jedes Unterprozesses

  • Der eingegebene Wortvektor wird zuerst mit Positionskodierung überlagert und dann in den Transformer eingegeben#🎜 🎜#
  • Jeder Encoder-Transformer führt einen Multi-Head-Selbstaufmerksamkeits->Hinzufügen & Normalisieren->FFN->Hinzufügen & Normalisieren-Prozess durch und gibt dann die Ausgabe in den nächsten Encoder ein#🎜 🎜 #
  • Die Ausgabe des letzten Encoders wird als Speicher beibehalten
  • Jeder Decoder-Transformator führt einen maskierten Multi- Kopf-Selbstaufmerksamkeit->Mehrkopf-Selbstaufmerksamkeit->Hinzufügen & Normalisieren->FFN->Hinzufügen & Normalisieren-Prozess, bei dem K und V der Mehrkopf-Selbstaufmerksamkeit aus dem Speicher des Encoders stammen. Geben Sie die letzte Einbettungsebene aus, die gemäß den Aufgabenanforderungen erforderlich ist.
  • Der Ausgabevektor von Transformer kann für verschiedene nachgelagerte Aufgaben verwendet werden
  • # 🎜 🎜#GitHub-Link: https://github.com/harvardnlp/annotated-transformer

Post Scriptum

# 🎜 🎜#

Obwohl im Transformer-Artikel ein Übersetzungsmodell in natürlicher Sprache vorgeschlagen wird, wird dieses Modell in vielen Artikeln als Transformer bezeichnet. Aber wir neigen immer noch dazu, die Unterstruktur des Encoders oder Decoders, der Selbstaufmerksamkeit verwendet, im Artikel als Transformer zu bezeichnen. Der Text und der Quellcode enthalten auch viele andere Optimierungen wie dynamische Änderungen der Lernrate, Residual Dropout und Label Smoothing, auf die ich hier nicht näher eingehen werde. Interessierte Freunde können die entsprechenden Referenzen lesen, um mehr zu erfahren.

Einseitiges zweistufiges Trainingsmodell – OpenAI GPT

GPT (Generative Pre-Training) ist ein von OpenAI im Jahr 2018 vorgeschlagenes Modell Verwenden Sie das Transformer-Modell, um verschiedene Probleme in natürlicher Sprache zu lösen, z. B. Modelle für Klassifizierung, Argumentation, Beantwortung von Fragen, Ähnlichkeit und andere Anwendungen. GPT verwendet den Trainingsmodus „Vortraining + Feinabstimmung“, der die Nutzung einer großen Menge unbeschrifteter Daten ermöglicht und die Wirksamkeit dieser Probleme erheblich verbessert.

GPT ist einer der Versuche, Transformer zur Ausführung verschiedener Aufgaben in natürlicher Sprache zu verwenden. Es weist hauptsächlich die folgenden drei Punkte auf: #🎜🎜 ## 🎜🎜#

Pre-Training-Weg

Einweg-Transformator-Modell
  • Feinabstimmung und Änderungen in verschiedenen Eingabedatenstrukturen
  • Wenn Sie das Prinzip von Transformer bereits verstehen, müssen Sie nur die oben genannten drei Inhalte verstehen In der Lage zu sein, GPT zu verstehen, ist tiefer.
Trainingsmethode vor dem Training

Viele maschinelle Lernaufgaben erfordern gekennzeichnete Datensätze als Eingabe. Aber um uns herum gibt es eine große Menge unbeschrifteter Daten wie Texte, Bilder, Code usw. Die Kennzeichnung dieser Daten erfordert viel Personal und Zeit, und die Geschwindigkeit der Kennzeichnung ist weitaus geringer als die Geschwindigkeit der Datengenerierung, sodass gekennzeichnete Daten oft nur einen kleinen Teil des gesamten Datensatzes einnehmen. Da die Rechenleistung immer besser wird, nimmt die Datenmenge, die Computer verarbeiten können, allmählich zu. Es wäre eine Verschwendung, wenn diese unbeschrifteten Daten nicht sinnvoll genutzt werden könnten.

Daher erfreut sich das zweistufige Modell aus halbüberwachtem Lernen und Vortraining + Feinabstimmung immer größerer Beliebtheit. Die gebräuchlichste zweistufige Methode ist Word2Vec, die eine große Menge unbeschrifteten Textes verwendet, um Wortvektoren mit bestimmten semantischen Informationen zu trainieren, und diese Wortvektoren dann als Eingabe für nachgelagerte maschinelle Lernaufgaben verwendet, was die Generalisierungsfähigkeit erheblich verbessern kann Downstream-Modell.

Aber es gibt ein Problem mit Word2Vec, das heißt, ein einzelnes Wort kann nur eine Einbettung haben. Auf diese Weise kann Polysemie nicht gut dargestellt werden.

ELMo dachte zunächst darüber nach, Kontextinformationen für jeden Vokabularsatz in der Vortrainingsphase bereitzustellen, indem er ein auf Bi-LSTM basierendes Sprachmodell verwendete, um dem Wort kontextuelle Semantik zu verleihen Vektor. Informationen:

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Die obige Formel stellt den linken bzw. rechten LSTM-RNN dar und sie teilen sich die Eingabe Wortvektor Die spezifische Struktur ist in der folgenden Abbildung dargestellt: #🎜 🎜#

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Aber ELMo verwendet RNN, um das Vortraining abzuschließen Sprachmodell. Wie kann ich Transformer verwenden, um das Vortraining abzuschließen?

Einwegtransformatorstruktur

OpenAI GPT übernimmt ein- Art und Weise, wie Transformer diese Vortrainingsaufgabe abschließt.

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Was ist ein Einwegtransformator? Im Transformer-Artikel wird erwähnt, dass der von Encoder und Decoder verwendete Transformer-Block unterschiedlich ist. Im Decoder-Block wird maskierte Selbstaufmerksamkeit verwendet, das heißt, jedes Wort im Satz kann nur auf alle vorherigen Wörter achten, einschließlich sich selbst. Dies ist ein Einwegtransformator. Die von GPT verwendete Transformer-Struktur ersetzt die Selbstaufmerksamkeit im Encoder durch die maskierte Selbstaufmerksamkeit. Die spezifische Struktur ist in der folgenden Abbildung dargestellt:

#🎜🎜 ##🎜 🎜#Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2 Da ein Einweg-Transformer verwendet wird, sind nur die oben genannten Wörter zu sehen, daher lautet das Sprachmodell:

#🎜 🎜## 🎜🎜#

Der Trainingsprozess ist eigentlich sehr einfach. Er besteht darin, die Wortvektoren von n Wörtern im Satz (der erste ist ) plus Positionscodierung hinzuzufügen und sie dann in den Satz einzugeben Der zuvor erwähnte Transfromer sagt n jeder Ausgabe das nächste Wort an dieser Position voraus ( sagt das erste Wort im Satz voraus und das Vorhersageergebnis des letzten Wortes wird nicht für das Sprachmodelltraining verwendet).

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Aufgrund der Verwendung von Masked Self-Attention werden die Wörter an jeder Position Folgendes nicht „sehen“. Das heißt, die „Antwort“ kann während der Vorhersage nicht gesehen werden, was die Rationalität des Modells gewährleistet. Aus diesem Grund verwendet OpenAI einen Einwegtransformator.

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Feinabstimmung und Änderungen in verschiedenen Eingabedatenstrukturen

Der nächste Schritt besteht darin, in den zweiten Schritt des Modelltrainings einzutreten und eine kleine Menge beschrifteter Daten zur Feinabstimmung der Modellparameter zu verwenden.

Wir haben die Ausgabe des letzten Wortes im vorherigen Schritt nicht verwendet. In diesem Schritt verwenden wir diese Ausgabe als Eingabe für nachgelagertes überwachtes Lernen.

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Um zu vermeiden, dass die Feinabstimmung dazu führt, dass das Modell in eine Überanpassung gerät, werden in dem Artikel auch Methoden für zusätzliche Trainingsziele erwähnt, ähnlich einem Multitasking-Modell oder halbüberwachtem Lernen. Die spezifische Methode besteht darin, das Vorhersageergebnis des letzten Wortes für überwachtes Lernen zu verwenden und gleichzeitig das unbeaufsichtigte Training der vorherigen Wörter fortzusetzen, sodass die endgültige Verlustfunktion wie folgt lautet:

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Für verschiedene Aufgaben müssen die Eingabedaten eingegeben werden geändert werden. Das Format:

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

  • Klassifizierung: Für Klassifizierungsprobleme ist keine Änderung erforderlich
  • Folge: Für Inferenzprobleme können die Prioritäten und Hypothesen durch ein Trennzeichen getrennt werden
  • Ähnlichkeit: Für das Ähnlichkeitsproblem gilt, dass das Modell einseitig ist, die Ähnlichkeit jedoch nichts mit der Reihenfolge zu tun hat. Daher ist es notwendig, die Ergebnisse der beiden Eingaben zu addieren, nachdem die Reihenfolge der beiden Sätze umgekehrt wurde, um die endgültige Schätzung zu erhalten Antworten und dann werden Vorhersagen getroffen
  • GitHub-Link: https://github.com/openai/finetune-transformer-lm

Post Scriptum

OpenAI GPT basiert auf dem Verwendung von Transformer und der zweistufigen Trainingsmethode Es hat eine gute Erkundung gemacht und sehr gute Ergebnisse erzielt, was später den Weg für BERT ebnete. Bidirektionales zweistufiges Trainingsmodell – BERT Es ist ein Starmodell, das sofort nach seiner Einführung populär wurde. Wie GPT übernimmt BERT die Trainingsmethode „Vortraining + Feinabstimmung“ und erzielt bessere Ergebnisse bei Aufgaben wie Klassifizierung und Kennzeichnung.

BERT ist GPT sehr ähnlich. Beide sind zweistufige Trainingsmodelle, die auf Transformer basieren. Beide sind in zwei Phasen unterteilt: Pre-Training und Fine-Tuning. Beide trainieren ein universelles Modell in der Pre-Training-Phase .Transformer-Modell und optimieren Sie dann die Parameter dieses Modells in der Feinabstimmungsphase, um es an verschiedene nachgelagerte Aufgaben anzupassen.

Obwohl BERT und GPT sehr ähnlich aussehen, unterscheiden sich ihre Trainingsziele sowie Modellstrukturen und -verwendungen dennoch geringfügig:

GPT verwendet einen Einwegtransformator, während BERT einen bidirektionalen Transformator verwendet, also keine Maske Bedienung ist erforderlich;

Die unterschiedlichen Strukturen führen direkt zu unterschiedlichen Trainingszielen in der Vortrainingsphase;

  • Bidirektionaler Transformator
  • BERT verwendet den Transformator ohne Maske, der genau derselbe ist wie der Encoder-Transformer Struktur im Transformer-Artikel:
Da in GPT das Training des Sprachmodells abgeschlossen sein muss, ist ein Vortraining erforderlich, um bei der Vorhersage des nächsten Wortes nur die aktuellen und aktuellen Wörter sehen zu können Dies ist auch der Grund, warum GPT die ursprüngliche Zwei-Wege-Struktur von Transformer aufgegeben und eine Einweg-Struktur übernommen hat.

BERT verwendet einen Zwei-Wege-Transformer, um gleichzeitig Kontextinformationen zu erhalten, anstatt wie GPT vollständig auf Kontextinformationen zu verzichten. Auf diese Weise ist es jedoch nicht mehr möglich, ein normales Sprachmodell wie GPT für das Vortraining zu verwenden, da die Struktur von BERT dazu führt, dass die Ausgabe jedes Transformers den gesamten Satz anzeigt, unabhängig davon, was Sie mit dieser Ausgabe vorhersagen. Sie werden es „sehen“ „Referenzantwort, das ist die Frage „sehen Sie sich selbst“. Obwohl ELMo ein bidirektionales RNN verwendet, sind die beiden RNNs unabhängig, sodass das Problem des Selbstsehens vermieden werden kann.

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Vortrainingsphase

Wenn BERT dann das bidirektionale Transformer-Modell verwenden möchte, muss es das in GPT als Zielfunktion vor dem Training verwendete Sprachmodell aufgeben. Stattdessen schlägt BERT eine völlig andere Pre-Training-Methode vor.

  • Masked Language Model (MLM)

In Transformer möchten wir nicht nur die oben genannten Informationen wissen, sondern auch die folgenden Informationen, aber gleichzeitig müssen wir sicherstellen, dass das Ganze Wenn das Modell die vorherzusagenden Informationen nicht kennt, teilen Sie dem Modell die Informationen über das Wort einfach nicht mit. Das heißt, BERT gräbt einige Wörter aus, die im Eingabesatz vorhergesagt werden müssen, analysiert dann den Satz anhand des Kontexts und verwendet schließlich die Ausgabe seiner entsprechenden Position, um die ausgegrabenen Wörter vorherzusagen. Es ist eigentlich so, als würde man einen Lückentext machen.

Das direkte Ersetzen einer großen Anzahl von Wörtern durch -Tags kann jedoch zu Problemen führen. Das Modell geht möglicherweise davon aus, dass es nur die entsprechende Ausgabe von vorhersagen muss, während dies bei der Ausgabe an anderen Positionen der Fall ist egal. Gleichzeitig gibt es in den Eingabedaten der Feinabstimmungsphase kein -Tag und es besteht auch das Problem einer unterschiedlichen Datenverteilung. Um die Auswirkungen eines solchen Trainings zu reduzieren, wendet BERT die folgende Methode an:

1. Wählen Sie zufällig 15 % der Wörter in den Eingabedaten für die Vorhersage aus,

2,80 % die Wörter Wenn der Vektor eingegeben wird, wird er durch

ersetzt. 10 % der Wortvektoren werden bei der Eingabe durch die Wortvektoren anderer Wörter ersetzt

Auf diese Weise ist es gleichbedeutend damit, dem Modell zu sagen, dass ich Ihnen möglicherweise eine Antwort geben kann, oder dass ich Ihnen möglicherweise keine Antwort gebe, oder dass ich Ihnen möglicherweise eine falsche Antwort gebe. Wo es gibt, werde ich Ihre Antwort überprüfen Antwort, und wo es kein gibt, werde ich wahrscheinlich auch Ihre Antwort überprüfen, damit das -Tag keine besondere Bedeutung für Sie hat, Sie müssen also die Ausgabe für alle gut vorhersagen Positionen sowieso.

Next Sentence Prediction (NSP)

  • BERT schlug auch eine andere Pre-Training-Methode NSP vor, die gleichzeitig mit MLM durchgeführt wird, um ein Multitasking-Pre-Training zu bilden. Bei dieser Vortrainingsmethode werden zwei aufeinanderfolgende Sätze in den Transformer eingegeben. Dem linken Satz wird ein -Tag vorangestellt, und seine Ausgabe wird verwendet, um zu bestimmen, ob zwischen den beiden Sätzen eine kontinuierliche Kontextbeziehung besteht. Dabei kommt die Negativ-Probenahmemethode zum Einsatz, wobei Positiv- und Negativproben jeweils 50 % ausmachen.

Um den Kontext zweier Sätze zu unterscheiden, fügt BERT nicht nur die Positionskodierung hinzu, sondern auch eine Segmenteinbettung, die während des Vortrainings erlernt werden muss, um die beiden Sätze zu unterscheiden. Auf diese Weise besteht die Eingabe von BERT aus der Addition von drei Teilen: Wortvektor, Positionsvektor und Segmentvektor. Zusätzlich werden die beiden Sätze durch das Tag unterschieden.

Das schematische Diagramm des gesamten Vortrainings sieht wie folgt aus:

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

FeinabstimmungsphaseDetaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

BERTs Feinabstimmungsphase unterscheidet sich nicht wesentlich von GPT. Aufgrund der Verwendung eines Zwei-Wege-Transformers wird das von GPT in der Feinabstimmungsphase verwendete Hilfstrainingsziel, das Sprachmodell, aufgegeben. Darüber hinaus wird der Ausgabevektor für die Klassifizierungsvorhersage von der Ausgabeposition des letzten Wortes von GPT zur Position von am Satzanfang geändert. Das schematische Diagramm der Feinabstimmung für verschiedene Aufgaben lautet wie folgt:

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

GitHub-Link: https ://github .com/google-research/bert

Post Scriptum

Ich persönlich glaube, dass BERT nur ein Kompromiss des GPT-Modells ist. Um in beiden Phasen gleichzeitig Satzkontextinformationen zu erhalten, wird ein bidirektionales Transformer-Modell verwendet. Dafür müssen wir jedoch den Preis zahlen, das traditionelle Sprachmodell aufzugeben und stattdessen eine komplexere Methode wie MLM + NSP für das Vortraining zu verwenden.

Multitask-Modell – MT-DNN

MT-DNN (Multi-Task Deep Neural Networks) verwendet immer noch die zweite Stufe von BERT Trainingsmethoden und bidirektionaler Transformator. In der Vortrainingsphase ist MT-DNN fast identisch mit BERT, in der Feinabstimmungsphase verwendet MT-DNN jedoch eine Multitasking-Feinabstimmungsmethode. Gleichzeitig wird die Kontexteinbettungsausgabe von Transformer für das Training von Aufgaben wie der Klassifizierung einzelner Sätze, der Ähnlichkeit von Textpaaren, der Klassifizierung von Textpaaren sowie von Fragen und Antworten verwendet. Die gesamte Struktur ist unten dargestellt:

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

GitHub-Link: https://github.com/ namisan/mt-dnn

Einseitiges allgemeines Modell – – GPT-2

GPT-2 verwendet weiterhin das Original Das von GPT verwendete Einweg-Transformer-Modell. Der Zweck dieses Artikels besteht darin, den Einweg-Transformer so weit wie möglich zu nutzen, um etwas zu tun, was der von BERT verwendete Zwei-Wege-Transformer nicht kann. Das heißt, aus dem oben Gesagten den folgenden Text zu generieren.

Die Idee von GPT-2 besteht darin, den Feinabstimmungsprozess vollständig aufzugeben und stattdessen eine größere Kapazität, unbeaufsichtigtes Training und ein allgemeineres Sprachmodell zur Vervollständigung zu verwenden Verschiedene Aufgaben. Wir müssen überhaupt nicht definieren, welche Aufgaben dieses Modell erfüllen soll, da die in vielen Tags enthaltenen Informationen im Korpus vorhanden sind. Genauso wie jemand, der viele Bücher liest, auf der Grundlage des gelesenen Inhalts problemlos automatisch zusammenfassen, Fragen beantworten und mit dem Schreiben von Artikeln fortfahren kann.

Streng genommen ist GPT-2 möglicherweise kein Multitasking-Modell, aber es verwendet dasselbe Modell und dieselben Parameter, um verschiedene Aufgaben zu erledigen.

Normalerweise trainieren wir ein dediziertes Modell für eine bestimmte Aufgabe, wir können die entsprechende Ausgabe der Aufgabe zurückgeben, also #🎜 🎜## 🎜🎜#

Detaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2

Wenn wir also ein allgemeines Modell entwerfen möchten, muss dieses Modell auch eine bestimmte Eingabe und einen bestimmten Aufgabentyp liefern und dann entsprechend auf die gegebene Eingabe und Aufgabe, um eine entsprechende Ausgabe zu erstellen, dann kann das Modell wie folgt ausgedrückt werden: Ich brauche Um einen Satz zu übersetzen, müssen Sie ein Übersetzungsmodell entwerfen. Wenn Sie ein Frage- und Antwortsystem wünschen, müssen Sie ein Frage- und Antwortmodell entwerfen. Wenn ein Modell jedoch intelligent genug ist und Kontext basierend auf Ihrem Kontext generieren kann, können wir verschiedene Probleme unterscheiden, indem wir der Eingabe einige Bezeichner hinzufügen. Wir können ihn zum Beispiel direkt fragen: („Natural Language Processing“, chinesische Übersetzung), um die Ergebnisse zu erhalten, die wir bei der Nature Language Processing benötigen. Nach meinem Verständnis ist GPT-2 eher ein allwissendes Frage- und Antwortsystem, das durch die Angabe der Kennung einer bestimmten Aufgabe geeignete Antworten auf Fragen und Antworten in verschiedenen Bereichen und Aufgaben geben kann. GPT-2 erfüllt die Zero-Shot-Einstellung. Es ist nicht erforderlich, ihm mitzuteilen, welche Aufgaben es während des Trainingsprozesses ausführen soll, und die Vorhersage kann auch eine vernünftigere Antwort liefern.

Was hat GPT-2 also getan, um die oben genannten Anforderungen zu erfüllen?

Den Datensatz erweitern und vergrößern

Das erste, was wir tun müssen, ist, das Modell gut lesbar zu machen. Wie können wir dann eine Inferenz durchführen, wenn nicht genügend Trainingsbeispiele vorhanden sind? Da sich die bisherigen Arbeiten auf ein konkretes Problem konzentrierten, waren die Datensätze relativ einseitig. GPT-2 sammelt einen größeren und umfassenderen Datensatz. Gleichzeitig müssen wir die Qualität dieses Datensatzes sicherstellen und Webseiten mit qualitativ hochwertigen Inhalten vorhalten. Schließlich wurde ein 8-Millionen-Text-40G-Datensatz WebText erstellt.

Netzwerkkapazität erweitern

Wenn Sie zu viele Bücher haben, müssen Sie einige bei sich tragen, sonst können Sie sich die Dinge im Buch nicht merken. Um die Kapazität des Netzwerks zu erhöhen und ihm ein stärkeres Lernpotenzial zu verleihen, erhöhte GPT-2 die Anzahl der Transformer-Stack-Schichten auf 48 Schichten, die Dimension der verborgenen Schicht betrug 1600 und die Anzahl der Parameter erreichte 1,5 Milliarden.

Passen Sie die Netzwerkstruktur an

GPT-2 erhöht das Vokabular auf 50257, die maximale Kontextgröße (Kontextgröße) wird von GPTs 512 auf 1024 erhöht und die Stapelgröße wird von 512 auf 1024 erhöht. Darüber hinaus wurden kleine Anpassungen am Transformer vorgenommen. Vor jedem Unterblock wurde eine Normalisierungsschicht hinzugefügt, nachdem die Initialisierungsmethode der Restschicht geändert wurde.

GitHub-Link: https://github.com/openai/gpt-2

Post Scriptum

Tatsächlich ist das Erstaunlichste an GPT-2 seine extrem starke Generation Diese leistungsstarken Generierungsfunktionen sind hauptsächlich auf die Datenqualität und die erstaunliche Anzahl von Parametern sowie den Datenumfang zurückzuführen. Die Anzahl der Parameter von GPT-2 ist so groß, dass das für Experimente verwendete Modell immer noch in einem unzureichenden Zustand ist. Wenn es weiter trainiert wird, kann der Effekt weiter verbessert werden.

Zusammenfassung

Zusammenfassend zur oben genannten Entwicklung der Transformer-Arbeit habe ich auch einige persönliche Gedanken zu den Entwicklungstrends des Deep Learning zusammengestellt:

1 Überwachte Modelle entwickeln sich in Richtung halbüberwacht oder sogar unbeaufsichtigt

Die Wachstumsrate des Datenumfangs übersteigt die Geschwindigkeit der Datenkennzeichnung bei weitem, was auch zur Erzeugung einer großen Menge unbeschrifteter Daten geführt hat. Diese unbeschrifteten Daten sind nicht ohne Wert. Im Gegenteil: Wenn Sie die richtige „Alchemie“ finden, können Sie aus diesen riesigen Daten einen unerwarteten Wert ziehen. Wie diese unbeschrifteten Daten zur Verbesserung der Aufgabenleistung genutzt werden können, ist zu einem immer wichtigeren Thema geworden, das nicht ignoriert werden darf.

2. Von komplexen Modellen mit einer kleinen Datenmenge bis zu einfachen Modellen mit einer großen Datenmenge

Die Anpassungsfähigkeit tiefer neuronaler Netze ist sehr leistungsfähig, und ein einfaches neuronales Netzmodell reicht aus passen zu jeder Funktion. Allerdings ist es schwierig, eine einfachere Netzwerkstruktur zur Erledigung derselben Aufgabe zu verwenden, und auch die Anforderungen an das Datenvolumen sind höher. Je mehr die Datenmenge zunimmt und sich die Qualität der Daten verbessert, desto häufiger sinken die Anforderungen an das Modell. Je größer die Datenmenge, desto einfacher ist es für das Modell, Merkmale zu erfassen, die mit realen Verteilungen übereinstimmen. Word2Vec ist ein Beispiel. Die verwendete Zielfunktion ist sehr einfach, aber da eine große Textmenge verwendet wird, enthalten die trainierten Wortvektoren viele interessante Funktionen.

3. Entwicklung von spezialisierten Modellen zu allgemeinen Modellen

GPT, BERT, MT-DNN und GPT-2 verwenden alle vorab trainierte allgemeine Modelle, um nachgelagerte maschinelle Lernaufgaben fortzusetzen das Modell selbst wäre erforderlich. Wenn die Ausdrucksfähigkeit eines Modells stark genug ist und die während des Trainings verwendete Datenmenge groß genug ist, ist das Modell vielseitiger und muss für bestimmte Aufgaben nicht allzu stark modifiziert werden. Der extremste Fall ist wie bei GPT-2, das ein allgemeines Multitask-Modell trainieren kann, ohne während des Trainings überhaupt zu wissen, was die nachfolgenden Downstream-Aufgaben sind.

4. Erhöhte Anforderungen an Datenumfang und -qualität

Obwohl GPT, BERT, MT-DNN und GPT-2 nacheinander die Liste angeführt haben, denke ich, dass bei der Verbesserung der Leistung die Verbesserung des Datenumfangs einen größeren Anteil ausmacht als die strukturelle Anpassung. Mit der Verallgemeinerung und Vereinfachung von Modellen wird sich zur Verbesserung der Modellleistung mehr Aufmerksamkeit von der Gestaltung komplexer und spezialisierter Modelle auf die Frage verlagern, wie eine große Anzahl von Modellen mit höchster Qualität erhalten, bereinigt und verfeinert werden kann die Daten. Der Effekt der Anpassung der Datenverarbeitungsmethode wird größer sein als der Effekt der Anpassung der Modellstruktur.

Zusammengefasst wird sich der DL-Wettbewerb früher oder später zu einem Wettbewerb zwischen großen Herstellern um Ressourcen und Rechenleistung entwickeln. Innerhalb weniger Jahre könnte ein neues Thema entstehen: grüne KI, kohlenstoffarme KI, nachhaltige KI usw.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Transformer-Struktur und ihrer Anwendungen – GPT, BERT, MT-DNN, GPT-2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage