🐳DeepSeek-V3-0324: Anleitung zum lokalen Betrieb

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

circle-info

Siehe bitte https://docs.unsloth.ai/basics/deepseek-r1-0528-how-to-run-locallyarrow-up-right (Update vom 28. Mai 2025) um zu erfahren, wie man DeepSeek schneller und effizienter ausführt!

DeepSeek ist wieder aktiv! Nachdem V3, R1 Zero und R1 im Dezember 2024 bzw. Januar 2025 veröffentlicht wurden, hat DeepSeek ihre 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 eine Grafik bereit, die zeigt, wie sie im Vergleich zum vorherigen V3-Checkpoint und anderen Modellen wie GPT 4.5 und Claude Sonnet 3.7 abschneiden. Aber wie führen wir ein Modell mit 671 Milliarden Parametern lokal aus?

MoE Bits
Typ
Platzbedarf auf Datenträger
Genauigkeit
Link
Details

1,78bit

IQ1_S

173GB

Ok

2,06/1,56bit

1,93bit

IQ1_M

183GB

Fair

2.5/2.06/1.56

2,42bit

IQ2_XXS

203GB

Vorgeschlagen

2,5/2,06bit

2,71bit

Q2_K_XL

231GB

Vorgeschlagen

3,5/2,5bit

3,5bit

Q3_K_XL

320GB

Großartig

4,5/3,5bit

4,5bit

Q4_K_XL

406GB

Am besten

5,5/4,5bit

circle-check

⚙️ Offizielle empfohlene Einstellungen

Laut DeepSeekarrow-up-right, dies sind die empfohlenen Einstellungen für das Inferenzieren:

  • Temperatur von 0,3 (Vielleicht 0,0 für Programmierung wie hier zu sehenarrow-up-right)

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

  • Chat-Vorlage: <|User|>Erstelle ein einfaches spielbares Flappy Bird Spiel in Python. Platziere das fertige Spiel innerhalb eines Markdown-Abschnitts.<|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 Systemprompts ebenfalls (optional) - es ist auf Chinesisch: 该助手为DeepSeek Chat,由深度求索公司创造。\n今天是3月24日,星期一。 was übersetzt heißt: Der Assistent ist DeepSeek Chat, erstellt von DeepSeek.\nHeute ist Montag, der 24. März.

  • Für die Quantisierung des KV-Cache verwenden Sie 8bit, NICHT 4bit - wir stellten fest, dass 4bit deutlich schlechter abschneidet.

📖 Tutorial: Wie man DeepSeek-V3 in llama.cpp ausführt

  1. Hole dir die neueste llama.cpp auf GitHub hierarrow-up-right. Du kannst auch den Build-Anweisungen unten folgen. Ändere -DGGML_CUDA=ON zu -DGGML_CUDA=OFF wenn du keine GPU hast oder nur CPU-Inferenz möchtest. Für Apple Mac / Metal-Geräte, setze -DGGML_CUDA=OFF dann wie gewohnt fort - Metal-Unterstützung ist standardmäßig aktiviert.

circle-exclamation
  1. Laden Sie das Modell herunter (nach der Installation pip install huggingface_hub hf_transfer ). Sie können wählen UD-IQ1_S(dynamischer 1,78bit-Quant) oder andere quantisierte Versionen wie Q4_K_M . Ich empfehle die Verwendung unserer dynamischen 2,7-Bit-Quantisierung empfehlen die Verwendung unseres 2,7-Bit Dynamic Quant UD-Q2_K_XL. Mehr Versionen unter: https://huggingface.co/unsloth/DeepSeek-V3-0324-GGUFarrow-up-right

  1. Führen Sie Unsloths Flappy-Bird-Test wie in unserer Anleitung zur dynamischen 1,58-Bit-Quantisierung für DeepSeek R1 beschrieben aus.

  2. Bearbeiten Sie können --threads 32 für die Anzahl der CPU-Threads bearbeiten, --ctx-size 16384 für Kontextlänge, --n-gpu-layers 2

chevron-rightWenn wir das Obige ausführen, erhalten wir zwei sehr unterschiedliche Ergebnisse. Standardmäßige 2-Bit-Version: Klicken, um Ergebnis anzuzeigen (Warnung vor Anfällen!) Dynamische 2-Bit-Version: Siehe das Ergebnis unten:hashtag

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

Dynamisch 2-Bit. Schafft es, ein spielbares Spiel zu erstellen.
  1. Wie DeepSeek-R1 hat V3 61 Schichten. Zum Beispiel können Sie bei einer 24GB-GPU oder 80GB-GPU damit rechnen, nach dem Abrunden auszulagern (um 1 reduzieren, wenn es zu Out-of-Memory kommt):

Quant
Dateigröße
24GB GPU
80GB GPU
2x80GB GPU

1.73bit

173GB

5

25

56

2.22bit

183GB

4

22

49

2.51bit

212GB

2

19

32

Ausführung auf Mac / Apple-Geräten

Für Apple Metal-Geräte seien Sie vorsichtig mit --n-gpu-layers. Wenn Sie feststellen, dass die Maschine den Speicher überschreitet, reduzieren Sie diesen Wert. Bei einer Maschine mit 128GB Unified Memory sollten Sie in der Lage sein, etwa 59 Schichten auszulagern.

🎱 Heptagon-Test

Wir testen unsere dynamischen Quantisierungen auch über r/Localllamaarrow-up-right welches das Modell testet, indem es eine einfache Physik-Engine erstellt, um Kugeln in einem sich drehenden, eingeschlossenen Heptagon rotieren zu lassen.

Das Ziel ist, das Heptagon drehen zu lassen, und die Kugeln im Heptagon sollten sich bewegen.
Cover

Nicht-dynamisches 2-Bit. Scheitert - WARNUNG VOR ANFÄLLEN nochmals!

Cover

Dynamisch 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 vollem fp8) ist unten:

chevron-rightDynamischer 2-Bit Heptagon-Codehashtag
chevron-rightNicht-dynamischer 2-Bit Heptagon-Codehashtag
chevron-rightFloat8 Heptagon-Codehashtag

🕵️ Zusätzliche Erkenntnisse & Tipps

  1. Unsere empirischen Tests zeigen, dass eine niedrigere KV-Cache-Quantisierung (4bit) die Generierungsqualität zu verschlechtern scheint - weitere Tests sind nötig, aber wir empfehlen die Verwendung von q8_0 Cache-Quantisierung. Das Ziel der Quantisierung ist die Unterstützung längerer Kontextlängen, da der KV-Cache ziemlich viel Speicher benötigt.

  2. Wir stellten fest, dass die down_proj in diesem Modell gegenüber Quantisierung extrem empfindlich ist. Wir mussten einige unserer dynamischen Quants, die 2 Bit verwendeten, überarbeiten down_proj und verwenden jetzt 3 Bit als Minimum für all diese Matrizen.

  3. Die Verwendung von llama.cpp s Flash-Attention-Backend führt zu etwas schnelleren Decodiergeschwindigkeiten. Verwenden Sie -DGGML_CUDA_FA_ALL_QUANTS=ON beim Kompilieren. Es ist außerdem am besten, Ihre CUDA-Architektur wie auf https://developer.nvidia.com/cuda-gpusarrow-up-right gefunden einzustellen, um die Kompilierzeiten zu reduzieren, und setzen Sie sie dann über -DCMAKE_CUDA_ARCHITECTURES="80"

  4. Die Verwendung eines min_p=0.01ist wahrscheinlich ausreichend. llama.cppStandardmäßig ist es 0.1, was wahrscheinlich nicht notwendig ist. Da ohnehin eine Temperatur von 0.3 verwendet wird, werden sehr unwahrscheinliche Token höchstwahrscheinlich kaum ausgewählt, daher ist das Entfernen sehr unwahrscheinlicher Token eine gute Idee. DeepSeek empfiehlt eine Temperatur von 0.0 für Programmieraufgaben.

Zuletzt aktualisiert

War das hilfreich?