Heim >Technologie-Peripheriegeräte >KI >Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

王林
王林Original
2024-06-13 14:06:09819Durchsuche

Multiplikation und Sortierung funktionieren auch.

Seit seinem Vorschlag im Jahr 2017 hat sich Transformer zur Mainstream-Architektur für große KI-Modelle entwickelt und befindet sich fest in der C-Position.

Allerdings müssen alle Forscher zugeben, dass der Transformer bei Rechenaufgaben extrem schlecht abschneidet, wenn auch bei Additionen, und dieser Fehler ist größtenteils auf die Unfähigkeit des Transformers zurückzuführen, jede Ziffer in einem großen Zahlenbereich genau zu verfolgen.

Um dieses Problem zu lösen, haben Forscher der University of Maryland, der CMU und anderer Institutionen eine Herausforderung für dieses Problem gestartet. Sie lösten dieses Problem, indem sie jeder Zahl eine Einbettung hinzufügten, die die Position der Zahl relativ zum Anfang kodiert. Die Studie ergab, dass es nur einen Tag dauerte, 20-stellige Zahlen auf einer einzigen GPU zu trainieren, um eine hochmoderne Leistung mit einer Genauigkeit von bis zu 99 % bei der 100-stelligen Additionsaufgabe zu erreichen.

Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

Papieradresse: https://arxiv.org/pdf/2405.17399

Projektadresse: https://github.com/mcleish7/arithmetic

Titel: Transformers Can Do Arithmetic with the Right Embeddings

Spezifisch Insbesondere schlugen die Forscher vor, dass eine einfache Änderung der Datentabellenanzeige dieses Manko beheben könnte. Sie schlugen Abacus-Einbettungen vor, um die Position innerhalb des Bereichs jedes digitalen Symbol-Tokens zu kodieren. Durch die Verwendung von Abacus-Einbettungen in Verbindung mit standardmäßigen Positionseinbettungen wurden in der Studie erhebliche Verbesserungen der Transformer-Genauigkeit bei Rechenaufgaben beobachtet, sodass Modelle, die nur mit bis zu 20-stelligen Operanden trainiert wurden, auf Probleme mit 120-stelligen Operanden skaliert wurden. Diese Zahl stellt einen 6-fachen SOTA-Skalierungsfaktor dar, verglichen mit dem bisherigen Stand der Technik-Skalierungsfaktor von nur 2,5x. Es versteht sich, dass dies die bisher längste gezeigte Lernadditionssequenz ist.

Neben der Untersuchung der Optimierung der Leistung von Transformer in der Arithmetik und Verallgemeinerung werden in diesem Artikel auch mehrere andere Methoden zur Verbesserung der Leistung von Transformer untersucht. Sie fanden heraus, dass sie den Generalisierungsfehler gegenüber der Abacus-Einbettungsbasislinie um 50 % reduzieren konnten, indem sie Skip-Verbindungen zwischen der Eingabeinjektionsschicht und jeder Decoderschicht einfügten. Das Papier stellt außerdem fest, dass die in Verbindung mit Einbettungen verwendete Loop-Transformer-Architektur eine nahezu perfekte Verallgemeinerung des Additionsproblems erreichen kann.

Die Beiträge dieses Artikels lassen sich wie folgt zusammenfassen:

  • Dieser Artikel schlägt eine neue Positionseinbettung vor, die Abacus-Einbettung genannt wird, um die Bedeutung jeder Zahl besser zu erfassen und so eine nahezu perfekte Verallgemeinerung innerhalb der Verteilung zu erreichen;

  • Untersuchungen zeigen, dass die Leistung weiter verbessert wird, wenn Abacus-Einbettungen mit Eingangsinjektion und Schleifentransformatoren kombiniert werden, wobei die Out-of-Distribution-Genauigkeit von 92,9 % auf 99,1 % steigt und die Fehlerreduzierung im Vergleich zu Einbettungen, die nur Standardarchitektur verwenden, 87 % beträgt;
  • Die Forscher erweiterten diese Erkenntnisse auf komplexere Probleme, einschließlich Multiplikation und Sortierung, und demonstrierten auch die Längenverallgemeinerung in diesen Bereichen.
Implementierung der Längenverallgemeinerung der Addition

Die Autoren untersuchten eine Reihe von Methoden, die darauf abzielen, die Rechenleistung von Sprachmodellen zu verbessern, die von Grund auf trainiert wurden. Sie konzentrieren sich hauptsächlich auf zwei Hypothesen: 1) Die Positionsinformationen einzelner Ziffern innerhalb einer Zahl gehen verloren. 2) Schleifen können die Argumentationsfähigkeit der Transformer-Architektur bei mehrstufigen arithmetischen Argumentationsproblemen verbessern. Die Autoren diskutieren kurz die Trainings- und Bewertungseinstellungen, bevor sie jede Verbesserung im Detail beschreiben.

Experimenteller Aufbau

Die Autoren trainierten ein kausales Sprachmodell, das nur den Decoder enthielt, um das Additionsproblem zu lösen.

Sie betrachteten zwei Standard-Transformatorarchitekturen. Erstens verwenden sie ein standardmäßiges autoregressives Transformatormodell mit mehreren Decoderschichten, die im Feed-Forward-Stil gestapelt sind. Zweitens erweitern sie dieses Standardtransformatormodell um eine Eingabeinjektion, die dem Eingang jeder Decoderschicht Einbettungen hinzufügt. Die Autoren stellen diese Architekturen in Abbildung 20 visuell dar.

Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

Abacus-Einbettung hilft beim Ausrichten von Zahlen

Durch frühere Untersuchungen und vorläufige Experimente hat der Autor herausgefunden, dass die Trainingsdaten hierarchisch und umfangreich sind (Hunderttausende), selbst wenn die Eingabezahlen mit den unwichtigsten Zahlen zuerst angezeigt werden von Beispielen) ist es für Standardtransformatoren auch schwierig, die Addition mehrstelliger Zahlen zu erlernen. Sie beobachteten auch, dass Menschen bei langen Additionsoperationen zunächst Zahlen mit derselben Ziffer in Spalten anordnen. Daher lautet die erste Hypothese des Autors, dass die Ziffern jeder Zahl für den Transformator nicht einfach darstellbar sind und dass dieses Teilproblem ein größeres Hindernis darstellt als die eigentliche Addition selbst.

Um die Einschränkungen des Transformators bei der Darstellung von Positionsinformationen zu beheben, haben die Autoren eine spezielle Positionseinbettung entwickelt, die die Position jeder Zahl relativ zur Startposition der aktuellen Zahl kodiert. Die Autoren nennen dies Abacus-Einbettung. Sie wenden die gleiche Positionseinbettung auf alle Zahlen mit derselben Ziffer an und stellen so ein explizites Signal bereit, das das Modell zum Ausrichten der Zahlen verwenden kann, wie in Abbildung 2 dargestellt.

Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

Abacus-Einbettung löst Additionsprobleme

Bei Standard-Transformator-Architekturen verbessert Abacus-Einbettung die Generalisierungsleistung auf 100-Bit und höher. In Abbildung 3 (links) heben die Autoren den komparativen Vorteil von Abacus-Einbettungen gegenüber Standard-Transformator-Architekturen und -Einbettungen bei der Durchführung additiver Operationen hervor, wobei sie die durchschnittliche Genauigkeit aller Fälle der drei Modelle heranziehen.

Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

Abbildung 1 zeigt auch die Genauigkeitsergebnisse für mit FIRE und Abacus trainierte Standardtransformatormodelle, die innerhalb der Domäne (ID) und außerhalb der Domäne (OOD) getestet wurden. Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

Schleifen im Transformer verbessern die Leistung

Nach der Lösung des Positionseinbettungsproblems untersuchte der Autor als Nächstes, ob die Schleifenarchitektur die Fähigkeit des Transformators zur Durchführung mehrstelliger Additionen weiter verbessern kann. Sie verwenden den Begriff „wiederkehrender Block“, um sich auf eine Reihe von Decoderschichten mit unterschiedlichen Gewichten zu beziehen, und „Wiederholung“ bezieht sich auf die Häufigkeit, mit der der wiederkehrende Block wiederholt wird. Mit dem Begriff „effektive Tiefe“ bezeichnen die Autoren die Anzahl der in einem Transformator verwendeten Schichten, unabhängig davon, ob ihre Gewichte eindeutig sind. Sofern nicht anders angegeben, verwenden sie eine Max-Loop-Architektur, die nur eine einzige Ebene durchläuft, um eine effektive Tiefe zu erreichen. Sie verwendeten auch Eingabeinjektion und Restverbindungen, um eine Kopie der Eingabe an jede Schicht im Netzwerk weiterzugeben.

Vorteile von Schleifen

In Abbildung 3 (rechts) vergleichen die Autoren alle Architekturvarianten mit FIRE- und NoPE-Einbettungen für Trainingsadditionen mit Operanden bis zu 40 Bit. Obwohl die Anzahl der Parameter nur 1/10 der anderen Modelle beträgt, können wir sehen, dass der Schleifentransformator (geschleift, mit Eingangsinjektion und progressivem Verlust) die beste Out-of-Distribution-Leistung erzielt, wenn jede Art von Positionseinbettung verwendet wird. In Abbildung 8 demonstrieren die Autoren die Robustheit dieses Ergebnisses für verschiedene Trainingsdatengrößen.

Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

Bei wiederkehrenden Modellen können Sie die Anzahl der Schleifen für jeden Vorwärtsdurchlauf während des Trainings ändern. Dies verbessert tendenziell die Generalisierungsfähigkeit des Modells für schwierigere Aufgaben beim Testen, was auch als progressive Verlustberechnung bezeichnet wird. Diese Verlustfunktion ist eine konvexe Kombination der Verlustwerte von zwei Vorwärtsdurchgängen, wobei einer eine buchstäbliche Anzahl von Zyklen verwendet (16 für das 1 × 16-Modell) und der andere eine zufällig kleinere Anzahl von Zyklen verwendet.

Als nächstes untersuchen die Autoren die Auswirkung einer Änderung der Schleifenblockgröße bei gleichbleibender effektiver Tiefe. Sie halbierten die Anzahl der Schichten im Schleifenblock und verdoppelten die Schleifenanzahl und gingen von einem Modell mit 16 Schichten im Block und nur einer Schleifenanzahl (16 × 1, der Standardtransformator) zu einem Modell mit nur einer Schicht im Block über und Schleifenanzahl Es gibt 16-fache (1 × 16) Modelle.

Bei der Analyse dieser Ergebnisse anhand von Abbildung 4 stellten die Autoren fest, dass die Kombination von Schleifen und Abacus-Einbettungen in einigen Fällen die Leistung weiter verbessern kann. Insbesondere beim OOD-Problem erzeugte das Modell mit zwei Zyklen (8 × 2) die Hälfte des Fehlers des rein azyklischen Modells (16 × 1), während seine Genauigkeit beim OOD-Problem mit 100+ ebenfalls etwas höher war.

Abschließend variieren die Autoren in Anhang A.7.3 die effektive Tiefe des Modells, um den Einfluss der Anzahl der Parameter auf diese Aufgabe zu analysieren, einschließlich Abacus-, FIRE- und NoPE-Einbettungen. Während die Experimente in Abbildung 4 einen fairen Vergleich verschiedener Tiefen darstellen, verfügt das reine Standardtransformatormodell über viel mehr Parameter als das entsprechende Schleifenmodell. In Tabelle 3 im Anhang tragen die Autoren Parametergrößen auf die nächste Million genau ein.

Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

Experiment

Die Forscher untersuchten nicht nur Additionsprobleme, sondern auch Multiplikation und Sortierung.

Integer-Multiplikation

Abbildung 5 zeigt, dass das Abacus-Einbettungsmodell die Genauigkeit früherer Arbeiten innerhalb der Verteilung von 15-stelligen Multiplikationen übertrifft, ohne jeden Operanden mit Nullen auf die gleiche Länge aufzufüllen. Die Studie hebt insbesondere hervor, dass die Kombination von Abacus-Einbettungen mit FIRE auch die Genauigkeit bei den schwierigsten Verteilungsproblemen (unten rechts) im Vergleich zur Basislinie mit FIRE allein verbessert.

Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

Array-Sortierung

Tabelle 1 zeigt die Leistung eines Standardtransformators (acht Schichten), der mit verschiedenen Einbettungen trainiert wurde – FIRE, Abacus und ihre Kombination. Die Ergebnisse zeigen, dass die kombinierte Einbettungsmethode die Generalisierungsfähigkeit des Modells verbessert.

Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

Wie in Tabelle 2 gezeigt, beobachteten wir gemischte Ergebnisse bei der Kombination der Abacus+FIRE-Einbettungskombination mit verschiedenen Modellarchitekturen (effektive Tiefe 8).

Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

Abacus und verwandte Einbettungen

Abbildung 6 veranschaulicht das tatsächliche Potenzial der Integration von Abacus-Einbettungen in allgemeinere Systeme und zeigt, dass Abacus-Einbettungen in Kombination mit FIRE Problemlösungsfähigkeiten freisetzen können, die weit über die von FIRE-Einbettungen hinausgehen.

Nach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.

Weitere Forschungsdetails finden Sie im Originalpapier.

Das obige ist der detaillierte Inhalt vonNach einem Tag Training auf einer einzelnen GPU kann Transformer eine Genauigkeit von 99 % beim Addieren von 100-stelligen Zahlen erreichen.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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