Preserving Networks [02/3]: Der Nachfolger großer Sprachmodellkonverter“

1. Beschreibung

        In dieser Arbeit schlagen wir das Retention Network (RETNET) als Infrastruktur für große Sprachmodellstrukturen vor und erreichen gleichzeitig Trainingsparallelität, niedrige Inferenzkosten und gute Leistung. Wir leiten diesen Zusammenhang zwischen Wiederholung und Besorgnis theoretisch ab. Anschließend schlagen wir eine mechanismuserhaltende Sequenzmodellierung vor, die drei Rechenparadigmen unterstützt, nämlich parallel, wiederkehrend und blockwiederkehrend. Insbesondere ermöglichen parallele Darstellungen Parallelität im Training. Die Schleifendarstellung ermöglicht eine kostengünstige O(1)-Inferenz, die den Decodierungsdurchsatz, die Latenz und den GPU-Speicher verbessert, ohne die Leistung zu beeinträchtigen. Die Chunked-Loop-Darstellung trägt dazu bei, die Effizienz bei der Modellierung alter langer Sequenzen mit linearer Komplexität zu verbessern, wobei jeder Chunk parallel codiert und die Chunks gleichzeitig iterativ zusammengefasst werden. Die experimentellen Ergebnisse der Sprachmodellierung zeigen, dass RETNET gute Skalierungsergebnisse, paralleles Training, kostengünstige Bereitstellung und effizientes Denken erzielt hat. Interessante Eigenschaften machen RETNET zu einem leistungsstarken Nachfolger des Transformers für große Sprachmodelle. Der Code ist unter https://aka.ms/retnet verfügbar

2. Über RetNets Open Source

Retention Networks (RetNet) haben eine vergleichbare Leistung wie Transformatoren gleicher Größe, können parallel trainiert werden, unterstützen aber den rekursiven Modus, was eine Inferenzkomplexität von O(1) pro Token ermöglicht.

Eine inoffizielle, aber vollständige Implementierung finden Sie in meinem Repo unten:

3. Das „unmögliche Dreieck“ der Generierung von Sequenzmodellen

Für Sequenzmodelle, insbesondere generative Modelle, haben wir die oben genannten drei Merkmale: schnelle Inferenz, paralleles Training und leistungsstarke Leistung. (Meiner Meinung nach gibt es noch eine weitere Dimension: die Extrapolation der Sequenzlänge. RetNet unterstützt dies möglicherweise, aber es gibt keine klaren Experimente.

RNNs haben eine schnelle Inferenz, aber ein langsames Training, lineare Transformatoren haben eine schwächere Leistung und Transformatoren haben eine Inferenz von O(n) pro Token. RetNet erfüllt alle drei Bedingungen:  paralleles Training, O(1)-Inferenz und Tick-Transformator.

4. Schnelle Verlaufsaufzeichnung

Es gibt verschiedene Möglichkeiten, den teuren Aufwand für Stromerzeugungstransformatoren zu verringern. Zu den bemerkenswerten Werken gehören Linear Transformers, Attention-Free Transformers (AFT; von Apple) und RWKV (von BlinkDL, basierend auf AFT).

Diese verdienen einen separaten Beitrag, deshalb werde ich nicht ins Detail gehen: Aber meiner Meinung nach sind sie alle mathematisch sehr elegant, insbesondere die Ableitung, wie RNNs parallelisiert werden können. Und ich finde RetNet interessanter, weil es auch über eine Blockdarstellung und einige raffinierte Tricks wie xpos verfügt.

5. Wie funktioniert das?

RetNet ist ein Plug-and-Play-Ersatz von „Aufmerksamkeit“ durch „ Aufbewahrung “ in derselben Transformer-Architektur .

Ich werde sie von oben nach unten vorstellen.

5.1. Jeder RetNet-Block

Formel für jeden RetNet-Block.

Auf der höchsten Ebene besteht RetNet aus mehreren identischen Blockstapeln, die jeweils MultiScaleRetention (MSR) und FeedForwardNetwork (FFN) enthalten. Sie verfügen außerdem über Ebenennormen und überspringen Verbindungen, genau wie Transformers. FFN ist auch fast identisch mit Transformers, einem 2-schichtigen MLP mit versteckter Dim-Light-Größe = 2x Einbettungsgröße, mit Gelu-Aktivierung.

Dies ist nur Transformer, wenn wir MSR durch MultiHeadAttention ersetzen. Daher sind alle Unterschiede im MSR zu finden.

5.2. Gated Multi-Scale-Konservierung

Multiscale ähnelt bullish. In der obigen Gleichung ist γ ein Hyperparameter für die Retention, der für jeden Kopf individuell definiert wird. Vor der Gruppennorm war dies der normale bullische Fokus, aber zurückhaltend.

Gated MSR fügt am Ausgang Gruppennormen, Swing Gates und Ausgabeprojektionen hinzu, die als zusätzliche Designoptionen angesehen werden können. (Gruppenspezifikationen ermöglichen die Skalierung von Skalarprodukten, aber das ist im Moment nicht so wichtig.  Der wichtigste Unterschied ( die Beibehaltung von Modulen) steht noch bevor.

5.3.Reserviert  _

Schauen wir uns abschließend an, was Aufbewahrung ist. Es bleiben drei Paradigmen übrig: parallel, Schleife und blockrekursiv. Schauen wir sie uns einzeln an.

Parallelreservierung

erhaltene Paralleldarstellung

Konzentrieren Sie sich auf die letzte Zeile. Ignorieren Sie  D , auch hier handelt es sich um ein Dot-Product-Problem ohne Softmax. Die wichtigen Details liegen also wieder in D und Theta .

  • Theta (und bar( Theta ), komplex konjugiert) ist eine komplexe Darstellung der xpos-Kodierung“  –  sie basiert auf gedrehten Einbettungen, damit das Modell Sequenzlängen besser ableiten kann. Die gleiche Darstellung existiert im nichtkomplexen Raum, und genau das ist xpos, das auf RoPE aufgebaut ist.

Weitere Informationen finden Sie  im xpos-Whitepaper . Ich fand dieses hilfreich, um dies zu verstehen.

  • D ist die kausale Maskierungs- und Zerfallsmatrix.

Wenn Sie  D zeichnen , dann  sieht D so aus:

gamma = 0.9
exponent = [[0, 0, 0, 0],
            [1, 0, 0, 0],
            [2, 1, 0, 0],
            [3, 2, 1, 0]]

D = tril(gamma**exponent)
# [[1.,     0.,     0.,     0.],
#  [0.9000, 1.,     0.,     0.],
#  [0.8100, 0.9000, 1.,     0.],
#  [0.7290, 0.8100, 0.9000, 1.]])
  • Das obere Dreieck ist 0 → kausale Maskierung.
  • Exponent = die Häufigkeit, mit der das vorherige Token verfallen ist. Dies wird deutlicher, wenn wir wiederkehrende Darstellungen sehen.

wiederkehrende Reservierung

wiederkehrende Reservierung

Sn ähnelt dem KV-Puffer in einem Transformator. Anstatt alle diese Matrizen nacheinander zu verketten, fasst RetNet sie zu einer einzigen Matrix zusammen und durchläuft dabei die erste Zeile. Dieser Wert wird dann mit der Abfrage des aktuellen Schritts multipliziert.

Dies ist genau das Gleiche wie die parallele Aufbewahrung.

Informelle Beweisskizze:

Sei  S_0 = 0. Wenn wir die Wiederholung von S_n lösen ,

Erinnern Sie sich an   die letzte Zeile der Exponentialmatrix von D in der Paralleldarstellung, die [3, 2, 1, 0] ist. Beachten Sie, dass n=4 . Wenn wir die Aufbewahrungsdauer des 4. Tokens im Vergleich zum 1. Token berechnen, verkürzen wir sie um das Dreifache, was n — i = 3 in der obigen Formel entspricht! Da der Rest gleich ist, sind die Paralleldarstellung und die Schleifendarstellung identisch.

Aufbewahrung blockieren

Das sieht kompliziert aus, aber in Wirklichkeit handelt es sich um eine parallele Berechnung jedes Blocks + Schleifenverkettung von Blöcken. Das Einzige, was zählt, ist die Anzahl der angewendeten Zerfälle .

5.4 Fehler in der Arbeit

Tatsächlich ist die   Blockdarstellung von Ri (die obige Gleichung) in der Arbeit falsch! Eigentlich sollte es so sein

Dabei ist der X-Operator das Kreuzprodukt und D_B  die  letzte Zeile der D-  Matrix. Intuitiv ergibt sich dies aus der abklingenden Multiplikation der Paralleldarstellung und der zyklischen Darstellung.

5.5 Schematische Darstellung

Das ist es! Oben ist ein zusammenfassendes Diagramm beider Darstellungen.

6. Warum Verfall?

Das wichtigste Detail ist also im Grunde, dass es etwas namens Zerfall verwendet und die Anwendung der richtigen Anzahl von Zerfällen eine Parallelisierung ermöglicht. Aber wir müssen verstehen, was die Beweggründe für diesen Rückgang sind. Die Herleitung (auf hohem Niveau) ist sehr einfach.

  1. Wir definieren den Schleifenzustand ( s_n ) als kv_cache. Dann befindet sich die rekursive Beziehung in der ersten Zeile der obigen Abbildung.
  2. Dann definieren wir die Ausgabe zum Zeitpunkt  n  als  Q_n * s_n . Die zweite Zeile oben schreibt dies und löst den Wiederholungszyklus auf, um die vollständige Abhängigkeit herauszuschieben. Beachten Sie, dass die Matrix mehrfach angewendet wird.

3. Nun diagonalisieren wir die A-Matrix wie folgt.

4. Das Λ-Zeichen kann dann in andere lernbare Parameter aufgenommen werden (Q_n =

Der mittlere Teil ist genau das, was wir zuvor beobachtet haben, γ (Zerfall) und θ .

Intuitiv funktionieren sie als „geschlossene Positionskodierung“ , die auch eine rekursive Form hat, sodass die Kodierung zum Zeitpunkt n im Voraus berechnet werden kann und so eine Parallelisierung ermöglicht wird.

7. Empirische Erkenntnisse

  • RetNet schlägt Transformer, weil es größer geworden ist. (Kritiker: Ich bin mir nicht sicher, ob dieser Trend anhalten wird)

  • RetNet übertrifft andere lineare Zeittransformatoren in puncto Leistung.

  • RetNet ist schnell. (Kritiker: Aufgrund der Architektur ist dies offensichtlich . Es macht keinen Sinn, drei Zahlen zu zeigen, um diesen Punkt hervorzuheben. Ehrlich gesagt, es ist nicht einmal erforderlich, ein Experiment durchzuführen, um diese Diagramme darzustellen ...

8. Kritiker

  • In dem Papier fehlen einige Details, die erst klar werden, wenn der offizielle Code veröffentlicht wird.
  • Auch der RWKV unterstützt die Parallelisierung von Trainings, wird im Papier jedoch fälschlicherweise als unmöglich dargestellt.
  • Ich prahle damit, wie schnell RetNet ist, es gibt drei Personen, die dasselbe sagen. :-)
  • Ich bin gespannt, ob sich dieser Trend auf größere Modelle ausweitet.
  • Ich bin mir nicht sicher, ob sie vorab trainiertes Gewicht abbauen werden.
  • Ich bin mir nicht sicher, ob sie ein Modell wie LLaMA schlagen werden.

9. Vorteile

  • schnell! (Ich kritisiere sie für ihre Prahlerei, aber es ist wirklich schnell, was gut ist)
  • Die Leistung ist vergleichbar. Wenn sich dieser Trend fortsetzt und die Leistung der größeren Modelle nicht sinkt, kann dies bei LLM der Fall sein, da diese deutlich günstiger sind.

Für Interessierte werfen Sie einen Blick auf meine Implementierung von RetNet:

GitHub – syncdoth/RetNet: Huggingface-kompatible Implementierung von RetNet (Retentive Networks, https://arxiv.org/pdf/2307.08621.pdf), einschließlich paralleler, wiederkehrender und abschnittsweiser Weiterleitung.

Supongo que te gusta

Origin blog.csdn.net/gongdiwudu/article/details/132493390
Recomendado
Clasificación