🐳DeepSeek-V3-0324: Anleitung zum lokalen Betrieb

Wie man DeepSeek-V3-0324 lokal ausführt, unter Verwendung unserer dynamischen Quants, die Genauigkeit wiederherstellen

circle-info

Bitte siehe 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! Nach der Veröffentlichung von V3, R1 Zero und R1 im Dezember 2024 und Januar 2025 hat DeepSeek ihre Checkpoints/Modelle für V3 aktualisiert und ein März-Update veröffentlicht!

Laut DeepSeek stieg MMLU-Pro um +5,3 % auf 81,2 %. GPQA +9,3 Prozentpunkte. AIME +19,8 % und LiveCodeBench +10,0 %! Sie stellten ein Diagramm bereit, das zeigt, wie sie im Vergleich zum vorherigen V3-Checkpoint und anderen Modellen wie GPT-4.5 und Claude Sonnet 3.7 abgeschnitten haben. Aber wie betreiben wir ein Modell mit 671 Milliarden Parametern lokal?

MoE-Bits
Typ
Platten-/Festplattengröße
Genauigkeit
Link
Details

1,78bit

IQ1_S

173 GB

Ok

2,06/1,56bit

1,93bit

IQ1_M

183GB

Fair

2.5/2.06/1.56

2,42bit

IQ2_XXS

203 GB

Vorgeschlagen

2,5/2,06bit

2,71bit

Q2_K_XL

231 GB

Vorgeschlagen

3,5/2,5bit

3,5bit

Q3_K_XL

320 GB

Großartig

4,5/3,5bit

4,5bit

Q4_K_XL

406 GB

Am besten

5,5/4,5bit

circle-check

⚙️ Offiziell empfohlene Einstellungen

Laut DeepSeekarrow-up-rightDies sind die empfohlenen Einstellungen für die Inferenz:

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

  • Min_P von 0,00 (optional, aber 0,01 funktioniert gut, der Standard in llama.cpp 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 System-Prompts 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 KV-Cache-Quantisierung 8bit verwenden, NICHT 4bit – wir stellten fest, dass 4bit deutlich schlechter abschneidet.

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

  1. Holen Sie sich die neueste llama.cpp auf GitHub hierarrow-up-right. Sie können auch den unten stehenden Build-Anweisungen folgen. Ändern Sie -DGGML_CUDA=ON zu -DGGML_CUDA=OFF wenn Sie keine GPU haben oder nur CPU-Inferenz wünschen.

circle-exclamation
  1. Laden Sie das Modell herunter über (nach Installation von pip install huggingface_hub hf_transfer ). Sie können wählen UD-IQ1_S(dynamisches 1,78-Bit-Quant) oder andere quantisierte Versionen wie Q4_K_M . Ich empfehle die Verwendung unserer dynamischen 2,7-Bit-Quantisierung UD-Q2_K_XL um Größe und Genauigkeit auszugleichen. Weitere Versionen unter: https://huggingface.co/unsloth/DeepSeek-V3-0324-GGUFarrow-up-right

  1. Führe Unsloths Flappy-Bird-Test wie in unserem 1,58-Bit-Dynamik-Quant für DeepSeek R1 beschrieben aus.

  2. Bearbeiten --threads 32 für die Anzahl der CPU-Threads bearbeiten, --ctx-size 16384 für die Kontextlänge, --n-gpu-layers 2 für das GPU-Offloading für wie viele Schichten. Versuchen Sie, es anzupassen, wenn Ihre GPU nicht mehr genügend Speicher hat. Entfernen Sie es auch, wenn Sie nur CPU-Inferenz haben.

chevron-rightWenn wir das Obige ausführen, erhalten wir zwei sehr unterschiedliche Ergebnisse. Standard 2-Bit-Version: Klicken, um Ergebnis zu sehen (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 bei einer 24GB- oder 80GB-GPU kann man erwarten, nach dem Abrunden auszulagern (um 1 reduzieren, wenn es wegen Speichermangel abstürzt):

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

1,73bit

173 GB

5

25

56

2,22bit

183GB

4

22

49

2,51bit

212GB

2

19

32

Ausführung auf Mac / Apple-Geräten

Bei Apple-Metal-Geräten sei vorsichtig mit --n-gpu-layers. Wenn der Rechner in den Out-of-Memory-Zustand gerät, reduziere diesen Wert. Bei einer Maschine mit 128 GB Unified Memory solltest du in der Lage sein, ungefähr 59 Schichten auszulagern.

🎱 Heptagon-Test

Wir testen unsere dynamischen Quants auch mittels r/Localllamaarrow-up-right der das Modell darin testet, eine grundlegende Physik-Engine zu erstellen, um Kugeln in einer rotierenden, geschlossenen Heptagon-Form zu simulieren.

Das Ziel ist, das Heptagon zum Drehen zu bringen, und die Kugeln im Heptagon sollten sich bewegen.
Cover

Nicht-dynamisch 2bit. Scheitert - WARNUNG VOR ANFÄLLEN wieder!

Cover

Dynamisch 2bit. Löst das Heptagon-Rätsel tatsächlich korrekt!!

Die dynamische 2,7-Bit-Quantisierung, die nur 230 GB 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) steht 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 die Verwendung einer niedrigeren KV-Cache-Quantisierung (4bit) die Generierungsqualität zu verschlechtern scheint - es müssen noch weitere Tests durchgeführt werden, aber wir empfehlen die Verwendung von q8_0 Cache-Quantisierung. Das Ziel der Quantisierung ist es, längere Kontextlängen zu ermöglichen, da der KV-Cache recht viel Speicher verwendet.

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

  3. Die Verwendung von llama.cpp s Flash-Attention-Backend führt zu etwas schnelleren Decodiergeschwindigkeiten. Verwende -DGGML_CUDA_FA_ALL_QUANTS=ON beim Kompilieren. Beachte, dass es auch am besten ist, deine CUDA-Architektur wie auf https://developer.nvidia.com/cuda-gpusarrow-up-right anzugeben, um Kompilierzeiten zu reduzieren, und setze 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 oder gar nicht gesampelt, daher ist das Entfernen sehr unwahrscheinlicher Token eine gute Idee. DeepSeek empfiehlt für Programmieraufgaben eine Temperatur von 0.0.

Zuletzt aktualisiert

War das hilfreich?