🐳DeepSeek-V3-0324: Anleitung zum lokalen Betrieb
Wie man DeepSeek-V3-0324 lokal mit unseren Dynamic-Quants ausführt, die die Genauigkeit wiederherstellen
Siehe bitte https://docs.unsloth.ai/basics/deepseek-r1-0528-how-to-run-locally (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?
Der ursprüngliche Upload von DeepSeek V3 liegt in float8 vor und benötigt 715GB. Mit Q4_K_M halbiert sich die Dateigröße auf etwa 404GB, und unsere dynamische 1,78-Bit-Quantisierung passt in etwa in 151GB. Wir empfehlen die Verwendung unserer 2,7-Bit-Quantisierung, um Größe und Genauigkeit auszubalancieren! Die 2,4-Bit-Variante funktioniert ebenfalls gut!
⚙️ Offizielle empfohlene Einstellungen
Laut DeepSeek, dies sind die empfohlenen Einstellungen für das Inferenzieren:
Temperatur von 0,3 (Vielleicht 0,0 für Programmierung wie hier zu sehen)
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
Hole dir die neueste
llama.cppauf GitHub hier. Du kannst auch den Build-Anweisungen unten folgen. Ändere-DGGML_CUDA=ONzu-DGGML_CUDA=OFFwenn du keine GPU hast oder nur CPU-Inferenz möchtest. Für Apple Mac / Metal-Geräte, setze-DGGML_CUDA=OFFdann wie gewohnt fort - Metal-Unterstützung ist standardmäßig aktiviert.
HINWEIS Verwendung von -DGGML_CUDA=ON für GPUs kann 5 Minuten zum Kompilieren dauern. Nur CPU dauert 1 Minute zum Kompilieren. Möglicherweise interessieren Sie sich für die vorkompilierten Binärdateien von llama.cpp.
Laden Sie das Modell herunter (nach der Installation
pip install huggingface_hub hf_transfer). Sie können wählenUD-IQ1_S(dynamischer 1,78bit-Quant) oder andere quantisierte Versionen wieQ4_K_M. Ich empfehle die Verwendung unserer dynamischen 2,7-Bit-Quantisierungempfehlen die Verwendung unseres 2,7-Bit Dynamic QuantUD-Q2_K_XL. Mehr Versionen unter: https://huggingface.co/unsloth/DeepSeek-V3-0324-GGUF
Führen Sie Unsloths Flappy-Bird-Test wie in unserer Anleitung zur dynamischen 1,58-Bit-Quantisierung für DeepSeek R1 beschrieben aus.
Bearbeiten
Sie können--threads 32für die Anzahl der CPU-Threads bearbeiten,--ctx-size 16384für Kontextlänge,--n-gpu-layers 2
Wenn 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:

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

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):
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/Localllama welches das Modell testet, indem es eine einfache Physik-Engine erstellt, um Kugeln in einem sich drehenden, eingeschlossenen Heptagon rotieren zu lassen.


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

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

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:
🕵️ Zusätzliche Erkenntnisse & Tipps
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_0Cache-Quantisierung. Das Ziel der Quantisierung ist die Unterstützung längerer Kontextlängen, da der KV-Cache ziemlich viel Speicher benötigt.Wir stellten fest, dass die
down_projin diesem Modell gegenüber Quantisierung extrem empfindlich ist. Wir mussten einige unserer dynamischen Quants, die 2 Bit verwendeten, überarbeitendown_projund verwenden jetzt 3 Bit als Minimum für all diese Matrizen.Die Verwendung von
llama.cpps Flash-Attention-Backend führt zu etwas schnelleren Decodiergeschwindigkeiten. Verwenden Sie-DGGML_CUDA_FA_ALL_QUANTS=ONbeim Kompilieren. Es ist außerdem am besten, Ihre CUDA-Architektur wie auf https://developer.nvidia.com/cuda-gpus gefunden einzustellen, um die Kompilierzeiten zu reduzieren, und setzen Sie sie dann über-DCMAKE_CUDA_ARCHITECTURES="80"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?

