Deepseek-V3 Detaillierte Erklärungsreihe von Artikeln: Potenzieller Aufmerksamkeitsmechanismus von Bullen (MLA)
Dieser Artikel ist der erste Artikel in der "detaillierten Erklärung der Deepseek-V3" -Serie.
Diese Artikelreihe wird zwei Hauptthemen behandeln:
Dieser Artikel konzentriert sich hauptsächlich auf den Multi-Head-Potential Achtungsmechanismus (MLA) , der ursprünglich in der Entwicklung von Deepseek-V2 vorgeschlagen wurde und in Deepseek-V3 angewendet wurde.
Katalog:
mha im Decodertransformator
Die folgende Abbildung vergleicht drei Transformatorarchitekturen für die Dekodierung, wobei (a) der in der ursprünglichen "Aufmerksamkeit gesichtete Decodierer, das Sie benötigen" -Papier, zeigt. Der Decoder-Teil wird dann durch [6] vereinfacht, um das in (b) gezeigte Decoder-Transformatormodell zu erhalten, das später von vielen generativen Modellen wie GPT [8] verwendet wurde.
Heute wählen Großsprachenmodelle häufiger die in (c) gezeigte Struktur für stabileres Training, wenden Sie Normalisierung auf Eingänge an und nicht auf Ausgaben an und verbessern Sie Layernorm auf RMS -Norm. Dies wird als Basisarchitektur dienen, die wir in diesem Artikel diskutieren.
in diesem Zusammenhang folgen MHA -Berechnungen weitgehend dem Prozess in [6], wie in der folgenden Abbildung gezeigt:
Angenommen, wir haben n_h Aufmerksamkeitsköpfe, und die Dimension jedes Aufmerksamkeitskopfes wird als d_h ausgedrückt, so > · d_h ).
für Modelle mit l
h_t mit einer Dimension von d darstellen, dann dann Wir müssen eine lineare Mapping -Matrix verwenden, um die Abmessungen von H_t von d bis ( H_N · d_h ) abzubilden. formeller haben wir (EQ aus [3]):
wobei w^q , w^k und w^v sind lineare Mapping -Matrizen:
q_t , k_t und v_t in n_h t, um das proportionale Punktprodukt zu berechnen
wobei
eine weitere Projektionsmatrix ist >:
Beachten Sie, dass die oben beschriebenen Verfahren in Gleichung (1) bis (8) nur für einen einzelnen Marker sind. Während des Argumentationsprozesses müssen wir diesen Vorgang für jedes neu erzeugte Markup wiederholen, was viele wiederholte Berechnungen beinhaltet. Dies führt zu einer Technik, die als Schlüsselwert-Caching bezeichnet wird.
Schlüsselwert-Cache
Wie der Name schon sagt, ist das Schlüsselteilspeicher eine Technik, die den Autoregressionsprozess beschleunigt, indem frühere Schlüssel und Werte zwischengespeichert und wiederverwendet werden, anstatt sie in jedem Dekodierungsschritt neu zu berechnen.
Beachten Sie, dass KV -Cache normalerweise nur in der Inferenzphase verwendet wird, da wir während des Trainings die gesamte Eingangssequenz parallel verarbeiten müssen.
KV -Cache wird normalerweise als Rollpuffer implementiert. In jedem Dekodierungsschritt wird nur die neue Abfrage q berechnet, und der im Cache gespeicherte K und V werden wiederverwendet, um die Aufmerksamkeit mit dem neuen Q und der Wiederverwendung von K und V wiederverwendet zu werden. Gleichzeitig wird der neue markierte K und V für die spätere Verwendung auch zum Cache hinzugefügt.
Aufmerksamkeit mit mehreren Querien (MQA) gegen Gruppen-Query Achtung (GQA)
Die folgende Abbildung zeigt den Vergleich zwischen ursprünglichem MHA, gruppierter Abfrageaufmerksamkeit (GQA) [10] und Multi-Query-Aufmerksamkeit (MQA) [9].
Die Grundidee von MQA besteht darin, Einzelschlüsseln und Einzelwert -Header über alle Abfrage -Headers zu teilen, die die Speicherverwendung erheblich verringern können, aber auch die Aufmerksamkeitgenauigkeit beeinflussen. GQA kann als Interpolationsmethode zwischen MHA und MQA angesehen werden, wobei nur ein Paar Schlüssel und Wertschöpfungs -Header von nur einem Satz von Abfrageberichten und nicht allen Abfragen geteilt werden. Dies wird jedoch immer noch zu schlechteren Ergebnissen führen als MHA.
In den späteren Kapiteln werden wir sehen, wie es MLA schafft, die Speichereffizienz und die Modellierungsgenauigkeit auszugleichen.
Der letzte Hintergrund, den wir erwähnen müssen, ist Seil [11], das direkt zu Positionsinformationen in den Aufmerksamkeitsmechanismus codiert, indem die Abfrage- und Schlüsselvektoren in der Aufmerksamkeit mit mehreren Kopf unter Verwendung einer Sinusfunktion gedreht werden.
Insbesondere wendet Seil die positionabhängige Rotationsmatrixauf die Abfrage und den Schlüsselvektor jedes Tags an und verwendet Sinus- und Cosinusfunktionen als Grundlage, wendet sie jedoch auf einzigartige Weise zur Implementierung des Drehens an. Um zu verstehen, was es positionabhängig macht, betrachten Sie einen Spielzeugbettungsvektor mit nur 4 Elementen, d. H. (x_1, x_2, x_3, x_4).
Um Seil anzuwenden, gruppieren wir zuerst die kontinuierlichen Abmessungen in Paare:
(x_1, x_2) -& gt;
ist. In unserem 4D -Spielzeugbeispiel bedeutet dies (x_1, x_2) θ_0, während (x_3, x_4) 2 ⋅ θ θ_0 dreht.
Aus diesem Grund nennen wir diese Rotationsmatrix positionbezogene : An jeder Position (oder in jedem Paar) werden wir eine andere Rotationsmatrix anwenden, wobei der Drehwinkel durch die Position bestimmt wird.
Bules 'potenzieller Aufmerksamkeitsmechanismus
Schließlich können wir weiterhin den MLA -Abschnitt diskutieren. In diesem Abschnitt werden wir zunächst die fortgeschrittenen Ideen von MLA näher erläutern und dann darüber eingehen, warum es eine Änderung des Seils erfordert. Schließlich werden wir auch die detaillierten Algorithmen und ihre Leistung von MLA vorstellen.MLA: Fortgeschrittene Gedanken
h_t
in einen niedrigdimensionalen latenten Vektor zu komprimieren, dessen Dimensiond_c viel ist kleiner als das Original ( h_n · d_h ). Später, wenn wir die Aufmerksamkeit berechnen müssen, können wir diesen latenten Vektor wieder auf hochdimensionalen Raum abbilden, um Schlüssel und Werte wiederherzustellen. Daher muss nur der potenzielle Vektor gespeichert werden, wodurch der Speicherverbrauch erheblich verringert wird. Dieser Prozess kann mit der folgenden Gleichung formeller beschrieben werden, wobei c^{kv} _t der latente Vektor ist und w^{dkv}
ist zu H_T wird aus ( H_N · d_h ) auf die Komprimierungsmatrix von d_c (D im SuperScript hier dargestellt ", was Komprimierung und w^{uk} und w^{uv} sind beide obere Projektionsmatrizen, die gemeinsam genutzte latente Vektoren zurück in den hochdimensionalen Raum kartieren.
In ähnlicher Weise können wir die Abfrage einem potenziellen niedrigdimensionalen Vektor zuordnen und dann dem ursprünglichen hochdimensionalen Raum zurückzuordnen: Wie bereits erwähnt, ist Rope eine gemeinsame Wahl für das Training generativer Modelle, um lange Sequenzen zu bewältigen. Wenn wir die obige MLA -Richtlinie direkt anwenden, ist dies mit Seil unvereinbar. Um dies klarer zu sehen, überlegen Sie, was passiert, wenn wir die Aufmerksamkeit mit EQN berechnen. Die Matrix w^q und w^{uk} wird in der Mitte angezeigt, und ihre Kombination entspricht von d_c bis d a einzeln Mapping -Dimension für .
Im Originalpapier [3] beschreibt der Autor es als w^{uk} , das durch " w^q absorbiert werden kann, daher, Wir müssen w^{uk} im Cache nicht speichern, wodurch die Speicherverwendung weiter reduziert wird.
Dies ist jedoch nicht der Fall, wenn wir die Rotationsmatrix in Abbildung (4) betrachten, da das Seil die Rotationsmatrix links von w^{uk} anwendet und diese Rotationsmatrix irgendwann wird Befindet sich zwischen w^q w^{uk} transponiert.
Wie wir im Hintergrundabschnitt erklärt haben, ist diese Rotationsmatrix positionabhängig, was bedeutet, dass die Rotationsmatrix für jede Position unterschiedlich ist. Daher kann W^{UK} ** nicht von w^q ** w^q ** absorbiert werden.
Um diesen Konflikt zu lösen, schlugen die Autoren vor, wie sie " entkoppeltes Seil
Der gesamte MLA -Prozess kann wie folgt zusammengefasst werden (Gleichungsnummer wird aus Anhang C von [3] wiederverwendet):
wobei
### Warum müssen Sie Seil entkoppeln
EQN.
EQN.
Interessanterweise übertreffen die Modellierungsfunktionen von MLA sogar die des ursprünglichen MHA.
Insbesondere zeigt die folgende Tabelle die Leistung von MHA, GQA und MQA auf dem 7B -Modell, wobei MHA eine signifikant bessere Leistung hat als MQA und GQA.
[3] analysierten auch MHA und MLA, und die Ergebnisse sind in der folgenden Tabelle zusammengefasst, wobei MLA insgesamt bessere Ergebnisse erzielte.
referenzen
Das obige ist der detaillierte Inhalt vonDeepseek-V3 erklärte 1: Mehrköpfige latente Aufmerksamkeit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!