For the complete documentation index, see llms.txt. This page is also available as Markdown.

🐳DeepSeek-V3-0324: Wie man lokal ausführt

Wie man DeepSeek-V3-0324 lokal mit unseren dynamischen Quants ausführt, die die Genauigkeit wiederherstellen

Bitte beachten Sie https://docs.unsloth.ai/basics/deepseek-r1-0528-how-to-run-locally (Aktualisierung vom 28. Mai 2025) um zu lernen, wie man DeepSeek schneller und effizienter ausführt!

DeepSeek legt wieder los! Nach der Veröffentlichung von V3, R1 Zero und R1 im Dezember 2024 und Januar 2025 hat DeepSeek seine Checkpoints / Modelle für V3 aktualisiert und ein März-Update veröffentlicht!

Laut DeepSeek sprang MMLU-Pro um +5,3 % auf 81,2 %. GPQA +9,3 Prozentpunkte. AIME + 19,8 % und LiveCodeBench + 10,0 %! Sie stellten einen Plot bereit, der zeigte, wie sie im Vergleich zum vorherigen V3-Checkpoint und anderen Modellen wie GPT 4.5 und Claude Sonnet 3.7 abschnitten. Aber wie führen wir ein Modell mit 671 Milliarden Parametern lokal aus?

MoE-Bits
Typ
Festplattengröße
Genauigkeit
Link
Details

1,78 Bit

IQ1_S

173GB

Okay

2,06/1,56 Bit

1,93 Bit

IQ1_M

183 GB

Mittel

2.5/2.06/1.56

2,42 Bit

IQ2_XXS

203GB

Empfohlen

2,5/2,06 Bit

2,71 Bit

Q2_K_XL

231GB

Empfohlen

3,5/2,5 Bit

3,5 Bit

Q3_K_XL

320GB

Großartig

4,5/3,5 Bit

4,5 Bit

Q4_K_XL

406GB

Am besten

5,5/4,5 Bit

⚙️ Offiziell empfohlene Einstellungen

Laut DeepSeek, dies sind die empfohlenen Einstellungen für die Inferenz:

  • Temperatur von 0,3 (Vielleicht 0,0 für Programmierung, da hier zu sehen)

  • Min_P von 0,00 (optional, aber 0,01 funktioniert gut, der Standard von llama.cpp ist 0,1)

  • Chat-Vorlage: <|User|>Erstelle ein einfaches spielbares Flappy-Bird-Spiel in Python. Platziere das fertige Spiel in einem Markdown-Abschnitt.<|Assistant|>

  • Ein BOS-Token von <|begin▁of▁sentence|> wird während der Tokenisierung automatisch hinzugefügt (NICHT manuell hinzufügen!)

  • DeepSeek erwähnte die Verwendung eines System-Prompts ebenfalls (optional) - es ist auf Chinesisch: Dieser Assistent ist DeepSeek Chat, erschaffen von DeepSeek.\nHeute ist Montag, der 24. März. was übersetzt wird als: Der Assistent ist DeepSeek Chat, erstellt von DeepSeek.\nHeute ist Montag, der 24. März.

  • Für die KV-Cache-Quantisierung verwende 8 Bit, NICHT 4 Bit – wir haben festgestellt, dass es deutlich schlechter abschneidet.

📖 Tutorial: So führst du DeepSeek-V3 in llama.cpp aus

  1. Holen Sie sich die neueste llama.cpp auf hier auf GitHub. Sie können auch die folgenden Build-Anweisungen befolgen. Ändern Sie -DGGML_CUDA=ON zu -DGGML_CUDA=OFF wenn Sie keine GPU haben oder nur CPU-Inferenz möchten. Für Apple-Mac-/Metal-Geräte, setzen Sie -DGGML_CUDA=OFF und fahren Sie dann wie gewohnt fort – Metal-Unterstützung ist standardmäßig aktiviert.

  1. Lade das Modell über (nach der Installation von pip install huggingface_hub hf_transfer ). Sie können UD-IQ1_S(dynamische 1,78-Bit-Quantisierung) oder andere quantisierte Versionen wie Q4_K_M . Ich empfehle die Verwendung unserer dynamischen 2,7-Bit-Quantisierung UD-Q2_K_XL zu verwenden, um Größe und Genauigkeit auszubalancieren. Weitere Versionen unter: https://huggingface.co/unsloth/DeepSeek-V3-0324-GGUF

  1. Führe den Flappy-Bird-Test von Unsloth aus, wie in unserer 1,58-Bit-dynamischen Quantisierung für DeepSeek R1 beschrieben.

  2. Bearbeiten --threads 32 für die Anzahl der CPU-Threads, --ctx-size 16384 für die Kontextlänge, --n-gpu-layers 2 für GPU-Offloading auf wie viele Layer. Versuche, ihn anzupassen, wenn deiner GPU der Speicher ausgeht. Entferne ihn auch, wenn du nur CPU-Inferenz hast.

Wenn wir das Obige ausführen, erhalten wir 2 sehr unterschiedliche Ergebnisse. Standard-2-Bit-Version: Klicken, um das Ergebnis anzuzeigen (Anfallwarnung!) Dynamische 2-Bit-Version: Siehe das Ergebnis unten:

Standard-2-Bit. Scheitert mit Hintergrund, scheitert bei Kollision

Dynamische 2-Bit. Erzeugt erfolgreich ein spielbares Spiel.
  1. Wie DeepSeek-R1 hat V3 61 Schichten. Zum Beispiel kannst du bei einer 24GB-GPU oder 80GB-GPU nach dem Abrunden mit folgendem Offloading rechnen (um 1 reduzieren, wenn es aus dem Speicher läuft):

Quant
Dateigröße
24-GB-GPU
80-GB-GPU
2x80-GB-GPU

1,73 Bit

173GB

5

25

56

2,22 Bit

183 GB

4

22

49

2,51 Bit

212 GB

2

19

32

Ausführung auf Mac-/Apple-Geräten

Bei Apple-Metal-Geräten sei vorsichtig mit --n-gpu-layers. Wenn du feststellst, dass die Maschine aus dem Speicher läuft, reduziere ihn. Auf einer Maschine mit 128GB Unified Memory solltest du etwa 59 Layer auslagern können.

🎱 Heptagon-Test

Wir testen unsere dynamischen Quants auch über r/Localllama das das Modell darauf testet, eine einfache Physik-Engine zu erstellen, um Bälle zu simulieren, die in einer sich bewegenden, geschlossenen Heptagonform rotieren.

Das Ziel ist, das Heptagon rotieren zu lassen, und die Bälle im Heptagon sollten sich bewegen.
Cover

Nicht-dynamisches 2-Bit. Scheitert - ANFALLWARNUNG wieder!

Cover

Dynamische 2-Bit. Löst das Heptagon-Rätsel tatsächlich korrekt!!

Cover

Ursprüngliches float8

Die dynamische 2,7-Bit-Quantisierung, die nur 230GB groß ist, schafft es tatsächlich, das Heptagon-Rätsel zu lösen! Die vollständige Ausgabe für alle 3 Versionen (einschließlich des vollständigen fp8) ist unten:

Dynamischer 2-Bit-Heptagon-Code
Nicht-dynamischer 2-Bit-Heptagon-Code
Float8-Heptagon-Code

🕵️ Zusätzliche Erkenntnisse & Tipps

  1. Wir haben festgestellt, dass die Verwendung einer niedrigeren KV-Cache-Quantisierung (4 Bit) die Generierungsqualität gemäß empirischen Tests zu verschlechtern scheint – es sind weitere Tests nötig, aber wir empfehlen die Verwendung von q8_0 Cache-Quantisierung. Das Ziel der Quantisierung ist es, längere Kontextlängen zu unterstützen, da der KV-Cache ziemlich viel Speicher verwendet.

  2. Wir haben festgestellt, dass die down_proj in diesem Modell extrem empfindlich gegenüber Quantisierung ist. Wir mussten einige unserer dynamischen Quantisierungen, die 2 Bit für down_proj verwendeten, neu erstellen, und jetzt verwenden wir 3 Bit als Minimum für all diese Matrizen.

  3. Die Verwendung von llama.cpp s Flash-Attention-Backend führt zu etwas schnelleren Decodierungsgeschwindigkeiten. Verwenden Sie -DGGML_CUDA_FA_ALL_QUANTS=ON beim Kompilieren. Beachten Sie, dass es auch am besten ist, Ihre CUDA-Architektur wie unter https://developer.nvidia.com/cuda-gpus festzulegen, um die Kompilierungszeiten zu verkürzen, und sie dann über -DCMAKE_CUDA_ARCHITECTURES="80"

  4. Die Verwendung eines min_p=0.01reicht wahrscheinlich aus. llama.cppist standardmäßig 0,1, was wahrscheinlich nicht notwendig ist. Da ohnehin eine Temperatur von 0,3 verwendet wird, werden wir höchstwahrscheinlich sehr unwahrscheinlich Tokens mit niedriger Wahrscheinlichkeit sampeln, daher ist das Entfernen sehr unwahrscheinlicher Tokens eine gute Idee. DeepSeek empfiehlt eine Temperatur von 0,0 für Programmieraufgaben.

Zuletzt aktualisiert

War das hilfreich?