Eine kurze Einführung in das BART-Modell

Inhaltsverzeichnis

1. Zusammenfassung

2. Vertiefte Erweiterung

2.1 Aufgabe vor dem Training

2.2 Modellfeinabstimmung


1. Zusammenfassung

Das BART-Modell (Bidirectional and Auto-Regressive Transformers) verwendet eine standardmäßige Transformer-basierte Sequenz-zu-Sequenz-Struktur.Der Hauptunterschied besteht darin, dass die ReLU in der ursprünglichen Struktur durch die Aktivierungsfunktion GeLU (Gaussian Error Linear Units) ersetzt wird, und die Parameter werden gemäß der Normalverteilung initialisiert. BART kombiniert einen bidirektionalen Transformer-Encoder und einen unidirektionalen autoregressiven Transformer-Decoder.Es ist ein typischer Denoising-Autoencoder (Denoising-Autoencoder), indem er die rauschenthaltendeEntrauschungsrekonstruktion des Eingabetexts vortrainiert . Die Grundstruktur des BART-Modells ist in der folgenden Abbildung dargestellt.
Der Vortrainingsprozess von BART kann in den folgenden zwei Phasen zusammengefasst werden. Zuerst wird Rauschen in den Eingabetext eingeführt und der verschlüsselte Text wird unter Verwendung eines bidirektionalen Codierers codiert; dann wird der ursprüngliche Text unter Verwendung eines unidirektionalen autoregressiven Decodierers rekonstruiert. Es sei darauf hingewiesen, dass die Darstellung der letzten verborgenen Schicht des Codierers als "Speicher" verwendet wird, um an der Berechnung jeder Schicht des Decodierers teilzunehmen. Das BART-Modell berücksichtigt eine Anzahl unterschiedlicher Möglichkeiten zum Einbringen von Rauschen, einschließlich Wortmasken, die vom BERT-Modell verwendet werden. Es sei darauf hingewiesen, dass das BERT-Modell die Wörter der Maskenposition unabhängig vorhersagt, während das BART-Modell sequentiell durch autoregressive Mittel erzeugt wird .   Darüber hinaus ist das BART-Modell auch auf jede andere Form von Textrauschen anwendbar.

2. Vertiefte Erweiterung

2.1 Aufgabe vor dem Training

Das BART-Modell berücksichtigt die folgenden fünf Rauscheinleitungsmethoden:
(1) Wortmaske . Vergleichen Sie ähnlich wie beim BERT-Modell zufällig einen Teil der Wörter im Eingabetext und ersetzen Sie sie durch Masken-Tags (z. B. [MASK]);
(2) Wortlöschung . Probieren Sie zufällig einige Wörter aus und löschen Sie sie. Um mit dieser Art von Rauschen fertig zu werden, muss das Modell nicht nur die fehlenden Wörter vorhersagen, sondern auch die Position der fehlenden Wörter bestimmen;
(3) Satzanordnungstransformation . Teilen Sie den Eingabetext basierend auf Punkten in mehrere Sätze auf und mischen Sie die Reihenfolge der Sätze nach dem Zufallsprinzip. Um die Satzreihenfolge wiederherzustellen, muss das Modell ein gewisses Verständnis der Semantik des gesamten Eingabetextes haben;
(4) Dokumentenrotationstransformation . Wählt zufällig ein Wort im Eingabetext aus und dreht das Dokument so, dass es mit diesem Wort beginnt. Um den Originaltext zu rekonstruieren, muss das Modell den Anfang des Originaltextes aus dem gestörten Text finden;
(5) Textauffüllung . Mehrere Textfragmente zufällig abtasten, und die Länge der Fragmente wird gemäß der Poisson-Verteilung (λ=3) abgetastet. Ersetzen Sie jedes Textfragment durch ein einzelnes Maskentoken. Wenn die Segmentlänge 0 ist, bedeutet dies, dass eine Maskenmarkierung eingefügt wird. Um solches Rauschen zu entfernen, muss das Modell in der Lage sein, die Länge fehlender Textsegmente vorherzusagen.
Die folgende Abbildung fasst die fünf Arten von Rauschen zusammen:

Es ist ersichtlich, dass die Vortrainingsaufgaben nicht nur Aufgaben auf Wortebene, sondern auch Rauschunterdrückungsaufgaben auf Satzebene und Dokumentebene umfassen. Diese Tasks werden für verschiedene Downstream-Tasks unterschiedlich ausgeführt. Experimente zeigen, dass vortrainierte Modelle, die auf Textfüllaufgaben basieren, bei nachgelagerten Aufgaben im Allgemeinen besser abschneiden, und das Hinzufügen von Satzpermutationen und Rauschunterdrückungsaufgaben auf dieser Grundlage kann eine kleine zusätzliche Verbesserung bringen. Demonstrieren Sie als Nächstes die Textfüllfähigkeit des BART-Modells mit spezifischem Code. Hier verwenden wir das von Facebook veröffentlichte vortrainierte BART-Modell (bart-base) und die Aufrufschnittstelle BartForConditionalGeneration, die von der Transformers-Bibliothek bereitgestellt wird. Der spezifische Code lautet wie folgt:
from transformers import BartTokenizer, BartForConditionalGeneration
model = BartForConditionalGeneration.from_pretrained('facebook/bart-base')
tokenizer = BartTokenizer.from_pretrained("facebook/bart-base")
input = "UN Chief Says There Is <mask> in Syria"
batch = tokenizer(input, return_tensors = 'pt')
output_ids = model.generate(input_ids=batch['input_ids'], attention_mask = batch['attention_mask'])
output = tokenizer.batch_decode(output_ids, skip_special_tokens = True)
print(output)

# 输出:['UN Chief Says There Is No War in Syria']
In diesem Beispiel wird das Maskenzeichen (<mask>) im Eingabetext mit "No War" gefüllt, was in Satzstruktur und Semantik sinnvoll ist.

2.2 Modellfeinabstimmung

Das vortrainierte BART-Modell verfügt sowohl über Textdarstellungs- als auch -generierungsfunktionen, sodass es für verschiedene Arten von nachgelagerten Aufgaben wie Sprachverständnis und Textgenerierung geeignet ist. Für unterschiedliche Aufgaben wird das BART-Modell auf unterschiedliche Weise fein abgestimmt.
(1) Sequenzklassifizierung und Sequenzkennzeichnung . Für Sequenzklassifizierungsaufgaben (z. B. Textstimmungsklassifizierung) verwenden der Codierer und der Decodierer des BART-Modells dieselbe Eingabe, und der Zustand der verborgenen Schicht im letzten Moment des Decodierers wird als Vektordarstellung des Eingabetexts und der Eingabe dargestellt den linearen Klassifikator mit mehreren Kategorien. Verwenden Sie dann die beschrifteten Daten der Aufgabe, um die Modellparameter zu optimieren. Ähnlich dem [CLS]-Tag des BERT-Modells fügt das BART-Modell im letzten Moment des Decoders ein spezielles Tag hinzu und verwendet den Hidden-Layer-Zustand des Tags als Textdarstellung, sodass der vollständige Decoder-Zustand genutzt werden kann .
In ähnlicher Weise verwenden der Codierer und der Decodierer für die Sequenzkennzeichnungsaufgabe dieselbe Eingabe. Zu diesem Zeitpunkt wird der Zustand der verborgenen Schicht des Decoders zu jedem Zeitpunkt als eine Vektordarstellung des Wortes zu diesem Zeitpunkt für die Kategorievorhersage verwendet.
(2) Textgenerierung . Das BART-Modell kann direkt für bedingte Texterzeugungsaufgaben verwendet werden, wie etwa die Beantwortung abstrakter Fragen und abstrakte Zusammenfassung. Bei diesen Aufgaben ist die Eingabe des Encoders der Eingangstext als Bedingung und der Decoder generiert autoregressiv den entsprechenden Zieltext.
(3) Maschinelle Übersetzung . Bei der Verwendung für maschinelle Übersetzungsaufgaben kann das BART-Modell aufgrund der unterschiedlichen Vokabularsätze, die in Ausgangs- und Zielsprache verwendet werden, nicht direkt verfeinert werden. Daher schlagen die Forscher vor, die Eingabedarstellungsschicht (Embedding Layer) des BART-Modell-Encoders durch einen kleinen Transformer-Encoder zu ersetzen, der verwendet wird, um das Vokabular in der Quellsprache auf den Eingabedarstellungsraum der Zielsprache abzubilden, um so etwas zu erreichen Anpassung der Vorhersage des BART-Modells Trainingsumgebung (siehe Abbildung 8-25). Da die Parameter des neu eingeführten Quellsprachencodierers zufällig initialisiert werden und die meisten anderen Parameter des BART-Modells vortrainiert wurden, führt die Verwendung desselben Optimierers zum gleichzeitigen Trainieren beider zu "inkonsistenten Schritten" und möglicherweise nicht wirksam erhalten können. Daher unterteilten die Forscher den Trainingsprozess in zwei Schritte. Zuerst werden die meisten Parameter des BART-Modells festgelegt, und nur der Quellsprachencodierer, der Positionsvektor des BART-Modells und die Selbstaufmerksamkeits-Eingabeprojektionsmatrix der ersten Schicht des vortrainierten BART-Codierers werden trainiert, dann a Eine kleine Anzahl von iterativen Trainings wird an allen Parametern durchgeführt.

Es ist erwähnenswert, dass das BART-Modell zwar für die Generierung von Aufgaben konzipiert ist, aber auch bei diskriminierenden Aufgaben sehr gut abschneidet, sogar auf Augenhöhe mit RoBERTa. Für weitere Details über das BART-Modell und seine Leistung bei verwandten Aufgaben sollten interessierte Leser selbst auf die Literatur verweisen, und dieser Artikel wird nicht erweitert.

 

Guess you like

Origin blog.csdn.net/weixin_45684362/article/details/130161755