🐳DeepSeek-V3-0324: Anleitung zum lokalen Betrieb
Wie man DeepSeek-V3-0324 lokal ausführt, unter Verwendung unserer dynamischen Quants, die Genauigkeit wiederherstellen
Bitte siehe 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! 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?
Das originale DeepSeek V3-Upload liegt in float8 vor und belegt 715 GB. Durch die Verwendung von Q4_K_M wird die Dateigröße etwa halbiert auf ca. 404 GB, und unsere dynamische 1,78-Bit-Quantisierung passt in ungefähr 151 GB. Wir empfehlen die Verwendung unserer 2,7-Bit-Quantisierung, um Größe und Genauigkeit auszugleichen! Die 2,4-Bit-Variante funktioniert ebenfalls gut!
⚙️ Offiziell empfohlene Einstellungen
Laut DeepSeekDies sind die empfohlenen Einstellungen für die Inferenz:
Temperatur von 0,3 (Vielleicht 0,0 für Codierung wie hier zu sehen)
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
Holen Sie sich die neueste
llama.cppauf GitHub hier. Sie können auch den unten stehenden Build-Anweisungen folgen. Ändern Sie-DGGML_CUDA=ONzu-DGGML_CUDA=OFFwenn Sie keine GPU haben oder nur CPU-Inferenz wünschen.
HINWEIS: Die Verwendung von -DGGML_CUDA=ON für GPUs kann 5 Minuten Kompilierzeit benötigen. Nur CPU braucht 1 Minute zum Kompilieren. Möglicherweise interessieren Sie sich für die vorcompilierten Binaries von llama.cpp.
Laden Sie das Modell herunter über (nach Installation von
pip install huggingface_hub hf_transfer). Sie können wählenUD-IQ1_S(dynamisches 1,78-Bit-Quant) oder andere quantisierte Versionen wieQ4_K_M. Ich empfehle die Verwendung unserer dynamischen 2,7-Bit-QuantisierungUD-Q2_K_XLum Größe und Genauigkeit auszugleichen. Weitere Versionen unter: https://huggingface.co/unsloth/DeepSeek-V3-0324-GGUF
Führe Unsloths Flappy-Bird-Test wie in unserem 1,58-Bit-Dynamik-Quant für DeepSeek R1 beschrieben aus.
Bearbeiten
--threads 32für die Anzahl der CPU-Threads bearbeiten,--ctx-size 16384für die Kontextlänge,--n-gpu-layers 2fü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.
Wenn 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:

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

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):
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/Localllama der das Modell darin testet, eine grundlegende Physik-Engine zu erstellen, um Kugeln in einer rotierenden, geschlossenen Heptagon-Form zu simulieren.


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

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

Original float8
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:
🕵️ Zusätzliche Erkenntnisse & Tipps
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_0Cache-Quantisierung. Das Ziel der Quantisierung ist es, längere Kontextlängen zu ermöglichen, da der KV-Cache recht viel Speicher verwendet.Wir fanden das
down_projin diesem Modell als extrem empfindlich gegenüber Quantisierung. Wir mussten einige unserer dynamischen Quants, die 2 Bits fürdown_projverwendeten, überarbeiten und verwenden jetzt 3 Bits als Minimum für all diese Matrizen.Die Verwendung von
llama.cpps Flash-Attention-Backend führt zu etwas schnelleren Decodiergeschwindigkeiten. Verwende-DGGML_CUDA_FA_ALL_QUANTS=ONbeim Kompilieren. Beachte, dass es auch am besten ist, deine CUDA-Architektur wie auf https://developer.nvidia.com/cuda-gpus anzugeben, um Kompilierzeiten zu reduzieren, und setze 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 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?

