REALM: Retrieval Augmented Language Model Pretraining
Dieses Papier wurde von Google Research erstellt und im Februar 2020 eingereicht und bietet eine neue und verbesserte Möglichkeit des Vortrainings von Sprachmodellen. Erreicht außerdem SOTA bei der Qualitätssicherung.
Problem : Der Aufsatz geht zunächst auf das Problem aktueller Sprachmodelle und deren Vortraining ein. Bert, Roberta und T5 erfassen beispielsweise eine große Menge Weltwissen für eine Vielzahl von NLP-Aufgaben. Dieses Wissen wird jedoch in Modellgewichten gespeichert, was die Interpretation der Modellergebnisse erschwert und das Modell nicht modular ist. Um mehr Wissen zu erfassen, muss man einfach die Anzahl der Parameter und Daten erhöhen und längere Schritte trainieren, was sehr kostspielig sein kann.
Idee : Um die oben genannten Probleme zu beheben, stellt das Papier eine neue Möglichkeit vor, Sprachmodelle vorab zu trainieren, um bei NLP-Aufgaben mit weniger Parametern die gleiche Leistung oder eine bessere Leistung zu erzielen. Die Idee ist ziemlich einfach: Nehmen wir an, Sie haben eine Frage und möchten sie beantworten. Das erste, was ein Mensch tun würde, wäre, bei Google nachzuschauen, ein paar Links zu öffnen und die Antwort zu finden. Das Papier ahmt diese Art von Verhalten nach, indem es einen Knowledge Retriever einführt. Seine Aufgabe besteht darin, sich wie Google zu verhalten, sodass relevante Dokumente zur Beantwortung einer Frage abgerufen werden. Anschließend wird ein Knowledge Augmented Encoder verwendet, um die Antwort aus dem abgerufenen Dokument abzurufen.
Beispiel :
- Das Vortraining wird für die MLM-Variante von BERT durchgeführt.
- Die Feinabstimmung erfolgt über OpenQA.
OpenQA : openQA ist eine Variante der Frage-Antwort-Methode, bei der das Modell kein Dokument erhält, von dem bekannt ist, dass es die Antwort enthält. Stattdessen erhält es mehrere Dokumente. Das Modell muss lernen, relevante Dokumente zu filtern.
REALM zerlegt p(y | x) in zwei Schritte: Abrufen, dann Vorhersagen. Bei einer Eingabe x rufen wir zunächst möglicherweise hilfreiche Dokumente z aus einem Wissenskorpus Z ab. Wir modellieren dies als Stichprobe aus der Verteilung p(z | x). Dann bedingten wir sowohl das abgerufene z als auch die ursprüngliche Eingabe x, um die Ausgabe y zu generieren – modelliert als p(y | z, x). Um die Gesamtwahrscheinlichkeit der Generierung von y zu erhalten, behandeln wir z als latente Variable und marginalisieren über alle möglichen Dokumente z.
Knowledge Retriever: Lassen Sie uns in die Details des Knowledge Retriever eintauchen. Wir versuchen Folgendes zu modellieren:
Dabei sind Embedinput und Embeddoc Einbettungsfunktionen, die x und z jeweils auf d-dimensionale Vektoren abbilden. Der Relevanzwert f(x,z) zwischen x und z ist als inneres Produkt der Vektoreinbettungen definiert. Die Abrufverteilung ist der Softmax über alle Relevanzwerte.
Nach BERT werden Spans mit dem Token [SEP] verbunden und mit dem Präfix [CLS] versehen.
Der vom Transformator erzeugte Vektor wird dann vom [CLS]-Token abgerufen, sodass wir schließlich Folgendes erhalten:
Knowledge Augmented Retriever: Schauen wir uns nun den Knowledge Augmented Retriever an. Im Falle einer Vorschulung möchten wir Folgendes modellieren:
Dabei bezeichnet BERTMASK(j) den Transformer-Ausgabevektor, der dem j-ten maskierten Token entspricht, Jx ist die Gesamtzahl der [MASK]-Tokens in x und wj ist eine gelernte Worteinbettung für Token yj.
Zur Feinabstimmung ändern wir Folgendes:
wobei BERTSTART(s) und BERTEND(s) die Transformer-Ausgabevektoren bezeichnen, die jeweils den Start- und End-Tokens von span s entsprechen, während MLP ein vorwärtsgerichtetes neuronales Netzwerk bezeichnet.
Rechentechnische Herausforderung: Die wichtigste rechnerische Herausforderung besteht darin, dass die Grenzwahrscheinlichkeit p(y|x)=kui z∈Z p(y|x,z)p(z|x) eine Summierung über alle Dokumente z im Wissenskorpus Z beinhaltet. Wir nähern uns dem an, indem wir stattdessen über das oberste k summieren. Dies ist sinnvoll, wenn die Wahrscheinlichkeit für die meisten Dokumente nahezu Null ist.
Lösung: Finden Sie die Top-K-relevanten Dokumente => wie finden wir sie effizient? Beachten Sie, dass der Relevanzwert p(z | x) mit dem folgenden inneren Produkt übereinstimmt:
f(x,z) =Embedinput(x)⊤Embeddoc(z) Jetzt können wir MIPS (Maximum Inner Product Search) verwenden, um die Top-k-Dokumente zu finden, aber wir müssen die Einbettungen noch vorberechnen, nach ein paar Iterationen ändern sich die Einbettungen und der von MIPS bereitgestellte Index sind veraltet, sodass wir sie aktualisieren müssen.
MIPS wird nur während des Vortrainings verwendet, während der Feinabstimmung wird MIPS einmal zu Beginn unter Verwendung der vorab trainierten Einbettungen berechnet.
Was lernt der Retriever?
Für jedes Dokument z ermutigt der Gradient den Retriever, die Punktzahl f(x,z) um r(z) zu ändern – steigend, wenn r(z) positiv ist, und sinkend, wenn r(z) negativ ist. Der Multiplikator r(z) ist genau dann positiv, wenn p(y|z,x) > p(y|x). Der Term p(y | z, x) ist die Wahrscheinlichkeit, die korrekte Ausgabe y bei Verwendung des Dokuments z vorherzusagen. Der Term p(y | x) ist der erwartete Wert von p(y | x, z), wenn ein Dokument zufällig aus p(z | x) ausgewählt wird. Daher erhält Dokument z immer dann ein positives Update, wenn seine Leistung besser ist als erwartet.
Der Teufelskreis:
Wie Sie vielleicht inzwischen bemerkt haben, ist es sehr schwierig, dieses Modell zu trainieren, denn wenn die anfänglichen Einbettungen nicht gut sind, ist der MIPS-Index falsch und der Retriever lernt nichts. Der wissenserweiterte Retriever ignoriert abgerufene Dokumente, sodass Farbverläufe nicht zurückpropagiert werden und kein Lernen stattfindet.
Das Papier bietet eine Reihe von Lösungen, um dieses Problem zu lösen:
- Salient Span Masking : Die Maskierungsstrategie unterscheidet sich vom regulären MLM. In REALM möchten wir uns auf Spans konzentrieren, die Weltwissen erfordern. Um uns auf Probleme zu konzentrieren, die Weltwissen erfordern, maskieren wir markante Begriffe wie „Vereinigtes Königreich“ oder „Juli 1969“. Wir verwenden einen BERT-basierten Tagger, der auf CoNLL-2003-Daten trainiert wurde, um benannte Entitäten zu identifizieren, und einen regulären Ausdruck, um Datumsangaben zu identifizieren. Für die maskierte Sprachmodellierungsaufgabe wählen wir einen dieser hervorstechenden Bereiche innerhalb eines Satzes aus und maskieren ihn.
- Nulldokument : Dem Korpus wird ein Nulldokument hinzugefügt, um dem Modell mehr Flexibilität zu verleihen und die Möglichkeit zu bieten, nichts auszuwählen.
- Verbot trivialer Abrufe : Wenn X genau in Z existiert, führt dies zu großen Gradientenwerten für p(z|x). Das Modell hört auf zu lernen und sucht nach genauen Mustern und Ähnlichkeiten, wenn dies zu oft vorkommt. Aus diesem Grund werden triviale Kandidaten während des Vortrainings entfernt.
- Initialisierung mit umgekehrter Lückentextaufgabe : Um den oben erwähnten Teufelskreis zu lösen, bieten wir eine Möglichkeit, die Einbettungen mithilfe von IKT vorab zu trainieren, wobei das Modell bei gegebenem Satz darauf trainiert wird, das Dokument abzurufen, aus dem dieser Satz stammt.
Ergebnisse :
Konkretes Beispiel :
Wichtige Erkenntnisse :
- REALM übertrifft T5 11b und ist dabei 30-mal kleiner.
- Die Maskierung ausgeprägter Spannen übertrifft andere Maskierungsstrategien.
- Bei der Arbeit mit REALM müssen wir einige Hyperparameter berücksichtigen, z. B. die MIPS-Aktualisierungsrate und die abzurufenden Top-K-Dokumente.
- Link zum Papier
- Artikel 1
- Artikel 2

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































