- Veröffentlicht am
Die Entmystifizierung von DeepSeek-V3: Eine Analyse seiner revolutionären KI-Architektur
Einführung
DeepSeek-V3 stellt einen bedeutenden Fortschritt im Bereich der großen Sprachmodelle (LLMs) dar. Entwickelt von DeepSeek-AI, nutzt dieses Modell die Mixture-of-Experts (MoE) Architektur, um unvergleichliche Leistung zu bieten und gleichzeitig die Effizienz sowohl im Training als auch in der Inferenz aufrechtzuerhalten. Mit insgesamt 671 Milliarden Parametern und 37 Milliarden aktivierten pro Token ist DeepSeek-V3 darauf ausgelegt, komplexe Aufgaben mit bemerkenswerter Genauigkeit zu bewältigen.
Dieser Beitrag bietet eine detaillierte Durchsicht der Architektur von DeepSeek-V3 und erklärt seine Schlüsselkomponenten Schritt für Schritt. Jeder Abschnitt zerlegt die zugrunde liegenden Mechanismen und präsentiert die mathematischen Formulierungen, die ihre Funktionalität definieren. Die Erklärungen basieren auf dem offiziellen technischen Bericht zu DeepSeek-V3, der als primäre Informationsquelle der Autoren des Modells dient. Sie können das vollständige Papier hier einsehen: DeepSeek-V3 Technischer Bericht. Am Ende werden Sie ein klares Verständnis dafür haben, wie DeepSeek-V3 Effizienz, Skalierbarkeit und Inferenzoptimierung erreicht.
Architektur und Innovationen
DeepSeek-V3 führt mehrere Innovationen ein, die Effizienz, Skalierbarkeit und Genauigkeit verbessern. Die wichtigsten architektonischen Fortschritte umfassen:
- Multi-head Latent Attention – Reduziert die Inferenzkosten und verbessert die Aufmerksamkeits-Effizienz.
- DeepSeekMoE – Eine verfeinerte Mixture-of-Experts (MoE) Architektur, die die Spezialisierung der Experten und das Lastenbalancing verbessert.
- Auxiliary-Loss-Free Load Balancing – Eine neuartige Expertenauswahlstrategie, die die Notwendigkeit eines Hilfsverlusts beseitigt und eine stabile und effiziente Nutzung der Experten gewährleistet.
- Complementary Sequence-Wise Auxiliary Loss – Eine leichte Verlustfunktion, die lokale Ungleichgewichte innerhalb einer einzelnen Sequenz verhindert.
- Node-Limited Routing – Optimiert die Verteilung der Experten über die Rechenknoten, um die Kommunikationskosten zu reduzieren.
- No Token-Dropping Strategy – Gewährleistet eine stabile Token-Retention während des Trainings und der Inferenz.
- Multi-Token Prediction – Verbessert die Token-Darstellungen während des Trainings und kann für spekulatives Decoding in der Inferenz verwendet werden.
Jede dieser Komponenten trägt zur state-of-the-art Leistung von DeepSeek-V3 bei und erhält gleichzeitig die rechnerische Effizienz.
DeepSeek-V3 Modellarchitektur. Quelle DeepSeek-V3 Technischer Bericht
Multi-head Latent Attention
Multi-head Latent Attention (MLA) ist ein Grundpfeiler der Architektur von DeepSeek-V3. Dieser Mechanismus ermöglicht es dem Modell, Informationen effizienter zu verarbeiten, indem es sich auf die relevantesten Teile der Eingabedaten konzentriert. MLA reduziert den Rechenaufwand und erhält gleichzeitig eine hohe Genauigkeit, was es ideal für groß angelegte Sprachmodelle macht.
Schritt-für-Schritt-Erklärung
(a) Projektion des Eingabetokens auf den latenten Vektor
- Das Eingabetoken zum Zeitpunkt wird als bezeichnet. Hier hat die gleiche Dimension wie der verborgene Zustand des Modells.
- Es wird in einen latenten Vektor mit einer viel kleineren Dimension (wobei ) projiziert:
- Hier ist eine gelernt Projektionsmatrix, die die Dimensionalität von reduziert.
- Der latente Vektor speichert komprimierte Informationen, die zur Berechnung der Schlüssel- und Wert-Darstellungen im Aufmerksamkeitsmechanismus verwendet werden.
(b) Berechnung des Schlüsselvektors durch Hochskalierung vom latenten Vektor
- Der Schlüsselvektor wird berechnet, indem er von der latenten Vektordimension auf die volle Aufmerksamkeitsdimension hochskaliert wird:
- Hier ist eine gelernt Projektionsmatrix, die in die vollständige Schlüsselrepräsentation erweitert.
- Dies stellt sicher, dass die gleiche Dimensionalität wie die Schlüssel in der Multi-Head Attention (MHA) hat.
(c) Projektion und RoPE-Kodierung des Eingabetokens
- Das Eingabetoken wird zuerst von der Dimension auf unter Verwendung einer gelernten Projektionsmatrix projiziert:
- Hier ist eine gelernt Projektionsmatrix mit der Größe .
- Der projizierte Vektor wird dann unter Verwendung von Rotary Positional Embeddings (RoPE) an der Token-Position kodiert:
- Der RoPE-kodierte Schlüssel wird konkatenisiert mit den Schlüsselvektoren jedes Kopfes, um sicherzustellen, dass der gleiche positionskodierte Schlüssel über alle Köpfe hinweg geteilt wird.
- Nach der Konkatenation erhalten wir den endgültigen pro-Kopf Schlüsselvektor für jeden Aufmerksamkeitskopf mit der Dimensionalität:
(d) Berechnung des Wertvektors durch Hochskalierung vom latenten Vektor
- Der Wertvektor wird berechnet, indem er vom latenten Vektor mit der Dimension auf die volle Aufmerksamkeitsdimension hochskaliert wird:
- Hier ist eine gelernt Projektionsmatrix.
- Dies stellt sicher, dass die gleiche Dimensionalität wie die Werte in der Multi-Head Attention (MHA) hat.
(e) Berechnung des Abfragevektors mit niedrigrangiger Kompression
- Die Aufmerksamkeitsabfrage wird unter Verwendung einer niedrigrangigen Kompression berechnet, indem zuerst in einen latenten Raum mit der Dimension (wobei ) herunterprojiziert wird:
- Hier ist eine gelernt Herunterprojektionsmatrix, und der latente Vektor hat die Dimension:
- Die Abfrage wird dann mit einer gelernten Hochprojektionsmatrix wieder hochskaliert:
- Hier ist eine gelernt Hochprojektionsmatrix, die spezifisch für Abfragen ist und sich von der für Schlüssel und Werte verwendeten unterscheidet.
- RoPE-Kodierung wird auf den projizierten Abfragevektor an der Token-Position angewendet:
- Hier ist eine gelernt Projektionsmatrix mit der Größe .
- Schließlich wird die RoPE-kodierte Abfrage mit dem hochskalierten Abfragevektor konkatenisiert, um den endgültigen pro-Kopf Abfragevektor zu bilden:
- Die resultierende Dimensionalität jedes pro-Kopf Abfragevektors ist:
(f) Berechnung der Aufmerksamkeitsausgabe
- Die endgültige Aufmerksamkeitsausgabe wird unter Verwendung der Abfragen, Schlüssel und Werte berechnet:
- Hier gilt für jeden Kopf :
- Die Abfrage .
- Der Schlüssel .
- Der Wert .
- Die Ausgabe .
- Die Ähnlichkeit zwischen Abfrage und Schlüssel wird durch den Faktor (die Dimension von und ) skaliert, bevor die Softmax angewendet wird.
- Die Ausgaben aller Köpfe werden in einen einzigen Spaltenvektor zusammengeführt: der Einträge hat.
- Der endgültige verborgene Ausgabestatus wird berechnet als:
- Hier ist die gelernte Ausgabepunktionsmatrix.
- Die endgültige Ausgabe ist ein Spaltenvektor mit Einträgen, d.h. .
DeepSeekMoE
DeepSeekMoE ist eine spezialisierte Mixture of Experts (MoE) Architektur, die in DeepSeek-V3 für Feed-Forward-Netzwerke (FFNs) verwendet wird. Im Vergleich zu traditionellen MoE-Architekturen wie GShard führt DeepSeekMoE eine feinere Expertenzuweisung ein, bei der einige Experten als gemeinsame fungieren.
Schritt-für-Schritt-Erklärung
(a) FFN-Berechnung für jedes Token
- Lassen Sie den FFN-Eingang des -ten Tokens sein, wobei die verborgene Dimension ist.
- Die Ausgabe wird berechnet als:
- Hier:
- und bezeichnen die Anzahl der gemeinsamen und gerouteten Experten.
- repräsentiert den -ten gemeinsamen Experten.
- repräsentiert den -ten gerouteten Experten.
- ist der Gate-Wert für den -ten Experten.
- Sowohl als auch haben die gleiche verborgene Dimension .
(b) Normalisierung des Gate-Wertes
- Die Gate-Werte werden über die aktivierten Experten normalisiert:
- wobei der ursprüngliche Gate-Score ist.
(c) Top-K Expertenauswahl
- Jedes Token wird den Top Experten mit den höchsten Affinitätscores zugewiesen:
- Der Affinitätswert bestimmt die Routing-Wahrscheinlichkeit.
(d) Berechnung der Token-zu-Experten-Affinität
- Der Token-zu-Experten-Affinitätswert wird gegeben durch: Die Sigmoid-Funktion ist eine mathematische Funktion, die definiert ist als , die jede reelle Zahl in einen Bereich zwischen 0 und 1 abbildet, häufig verwendet für Wahrscheinlichkeitsabschätzungen und Aktivierungen in neuronalen Netzen.
- Der Schwerpunkt wird berechnet als:
- Hier:
- ist der Schwerpunktvektor des -ten gerouteten Experten.
- ist die Menge der Tokens, die in einem bestimmten Batch an den Experten geroutet werden.
- ist die Anzahl der Tokens, die dem Experten zugewiesen sind.
- Der Schwerpunkt wird während des Trainings gelernt, um Experten für verschiedene Arten von Tokens zu spezialisieren.
- Während der Inferenz bleibt fest und wird nur für Routing-Entscheidungen verwendet.
Auxiliary-Loss-Free Load Balancing
Für Mixture of Experts (MoE) Modelle kann eine unausgeglichene Expertenlast zu Routing-Kollaps führen, was die rechnerische Effizienz in Experten-parallelen Architekturen verringert. Konventionelle Lösungen verwenden Hilfsverluste, um die Tokenverteilung auszugleichen, aber große Hilfsverluste können die Modellleistung beeinträchtigen. Um diese Kompromisse zu vermeiden, führt DeepSeek-V3 eine hilfsverlustfreie Lastenausgleichsstrategie ein, die dynamisch einen Bias-Term für jeden Experten anpasst. Dieser Bias wird zu den Affinitätswerten hinzugefügt, um die Expertenauswahl zu bestimmen.
Schritt-für-Schritt-Erklärung
(a) Expertenauswahl mit Bias-Anpassung
- Jeder Experte hat einen Bias-Term , der zu dem ursprünglichen Affinitätswert vor dem Routing hinzugefügt wird:
- Hier:
- ist der ursprüngliche Token-zu-Experten-Affinitätswert.
- ist ein Bias-Term, der dem Experten zugewiesen ist.
- wird während des Trainings gelernt, um die Nutzung der Experten auszugleichen.
- Während der Inferenz bleibt fest und wird nur für Routing-Entscheidungen verwendet.
- Die Top- Funktion wählt die Experten mit den höchsten angepassten Werten aus.
(b) Bias-Term wird nur für Routing verwendet
- Der Bias-Term beeinflusst nicht die FFN-Berechnung.
- Er wird nur verwendet, um die Wahrscheinlichkeiten der Expertenauswahl anzupassen.
(c) Dynamische Bias-Aktualisierung zur Lastenausgleichung
- Am Ende jedes Trainingsschrittes wird der Bias-Term basierend auf der Expertenlast aktualisiert:
- Wenn der Experte überlastet ist, wird um einen Faktor von verringert.
- Wenn der Experte unterlastet ist, wird um einen Faktor von erhöht.
- Hier:
- ist ein Hyperparameter für die Bias-Aktualisierungsrate, der steuert, wie schnell angepasst wird.
- Am Ende jedes Trainingsschrittes wird der Bias-Term basierend auf der Expertenlast aktualisiert:
Complementary Sequence-Wise Auxiliary Loss
Obwohl DeepSeek-V3 hauptsächlich auf eine hilfsverlustfreie Strategie für den Lastenausgleich setzt, führt es einen komplementären sequenzweisen Ausgleichsverlust ein, um extreme Ungleichgewichte innerhalb einer einzelnen Sequenz zu verhindern. Dies stellt sicher, dass die Nutzung der Experten über die Tokens in einer Sequenz hinweg ausgeglichen bleibt.
Der sequenzweise Ausgleichsverlust wird definiert als:
wobei ein Hyperparameter für den Ausgleich ist, der in DeepSeek-V3 einen extrem kleinen Wert zugewiesen bekommt.
Schritt-für-Schritt-Erklärung
(a) Berechnung des Expertenlastanteils
- Der Anteil der Tokens, die dem Experten innerhalb einer Sequenz zugewiesen sind, wird berechnet als:
- Hier:
- ist die Anzahl der gerouteten Experten.
- ist die Anzahl der aktivierten Experten pro Token.
- ist die Sequenzlänge, die die Anzahl der Tokens darstellt.
- ist die Indikatorfunktion, die 1 zurückgibt, wenn der Experte zu den Top- ausgewählten Experten für das Token gehört.
(b) Normalisierter Expertenwahrscheinlichkeitswert
- Der normalisierte Token-zu-Experten-Gate-Wert wird berechnet als:
- Hier:
- ist der ursprüngliche Token-zu-Experten-Gate-Wert.
- Der Nenner stellt sicher, dass die Gate-Werte über alle gerouteten Experten hinweg auf 1 summiert werden.
(c) Berechnung der durchschnittlichen Expertennutzung
- Die durchschnittliche Wahrscheinlichkeit, dass der Experte über die Sequenz hinweg ausgewählt wird, ist:
- Dies stellt den durchschnittlichen normalisierten Gate-Wert für den Experten über alle Tokens in der Sequenz dar.
(d) Wie der sequenzweise Ausgleichsverlust verwendet wird
- bestraft Ungleichgewichte in der Nutzung der Experten innerhalb einer Sequenz.
- Er wird nur während des Trainings angewendet und nicht in der Inferenz.
- Er passt das Routing sanft an, um kurzfristige Überlastungen der Experten zu verhindern.
- Der Hyperparameter sorgt für minimale Störung des Hauptverlusts.
Node-Limited Routing
DeepSeek-V3 verwendet während des Trainings Node-Limited Routing, um die Kommunikationskosten in MoE-Modellen zu reduzieren. Jedes Token wird an höchstens Knoten geroutet, die basierend auf der Summe der höchsten Affinitätswerte unter den Experten auf jedem Knoten ausgewählt werden. Diese Einschränkung gewährleistet ein effizientes Lastenbalancing, während nahezu eine vollständige Berechnung-Kommunikationsüberlappung aufrechterhalten wird, was die Trainingseffizienz optimiert.
No Token-Dropping
Aufgrund seines effektiven Lastenbalancings lässt DeepSeek-V3 keine Tokens während des Trainings oder der Inferenz fallen. Das Modell erhält eine stabile Nutzung der Experten, und spezifische Bereitstellungsstrategien für die Inferenz gewährleisten ein ausgewogenes Token-Routing.
Multi-Token Prediction
DeepSeek-V3 führt Multi-Token Prediction (MTP) ein, ein Trainingsziel, das den Vorhersagebereich auf mehrere zukünftige Tokens pro Position erweitert. Dieser Ansatz verbessert die Trainingseffizienz und verbessert die Token-Darstellungen für eine bessere Vorhersage zukünftiger Tokens.
DeepSeek-V3 Multi-Token Prediction (MTP) Implementierung. Quelle DeepSeek-V3 Technischer Bericht
Schritt-für-Schritt-Erklärung
(a) MTP-Module
- MTP wird unter Verwendung von sequentiellen Modulen implementiert, die jeweils ein zusätzliches Token vorhersagen.
- Jedes -te MTP-Modul besteht aus:
- Einem gemeinsamen Ausgabekopf .
- Einem Transformer-Block .
- Einer Projektionsmatrix .
- Bei der Vorhersagetiefe wird die Darstellung des Tokens berechnet, indem die vorherige Tiefenrepräsentation des -ten Tokens mit der Einbettung des -ten Tokens kombiniert wird:
- Hier:
- ist eine gelernt Projektionsmatrix.
- ist die verborgene Darstellung der vorherigen Tiefe.
- ist die Einbettung des zukünftigen Tokens an der Position .
- RMSNorm wird zur Normalisierung verwendet, um die Aktivierungen ohne Mittelwertsubtraktion zu stabilisieren.
- Die transformierte Darstellung wird durch einen Transformer-Block verarbeitet: wobei die Eingabesequenzlänge darstellt und die Slicing-Operation (einschließlich beider Grenzen) bezeichnet.
- Schließlich berechnet der gemeinsame Ausgabekopf die Wahrscheinlichkeitsverteilung für das -te zusätzliche Vorhersagetoken: wobei ist, wobei die Größe des Wortschatzes ist. Der Ausgabekopf ordnet die Darstellung linear den Logits zu und wendet anschließend die Softmax-Funktion an, um die Vorhersagewahrscheinlichkeiten des -ten zusätzlichen Tokens zu berechnen.
(b) MTP-Trainingsziel
- Für jede Vorhersagetiefe wird ein Kreuzentropieverlust berechnet:
- wobei die Eingabesequenzlänge darstellt, das Ground-Truth-Token an der -ten Position repräsentiert und die vorhergesagte Wahrscheinlichkeit von ist, die vom -ten MTP-Modul gegeben wird.
- Die MTP-Verluste werden über alle Tiefen gemittelt und mit einem Gewichtungsfaktor skaliert, um den Gesamt-MTP-Verlust zu erhalten, der als zusätzliches Trainingsziel dient:
(c) MTP in der Inferenz
- MTP wird während des Trainings verwendet, um die Token-Darstellungen zu verbessern.
- Während der Inferenz sind MTP-Module deaktiviert, und nur das Hauptmodell wird für die Token-Vorhersage verwendet.
- MTP kann auch für Token-Spekulation umfunktioniert werden, um die Decodierungseffizienz zu verbessern.
Wichtige Erkenntnisse
- Effiziente Aufmerksamkeit mit MLA: Reduziert den Speicherbedarf, indem latente Raumprojektionen verwendet werden, um Schlüssel- und Wertdimensionen zu verkleinern, mit potenziellen Rechenersparnissen durch die Arbeit mit kleineren Darstellungen.
- Stabiles Expertenrouting mit DeepSeekMoE: Implementiert hilfsverlustfreies Lastenbalancing, um Routing-Kollaps zu verhindern und eine effiziente Spezialisierung der Experten zu gewährleisten. Verwendet einen bias-adjustierten Auswahlmechanismus, um eine gleichmäßige Token-zu-Experten-Verteilung aufrechtzuerhalten und die Stabilität des Modells zu verbessern, ohne zusätzliche Rechenlast einzuführen.
- Kein Token-Dropping: Gewährleistet eine stabile Token-Retention während des Trainings und der Inferenz, um eine Verschlechterung der Sequenzverarbeitung zu vermeiden.
- Multi-Token Prediction verbessert das Training: Verbessert die Token-Darstellungen und die Lerneffizienz, indem das Vorhersageziel über das nächste Token hinaus erweitert wird.
DeepSeek-V3 stellt einen großen Fortschritt sowohl in der Trainingseffizienz als auch in der Inferenzskalierbarkeit dar und setzt einen neuen Standard für Sprachmodelle der nächsten Generation.
Quelle(n)
Hat Ihnen dieser Beitrag gefallen? Fanden Sie sie aufschlussreich? Hinterlassen Sie gerne einen Kommentar unten, um Ihre Gedanken zu teilen oder Fragen zu stellen. Ein GitHub-Konto ist erforderlich, um an der Diskussion teilzunehmen.
Wenn Sie die mathematische Analyse von LLM-Architekturen wertvoll fanden und mehr Beiträge sehen möchten, die ihre inneren Abläufe im Detail erkunden, lassen Sie es uns wissen.