Das neue DSpark-Modul von DeepSeek ermöglicht spekulative Dekodierung DeepSeek-V4. Es magazine wie eine Nischen-Inferenzoptimierung aussehen, aber in der Produktion steigerte es die Generierungsgeschwindigkeit professional Benutzer um 60 bis 85 Prozent, ohne dass die Modellqualität darunter litt.
Was DSpark auszeichnet, ist, dass es zwei seit langem bestehende Probleme gleichzeitig angeht: die schwache Entwurfsqualität und die Verschwendung bei der Überprüfung von Entwürfen, während frühere Methoden nur eines angingen. In diesem Artikel werde ich erläutern, wie es beides löst und warum das im Produktionsmaßstab wichtig ist.
Was ist spekulative Dekodierung?
Die LLM-Generierung ist langsam, da jedes Token einen vollständigen Vorwärtsdurchlauf durch das Modell benötigt. Spekulative Dekodierung beschleunigt dies mit einem kleineren Entwurfsmodell, das mehrere zukünftige Token gleichzeitig vorhersagt, die das Zielmodell dann in einem einzigen Durchgang überprüft.

Wenn das Entwurfsmodell gute Vorhersagen macht, können aus einem einzigen Vorwärtsdurchlauf durch das Zielmodell mehrere Token erzeugt werden. Wenn es schlechte Vorhersagen trifft, kehrt es zu seinem normalen Tempo zurück. Die Ausgabequalität bleibt weiterhin erhalten, da das Zielmodell die Vorhersagen anhand seiner eigenen Wahrscheinlichkeitsverteilung überprüft.
Das zentrale Thema ist die Entwicklung eines geeigneten Entwurfsmodells:
- Wenn es bei langen Vorhersagen sequentiell und genau ist, kann es nicht mit dem Zielmodell mithalten und kann nicht mehrere Token produzieren, bevor das Ziel fertig ist.
- In diesem Fall nimmt die Latenz je nach Anzahl der verarbeiteten Blöcke weiter zu.
Indem das Entwurfsmodell schneller und parallel statt sequentiell gestaltet wird, werden die Vorhersagen im späteren Teil des Blocks ungenauer. DSpark demonstriert eine Lösung, die beide Faktoren gleichzeitig berücksichtigt.
Die Kernidee: Semi-autoregressives Drafting
Hier ist ein Muster der prädiktiven Modellierung: in einem autoregressiver Kontext (d. h. Eagle3), jedes generierte Token ist an alle zuvor generierten Token gebunden. Dies ist zwar repräsentativ für traditionelles maschinelles Lernen, ist jedoch ineffizient, da das Modell einen linearen Anstieg der Latenz erfährt, je länger die Anzahl der generierten Token ist.
In einem parallelen Kontext (z. B. DFlash) generiert das Modell einen gesamten Tokenblock in einem einzigen Vorwärtsdurchlauf. Dies führt zu einer sehr schnellen Ausgabe. Allerdings wird jeder Token isoliert von den anderen im Block positionierten Werten geschätzt. Wie Sie sich vorstellen können, kann die Ausgabe eines solchen Modells zu einer seltsamen Wortmischung führen. Nehmen wir als Beispiel „von“ und „Drawback“: Beide bilden eine sinnvolle Phrase („natürlich“ und „kein Drawback“), aber zusammen („von Drawback“) ergeben sie keinen Sinn mehr.

DSpark kombiniert eine weitgehend parallele Struktur aus Geschwindigkeitsgründen (viele unabhängige Verarbeitungspfade) mit einer winzigen Sequenzierungsstruktur, die lokale Abhängigkeiten zwischen Token hinzufügt. Zusammengenommen handelt es sich um einen größtenteils parallelen Ansatz mit einer dünnen Schicht Autoregression darüber, um Inkohärenzen in der gesamten Sequenz zu beheben.
Der Artikel stellt zwei Sequenzierungsstrukturen vor:
- Ein Markov-Kopf verwendet nur das vorhergehende Token plus eine Matrix mit niedrigem Rang, wodurch nahezu kein Overhead entsteht.
- Ein RNN Der Kopf behält einen minimal wiederkehrenden Zustand im gesamten Block bei, was ihm mehr Kontext verleiht als der Markov-Kopf.
DeepSeek hat herausgefunden, dass der Markov-Kopf im Wesentlichen alle Vorteile bei viel geringerer Komplexität bietet, additionally haben sie ihn in Produktion genommen.
Erste Schritte mit DeepSpec
DeepSeek hat den Trainings- und Evaluierungscode für seine Entwurfsmodelle als DeepSpec offengelegt. Dies ist ein vollständiges Repo zum Trainieren aller Arten von Entwurfsmodellen, und zwar nicht nur für DSpark, sondern auch für DFlash und Eagle3. Sie können ihre Vergleiche dieser Modelle mit diesem Repo reproduzieren.
Informationen zum Installieren der Abhängigkeiten und zum Klonen dieses Repositorys finden Sie in den im Repository enthaltenen README-Dateien.
git clone https://github.com/deepseek-ai/DeepSpec.git
cd DeepSpec
python -m pip set up -r necessities.txt
Dies umfasst die Set up zum Trainieren und Bewerten von Modellen mit DeepSpec. Sie müssen Ihre Daten jedoch weiterhin separat vorbereiten, indem Sie einen Mechanismus verwenden, um Ausgaben aus dem Zielmodell abzuleiten. Weitere Informationen dazu finden Sie im scripts/information/README.md innerhalb dieses Repos.
Praktisch: Coaching und Bewertung eines Entwurfsmodells
Ein DeepSpec-Workflow besteht aus drei Phasen: Daten vorbereiten, Ihr Modell anhand des Entwurfs trainieren und auswerten. Der Output einer Stufe wird zum Enter der nächsten Stufe.
Schritt 1: Auswählen einer Konfiguration
Sie finden Konfigurationen im Ordner config/ (es gibt eine Datei für jedes Paar von Algorithmen und Zielmodellen).
ls config/dspark/
# dspark_qwen3_4b.py dspark_qwen3_8b.py dspark_gemma4_12b.py
Jede Konfigurationsdatei gibt das Zielmodell, die Blockgröße und den zu verwendenden sequentiellen Kopf an. Wenn Sie möchten, dass Ihr Setup mit dem kleinsten im Dokument beschriebenen Benchmark übereinstimmt, sollten Sie das verwenden dspark_qwen3_4b.py Konfigurationsdatei.
Schritt 2: Trainieren des Modells
Um mit dem Coaching zu beginnen, verwenden Sie den folgenden Befehl:
bash scripts/practice/practice.sh --opts config_path=config/dspark/dspark_qwen3_4b.py
Das Skript erstellt möglicherweise einen Employee für jede GPU in Ihrem System. Checkpoint-Dateien werden in gespeichert ~/checkpoints///step_*. Wenn Sie nur einen einzelnen Knoten für das Coaching verwenden, müssen Sie den festlegen CUDA_VISIBLE_DEVICES Variable, die der Anzahl Ihrer GPUs entspricht.
Im Trainingsprozess selbst optimieren wir gleichzeitig drei Verlustarten:
- ein Kreuzentropieterm (zur korrekten Vorhersage des nächsten Tokens),
- ein Distributions-Matching-Begriff (der sich direkt auf die „Akzeptanzrate“ des generierten Inhalts bezieht),
- ein „Vertrauensverlust“
Letzteres ist wichtig, da es uns ermöglicht, den im nächsten Abschnitt beschriebenen Planungstrick umzusetzen.
Schritt 3: Bewertung
bash scripts/eval/eval.sh
--target_name_or_path Qwen/Qwen3-4B
--draft_name_or_path
~/checkpoints/deepspec/dspark_block8_qwen3_4b/step_latest
Die Verifizierung erfolgt in einem Durchgang. Messen Sie additionally, wie viele Token für drei Aufgabentypen akzeptiert werden: Mathematik, Programmieren und Chat. Mehr akzeptierte Token bedeuten weniger verschwendete Vorwärtspässe in Richtung des Zielmodells.
Experimentelle Ergebnisse
Die von DeepSeek präsentierten Zahlen waren in der Tat bemerkenswert. DSpark übertraf die akzeptierte Länge von Eagle3 um etwa 27–31 %. Die Leistung von DSpark übertraf die von DFlash um 16–18 %. Beide Verbesserungen blieben bei allen Qwen3-4B-, 8B- und 14B-Zielen konsistent. Darüber hinaus schnitten sie ähnlich ab Gemma4-12B Dies deutet auch darauf hin, dass an Gemmas Ergebnissen auch etwas dran ist und nicht nur eine Eigenart von Qwen.

Das familienübergreifende Ergebnis hilft zu klären, warum im Beitrag von DeepSeek die Titel von Gemma und Qwen aufgeführt waren. Dies sollte als besserer Hinweis angesehen werden als der Vergleich nur mit einem einzelnen Modell. Architekturspezifische Methods scheitern normalerweise, wenn sie an einer anderen Modellabteilung getestet werden.
Fallstricke und Dinge, die Menschen aus der Fassung bringen
Hier sind einige Informationen, die sehr wichtig sind, unabhängig davon, in welcher Kind die Informationen präsentiert werden:
- Chat überprüft im Gegensatz zum Code: Chat hat mehr gültige nächste Token (was bedeutet, dass er eine niedrigere Konfidenzrate hat) als Code, sodass die Konfidenz schneller abnimmt und die Planung aggressiver bereinigt wird.
- Statische Schwellenwerte sind keine dynamische Planung: Ein statischer Cutoff ist die Technologie des letzten Jahres und der Cutoff berücksichtigt nicht, wie ausgelastet Ihr System ist. DSpark berechnet für jeden Batch einen dynamischen Cutoff neu.
- Kausalität ist nicht verhandelbar: Da Sie nicht in die Zukunft blicken können, kann der Planer ein Token nicht überprüfen, bevor er überprüft, ob das Token validiert wurde. Dies wird häufig offline mithilfe des zweistufigen Konfidenzvorhersageprozesses verwaltet, der am Ende von V2 in Arbeit struggle.
- Am äußersten Ende sind die nominalen Prozentsätze sehr irreführend: Der Multiplikator von 661 % für MTP-1@V4-Flash basiert beispielsweise auf künstlichen Bedingungen. Die Metrik spiegelt nicht die reale Produktion eines Herstellers wider. Verwenden Sie daher die Multiplikation nicht als erwarteten Wert, sondern verwenden Sie stattdessen den angepassten Durchsatz von 60–85 %.
- Sie können die Erstellungskosten nicht erstatten: Selbst wenn Ihre Anfrage nicht angenommen wird und Sie zum Zeitpunkt der Anfrage dennoch die volle Bearbeitungsgebühr zahlen, selbst wenn das System die Überprüfung nach der Planung bereinigt.
Abschluss
DSpark ist eine deutliche Erinnerung daran, dass Inferenzbeschleunigungen viele Ursachen haben können. Nicht jeder Gewinn erfordert ein größeres Modell oder bessere {Hardware}; Manchmal liegt es daran, zuzugeben, dass Entwürfe möglicherweise ungenau sind, und den Planer dieses Eingeständnis clever umgehen zu lassen.
Wenn Sie spekulative Dekodierung unter unterschiedlichen Anforderungslasten ausführen, gilt die Idee auch dann, wenn Ihre Architektur nicht DeepSeek-ähnlich ist. Die Prämisse ist einfach: Überprüfen Sie nur, was einen positiven Erwartungswert hat.
Und wenn Sie sich fragen, wie sich der Markov-Kopf gegen die volle Aufmerksamkeit des Draft-Blocks schlägt, dann ist das das nächste Kaninchenloch, dem Sie nachjagen müssen. Sie können es selbst testen, da das DeepSpec-Repo alles enthält, was Sie brauchen.
Häufig gestellte Fragen
A. In der Produktion wurde die Generierungsgeschwindigkeit professional Benutzer um 60 bis 85 Prozent verbessert, ohne dass die Modellqualität darunter litt.
A: Der Markov-Kopf bietet im Wesentlichen alle Vorteile bei einer viel geringeren Implementierungskomplexität und ging daher in Produktion.
A. Ja. Die Prämisse, dass nur überprüft wird, was einen positiven erwarteten Wert hat, gilt für alle spekulativen Decodierungseinstellungen unter unterschiedlichen Anforderungslasten.
Melden Sie sich an, um weiterzulesen und von Experten kuratierte Inhalte zu genießen.
