Heim > Technologie-Peripheriegeräte > KI > Deepseek-V3 erklärte 1: Mehrköpfige latente Aufmerksamkeit

Deepseek-V3 erklärte 1: Mehrköpfige latente Aufmerksamkeit

PHPz
Freigeben: 2025-02-26 03:00:17
Original
632 Leute haben es durchsucht

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:

  • Zu den wichtigsten architektonischen Innovationen von Deepseek-V3 gehören MLA (Bulner Potential Achtung) [3], Deepseekmoe [4], Lastausgleich ohne Auxiliary-Verlust [5] und mehrfach markiertes Vorhersage-Training.
  • Deepseek-V3-Trainingsprozess, einschließlich Phasen vor der Ausbildung, Feinabstimmung und Verstärkung.

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:

  • Hintergrund: Wir werden mit Standard-MHA beginnen und erklären, warum während der Inferenzphase ein Schlüsselwert-Cache benötigt wird, wie MQA und GQA versuchen, ihn zu optimieren und wie Seil funktioniert, usw.
  • Bules Potenzielle Aufmerksamkeitsmechanismus (MLA): Einführliche Einführung in MLA, einschließlich seiner Motivationen, warum es Seil und seine Leistung entkoppeln muss.
  • Referenzen.
Hintergrund

Um MLA besser zu verstehen und diesen Artikel eins zu einem einzigen zu machen, werden wir mehrere verwandte Konzepte in diesem Abschnitt überprüfen, bevor wir uns mit den Details der MLA befassen.

mha im Decodertransformator

Beachten Sie, dass MLA entwickelt wurde, um die Schlussfolgerung der autoregressiven Textgenerierung zu beschleunigen, so

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: DeepSeek-V3 Explained 1: Multi-head Latent Attention

Angenommen, wir haben DeepSeek-V3 Explained 1: Multi-head Latent Attention n_h Aufmerksamkeitsköpfe, und die Dimension jedes Aufmerksamkeitskopfes wird als d_h ausgedrückt, so > · d_h ). für Modelle mit l

Schicht, wenn wir die Eingabe des t-ten Tags in dieser Ebene als

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]):

DeepSeek-V3 Explained 1: Multi-head Latent Attention wobei w^q , w^k und w^v sind lineare Mapping -Matrizen:

Teilen Sie nach dem Zuordnen die

q_t DeepSeek-V3 Explained 1: Multi-head Latent Attention, k_t und v_t in n_h t, um das proportionale Punktprodukt zu berechnen wobei

w^o

eine weitere Projektionsmatrix ist >: DeepSeek-V3 Explained 1: Multi-head Latent Attention 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. DeepSeek-V3 Explained 1: Multi-head Latent Attention

Die Beschleunigung, die durch Schlüsselwert-Cache mitgeliefert wird Kann Speicher Engpässe verursachen, wenn die Stapelgröße oder -sequenz länger ist.

Dies führt weiter zu zwei Techniken, die sich mit dieser Einschränkung befassen: Multi-Query-Aufmerksamkeit und Aufmerksamkeit der Gruppenfragen.

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.

Seil (rotierende Position einbetten)

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 Rotationsmatrix

auf 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;
    (x_3, x_4) -& gt;
  • dann tragen wir die Rotationsmatrix auf, um jedes Paar zu drehen:
wobei θ = θ (p) = p · θ_0 und θ_0 die grundlegende Frequenz

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 DeepSeek-V3 Explained 1: Multi-head Latent Attention positionbezogene : An jeder Position (oder in jedem Paar) werden wir eine andere Rotationsmatrix anwenden, wobei der Drehwinkel durch die Position bestimmt wird.

Seil wird aufgrund seiner Effizienz bei der Codierung langer Sequenzen in modernen Großsprachenmodellen häufig verwendet. Wie wir jedoch aus der obigen Formel aus erkennen können mit MLA.

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

Die grundlegende Idee von MLA besteht darin, die Aufmerksamkeitseingabe

h_t

in einen niedrigdimensionalen latenten Vektor zu komprimieren, dessen Dimension

d_c

ist, wobei

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

DeepSeek-V3 Explained 1: Multi-head Latent Attention ### Warum müssen Sie Seil entkoppeln

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 "

" in

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

und

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 **

************** absorbiert werden ********* länger von

w^q ** absorbiert werden. Um diesen Konflikt zu lösen, schlugen die Autoren vor, wie sie " entkoppeltes Seil

" nannten, indem sie zusätzliche Abfragevektoren sowie gemeinsame Schlüsselvektoren einführten und diese zusätzlichen Vektoren nur im Seilprozess verwenden, am Gleichzeitig halten Sie die ursprünglichen Tasten isoliert von der Rotationsmatrix in gewissem Maße.

Der gesamte MLA -Prozess kann wie folgt zusammengefasst werden (Gleichungsnummer wird aus Anhang C von [3] wiederverwendet): wobei

EQN.

DeepSeek-V3 Explained 1: Multi-head Latent Attention EQN.

    EQN.
  • EQN.
  • In diesem Prozess müssen Sie nur die blauen Variablen mit Kästchen zwischenspeichern. Dieser Prozess kann mit dem folgenden Flussdiagramm deutlicher erklärt werden:
  • ### Leistung von MLA
  • Die folgende Tabelle vergleicht die Anzahl der für den KV -Cache (pro Tag) erforderlichen Elemente und die Modellierungsfunktionen zwischen MHA, GQA, MQA und MLA, was zeigt, dass MLA tatsächlich zwischen Gedächtniseffizienz und Modellierungsfähigkeiten ein gutes Gleichgewicht erreichen kann.
Interessanterweise übertreffen die Modellierungsfunktionen von MLA sogar die des ursprünglichen MHA.

DeepSeek-V3 Explained 1: Multi-head Latent Attention 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.

Die Autoren von

DeepSeek-V3 Explained 1: Multi-head Latent Attention [3] analysierten auch MHA und MLA, und die Ergebnisse sind in der folgenden Tabelle zusammengefasst, wobei MLA insgesamt bessere Ergebnisse erzielte.

DeepSeek-V3 Explained 1: Multi-head Latent Attention referenzen

  • [1] Deepseek
  • [2] Deepseek-V3 Technischer Bericht
  • [3] Deepseek-V2: Ein leistungsstarkes, kostengünstiges Hybrid-Expertensprachenmodell
  • [4] Deepseekmoe: Auf dem Weg zur endgültigen Expertenspezialisierung in Hybrid -Expertensprachenmodell
  • [5] Unassistierte Strategie für Verlustlastausgleich für Hybrid -Expertenmodell
  • [6] Aufmerksamkeit ist alles, was Sie brauchen
  • [7] erzeugen Wikipedia, indem lange Sequenzen
  • zusammengefasst werden
  • [8] Verbesserung des Sprachverständnisses durch generative Vorausbildung
  • [9] Schnelltransformator Decodierung: Ein Schreibkopf ist ausreichend
  • [10] GQA: Training Ein generalisiertes Multi-Quer-Transformator-Modell aus einem Mehrkopf-Checkpoint
  • [11] Roform: Verbesserter Transformator mit rotierender Position inbett

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!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage