ACL 2023 | Sprachgrundlagenmodelle in kontinuierlicher Entwicklung

Obwohl heutige KI-Modelle bereits in der Lage sind, natürliche Sprache zu verstehen, haben Forscher nicht aufgehört, die Modelle zu verbessern und Theorien zu erforschen. Die Technologie im Bereich der Verarbeitung natürlicher Sprache (NLP) verändert sich ständig und entwickelt sich rasant weiter, und es zeichnen sich neue Trends und Durchbrüche ab.

Die Jahrestagung der Association for Computational Linguistics (ACL), die wichtigste akademische Konferenz im Bereich NLP, ist für Forscher, die sich mit dem Bereich NLP befassen, eine wichtige Gelegenheit, Trends zu beobachten. Auf der ACL 2023, die vom 9. bis 14. Juli 2023 in Toronto, Kanada, stattfindet, stellt Microsoft Research Asia mehrere Beiträge zu grundlegenden Modellen vor, die in ACL 2023 enthalten sind. Zu den Themen der Beiträge gehören groß angelegte Lernmechanismen für den Modellkontext, Trainingsmethoden und Modellcodes . Ausführung und Längenextrapolation des Modellproblems. Werfen wir heute einen Blick auf die vier verwandten Grenzwerke.

Eine Transformer-Architektur, die die Längenextrapolation unterstützt

Link zum Papier: https://arxiv.org/abs/2212.10554

In Transformers-Modellen ist die Standortmodellierung wichtig, um Abhängigkeiten in Sequenzen zu erfassen. Dieser Beitrag konzentriert sich auf das Problem der Längenextrapolation, bei der das Ziel darin besteht, ein Modell an kurzen Texten zu trainieren und gleichzeitig an längeren Sequenzen zu testen. Um diese Extrapolationsfähigkeit zu messen, führten die Forscher ein Konzept ein, das sie Aufmerksamkeitsauflösung nennen, und schlugen zwei Designs vor, die darauf abzielen, die Leistung von Transformer-Modellen bei dieser Metrik zu verbessern.

Zunächst schlagen die Forscher eine Methode zur relativen Positionseinbettung vor, um die Extrapolationsfähigkeit des Modells durch explizite Maximierung der Aufmerksamkeitsauflösung zu verbessern. Relative Positionseinbettungen können dem Modell helfen, Abhängigkeiten über große Entfernungen in Sequenzen zu erfassen, was zu einer besseren Leistung bei der Verarbeitung langer Sequenzen führt. Im Vergleich zu herkömmlichen Absolutpositionseinbettungen kann sich diese Methode besser an Eingabesequenzen unterschiedlicher Länge anpassen und trägt so dazu bei, die Leistung des Modells bei der Aufgabe der Längenextrapolation zu verbessern.

Zweitens führten die Forscher eine Blockmaskierungstechnik ein, um die Effizienz bei der Inferenz zu verbessern. Durch die Aufteilung der Eingabesequenz in Blöcke und die Anwendung einer Maske auf jeden Block konnten die Forscher die Rechenkomplexität reduzieren und so die Verarbeitungsgeschwindigkeit erhöhen. Dieser Ansatz reduziert den Bedarf an Rechenressourcen erheblich und behält gleichzeitig die Modellleistung bei. Durch die Kombination dieser beiden Designs entsteht eine neue Architektur – der längenextrapolierbare Transformator (Length-Extrapolatable Transformer).

Die Forscher experimentierten mit verschiedenen Transformer-Varianten bei Sprachmodellierungsaufgaben, um die Leistung dieses neuen Transformers zu bewerten. Experimentelle Ergebnisse zeigen, dass dieser längenextrapolierbare Transformator sowohl bei der Interpolation als auch bei der Extrapolation eine bessere Leistung erzielt. Die Einführung relativer Positionseinbettungen und Blockmasken ermöglicht es dem Modell außerdem, lange Sequenzen besser zu verarbeiten und somit bei Längenextrapolationsaufgaben eine gute Leistung zu erbringen. Darüber hinaus verbessert die Blockmaske auch die Inferenzgeschwindigkeit des Modells erheblich und behält gleichzeitig die Genauigkeit bei.

Tabelle 1: Vergleich verschiedener Positionskodierungen, der längenextrapolierbare Transformer hat klare Vorteile hinsichtlich Übersetzungsinvarianz und Längenextrapolation.

Basierend auf einem vorab trainierten Codeausführungsmodell

Link zum Papier: https://arxiv.org/abs/2305.05383

Die Codeausführung ist ein wichtiger Weg, um die Codesemantik zu verstehen. Heutige Code-Pre-Training-Modelle berücksichtigen jedoch nicht, dass das Modell lernen kann, wie Code ausgeführt wird. In diesem Artikel erstellten die Forscher drei Python-Codeausführungsdatensätze, zeichneten die Ausführungsverläufe und Zwischenergebnisse von Millionen von Codes auf und ließen das Code-Vortrainingsmodell lernen.

Die Forscher geben den Code in das Modell ein, lassen das Modell das Programm Schritt für Schritt „ausführen“ und geben die aktuell ausgeführte Zeilennummer und die Werte aller lokalen Variablen aus, wie in der folgenden Abbildung dargestellt:

Abbildung 1: Datenbeispiel. (a) ist ein Teil des Python-Codes. (b) ist die entsprechende Codeausführungsverfolgung, einschließlich der aktuell ausgeführten Zeilennummer und des Wertstatus aller lokalen Variablen nach der Ausführung.

Damit das Modell die Codeausführung Schritt für Schritt lernen kann, reichen die untersuchten Datensätze von einzeiligen Codes über Beispielcodes für offizielle Python-Tutorials bis hin zu Algorithmusfragecodes, sodass das Modell von einfach bis schwierig lernen kann. Basierend auf Mutationstests im Bereich Software-Engineering verwendeten die Forscher außerdem mehr als zehn Arten von Mutationen zur Datenverbesserung am Code, in der Hoffnung, das Modell umfassender zu trainieren, und erhielten schließlich insgesamt 13 Millionen Codes und ihre Ausführungspfade in drei Datensätzen.

Auf der Grundlage des Code-Vortrainingsmodells UniXcoder von SOTA nutzten die Forscher die Trainingsstrategie des Kurslernens, um das Training für Codeausführungsaufgaben fortzusetzen. Im Vergleich zum Codex-Modell, das 100-mal so viele Parameter hat, aber nicht auf die Codeausführung trainiert wurde, hat CodeExecutor eine hohe Ausführungsgenauigkeitsrate bei der Ausführung einfacher Programme erreicht und ist in der Lage, komplexere Algorithmuscodes „auszuführen“. . Die Ergebnisse des trainierten Modells CodeExecutor für die drei Testsätze sind in Tabelle 2 dargestellt.

Tabelle 2: Experimentelle Ergebnisse, SingleLine, Tutorial und CodeNetMut sind drei Datensätze von leicht bis schwer, CEL-Si ist das Modell, das jeweils auf dem i-ten Datensatz trainiert wurde, ohne dass CL in den drei trainierten Modellen kein Kurslernen verwendet zusammen auf dem Datensatz.

Die Forscher analysierten manuell 50 Daten in CodeNetMut und stellten fest, dass das Modell den Kontrollfluss im Code grundsätzlich verstanden hat und die Vorhersage der Ausführungsbahn von Schleifen und Verzweigungen relativ genau ist, es jedoch schwierig ist, komplexe Datenstrukturen auszuführen. wie Arrays und Zeichen. String-Operationen.

Schließlich wandten die Forscher CodeExecutor auf zwei nachgelagerte Aufgaben an: Code-Code-Suche und Code-Generierung, und stellten fest, dass die Wirkung des ursprünglichen Modells erheblich verbessert werden kann, was beweist, dass die Codeausführung dem vorab trainierten Modell helfen kann, die Code-Semantik besser zu verstehen. Dies hilft beim Verstehen und Generieren von Programmen.

PICL: Lernen, wie man kontextuelles Lernen im Vortraining durchführt

Link zum Papier: https://arxiv.org/abs/2305.09137

Mit der Entwicklung groß angelegter Pre-Training-Modelle hat das Kontextlernen allmählich Aufmerksamkeit erregt, da es keine Feinabstimmung des Modells erfordert und mit nur einer geringen Anzahl von Stichproben bessere Ergebnisse erzielen kann. Frühere Arbeiten versuchen hauptsächlich, Meta-Learning an nachgelagerten Datensätzen durchzuführen, um die Fähigkeit des Kontextlernens zu verbessern. Diese Methode ist jedoch häufig durch die Menge und Vielfalt künstlicher Daten begrenzt und führt zu Verzerrungen in Form von Eingabe/Ausgabe. Daher schlägt dieses Papier vor, die Fähigkeit des Modellkontextlernens in der Phase vor dem Training direkt zu verbessern, und schlägt ein neues Framework vor dem Training vor: PICL.

Das PICL-Framework basiert auf einer natürlichen Beobachtung: Natürliche Textabsätze enthalten natürlicherweise „intrinsische Aufgaben“. Zum Beispiel: „Ich bin heute sehr glücklich, weil Argentinien die Weltmeisterschaft gewonnen hat.“ Dieser Satz beinhaltet die Aufgabe der Stimmungsanalyse. Wenn Absätze mit denselben „intrinsischen Aufgaben“ gruppiert werden, kann das Modell diese Aufgaben für „Meta-Learning“ des kontextuellen Lernens verwenden. Der Vorteil besteht darin, dass die Beispiele der „intrinsischen Aufgabe“ aus natürlichen Textpassagen mit weniger Voreingenommenheit in der Form von Input/Output stammen und ausreichend vielfältig sind. Um Passagen mit derselben „intrinsischen Aufgabe“ zu sammeln, trainierten die Forscher einen Retriever mithilfe verschiedener nachgelagerter Aufgaben, um Text abzurufen, der zu derselben Aufgabe gehört, und wandten den Retriever dann auf das vorab trainierte Korpus an, um jede natürliche Texteingabe abzurufen Absätze, die die gleiche „intrinsische Aufgabe“ enthalten. Schließlich werden die abgerufenen Absätze in eine Form des Kontextlernens gespleißt und ein einfaches Sprachmodellziel für das Vortraining an den gespleißten Beispielen verwendet.

Abbildung 2: Auf der linken Seite sehen Sie ein Beispiel für „intrinsische Aufgaben“ im umfangreichen Klartextkorpus OpenWebText. Auf der rechten Seite sehen Sie ein schematisches Diagramm des PICL-Frameworks

Experimente haben ergeben, dass der Retriever tatsächlich Absätze mit denselben „intrinsischen Aufgaben“ finden kann und viele Absätze Aufgaben enthalten, die nicht im Trainingssatz des Retrievers enthalten sind, was die Vielfalt der „intrinsischen Aufgaben“ in Texten in natürlicher Sprache vollständig veranschaulicht. Gleichzeitig wurden die allgemeine Kontextlernleistung und die Multitasking-Verallgemeinerung des im Rahmen des PICL-Frameworks trainierten Modells im Vergleich zur Basislinie erheblich verbessert.

Warum kann GPT Kontextlernen durchführen? Das Sprachmodell führt implizit einen Gradientenabstieg durch

Link zum Papier: https://arxiv.org/abs/2212.10559

Code-Link: https://aka.ms/icl

Mit der kontinuierlichen Erweiterung der Parameterskala des Sprachmodells und der Trainingsdatenskala hat das vorab trainierte große Sprachmodell erstaunliche kontextbezogene Lernfähigkeiten gezeigt. Mit nur wenigen demonstrierten „Eingabe-Label“-Paaren können sie die Beschriftung für eine nie zuvor gesehene Eingabe ohne Parameteraktualisierungen vorhersagen.

Trotz großer Leistungserfolge bleibt die Funktionsweise des kontextuellen Lernens ein ungelöstes Rätsel. In diesem Artikel interpretieren die Forscher das Sprachmodell als Meta-Optimierer und verstehen Kontextlernen als impliziten Feinabstimmungsprozess. Die Forscher entdeckten zunächst, dass der Aufmerksamkeitsmechanismus und die auf dem Gradientenabstieg basierende Optimierung in Transformer eine duale Form haben. Auf dieser Grundlage verstehen Forscher Kontextlernen als einen Prozess: GPT generiert zunächst Metagradienten basierend auf Demonstrationsbeispielen und wendet diese Metagradienten dann über den Aufmerksamkeitsmechanismus auf den ursprünglichen Arbeitsprozess des GPT-Modells an, um den Zweck des kontextuellen Lernens zu erreichen . Die Forscher liefern empirische Belege für dieses Verständnis, indem sie das Verhalten von kontextuellem Lernen und expliziter Feinabstimmung bei realen NLP-Aufgaben umfassend vergleichen.

Experimentelle Ergebnisse zeigen, dass die Verhaltensweisen des Kontextlernens und der expliziten Feinabstimmung aus mehreren Perspektiven Ähnlichkeiten aufweisen, was die Richtigkeit des Verständnisses in diesem Artikel bestätigt. Darüber hinaus entwarfen die Forscher, inspiriert von der dualen Form zwischen dem Aufmerksamkeitsmechanismus von Transformer und dem Gradientenabstieg, eine impulsbasierte Aufmerksamkeit, indem sie den Impuls des Gradientenabstiegs analogisierten. Im Vergleich zum ursprünglichen Aufmerksamkeitsmechanismus weist der verbesserte Aufmerksamkeitsmechanismus eine bessere Leistung auf, was die Richtigkeit des obigen Verständnisses weiter bestätigt. Und was noch wichtiger ist: Dieser Weg zur Verbesserung des Modells zeigt das Potenzial, dass die Ergebnisse und Schlussfolgerungen dieses Papiers zur weiteren Verbesserung des Modelldesigns in der Zukunft genutzt werden können.

Abbildung 3: Gemäß den Demonstrationsbeispielen generiert GPT zunächst Metagradienten für das Lernen im Kontext durch Vorwärtsberechnung und wendet diese Metagradienten dann über den Aufmerksamkeitsmechanismus Mitte auf den Arbeitsprozess des Modells an. Aus der Perspektive der Gradientenaktualisierung besteht eine Dualität zwischen dem Metaoptimierungsprozess des Kontextlernens und dem auf Gradientenabstieg basierenden Optimierungsprozess der expliziten Feinabstimmung.

おすすめ

転載: blog.csdn.net/helendemeng/article/details/131706267