Wie man DeepSeek-V4 lokal ausführt: Pro- und Flash-Setup-Anleitung
Wie man DeepSeek-V4 lokal ausführt: Pro- und Flash-Setup-Anleitung
DeepSeek-V4 ist eine der ambitioniertesten Open-Weight-Modellveröffentlichungen von DeepSeek bisher. Die Familie umfasst DeepSeek-V4-Pro, ein Mixture-of-Experts-Modell mit 1,6 Billionen Parametern und 49 Milliarden aktivierten Parametern, sowie DeepSeek-V4-Flash, ein kleineres MoE-Modell mit 284 Milliarden Parametern und 13 Milliarden aktivierten Parametern. Beide Modelle unterstützen eine Kontextlänge von bis zu einer Million Tokens.
Diese Kombination klingt spannend, wirft aber auch eine praktische Frage auf: Kann man DeepSeek-V4 tatsächlich lokal ausführen?
Die Antwort lautet ja, aber mit einem wichtigen Vorbehalt. DeepSeek-V4 ist kein Modell für den Laptop. Selbst die Flash-Version erfordert eine ernsthafte Multi-GPU-Deployment. Diese Anleitung führt Sie durch den lokalen Setup-Prozess mit den offiziellen DeepSeek-Modell-Repositories auf Hugging Face, erklärt die Hardware, die Sie einplanen sollten, und zeigt, wie Sie die offiziellen Inferenz- und Codierungsdateien korrekt verwenden.
Referenzmodellseiten:
DeepSeek-V4-Pro vs DeepSeek-V4-Flash
Bevor Sie etwas herunterladen, wählen Sie die richtige Modellvariante.
| Modell | Gesamtparameter | Aktivierte Parameter | Kontextlänge | Präzision | Am besten geeignet für |
|---|---|---|---|---|---|
| DeepSeek-V4-Flash | 284B | 13B | 1M | FP4 + FP8 gemischt | Schnellere lokale Experimente, kostengünstiger Betrieb, Coding-Assistenten, Tests mit langem Kontext |
| DeepSeek-V4-Pro | 1,6T | 49B | 1M | FP4 + FP8 gemischt | Maximale Qualität, Forschungslabore, große GPU-Cluster, anspruchsvolle Reasoning- und Agentenaufgaben |
Das wichtigste Detail ist, dass DeepSeek-V4 eine Mixture-of-Experts (MoE)-Architektur verwendet. Nur ein Teil des Modells wird für jedes Token aktiviert, was die Rechenkosten senkt. Dennoch müssen die Modellgewichte gespeichert und geladen werden. Das bedeutet, dass die Anforderungen an GPU-Speicher und Speicherplatz weiterhin sehr hoch sind.
Für die meisten Entwickler ist DeepSeek-V4-Flash der realistische Einstiegspunkt. DeepSeek-V4-Pro sollte eher als Cluster-Scale-Deployment betrachtet werden.
Was macht DeepSeek-V4 anders?
Laut der Modellkarte von DeepSeek bringt die V4-Serie mehrere große Verbesserungen:
- Hybride Attention-Architektur: DeepSeek kombiniert Compressed Sparse Attention (CSA) und Heavily Compressed Attention (HCA), um die Effizienz bei langem Kontext zu verbessern. Im Setting mit einer Million Tokens verwendet DeepSeek-V4-Pro angeblich deutlich weniger KV-Cache als DeepSeek-V3.2.
- Manifold-Constrained Hyper-Connections (mHC): Dies verbessert die Stabilität in sehr tiefen Netzwerken bei gleichzeitiger Erhaltung der Modellkapazität.
- Muon Optimizer: DeepSeek nutzt Muon während des Trainings für bessere Konvergenz und Stabilität.
- Langer Kontext: Sowohl Pro als auch Flash unterstützen bis zu 1M Tokens, wobei DeepSeek mindestens 384K Kontext für den Think Max Modus empfiehlt.
- Mehrere Reasoning-Modi: DeepSeek-V4 unterstützt Non-think, Think High und Think Max Stil der Nutzung.
Für die lokale Bereitstellung sind die zwei wichtigsten praktischen Änderungen die gemischte FP4/FP8-Präzision und das benutzerdefinierte Chat-Codierungsformat.
Hardware-Anforderungen
DeepSeek-V4 ist nicht für Consumer-GPUs wie die RTX 4090 ausgelegt, es sei denn, Sie experimentieren in Zukunft nur mit stark modifizierten Community-Quantisierungen. Für die offiziellen Gewichte planen Sie mit Server-GPUs.
Praktische Hardware-Planung
| Anwendungsfall | Empfohlene Hardware | Hinweise |
|---|---|---|
| Test-Deployment DeepSeek-V4-Flash | 4-8 NVIDIA GPUs mit viel Speicher | H100/H200/A100-Klasse GPUs sind das praktische Ziel |
| Produktionsbetrieb DeepSeek-V4-Flash | 8+ GPUs mit viel Speicher | Mehr GPUs verbessern Durchsatz und Langzeit-Kontext-Workloads |
| Forschungs-Deployment DeepSeek-V4-Pro | Großes Multi-Node-GPU-Cluster | Als Cluster-Infrastruktur behandeln, nicht als Einzelarbeitsplatzmodell |
| Think Max mit langem Kontext | Zusätzlicher GPU-Speicher und KV-Cache-Budget | DeepSeek empfiehlt mindestens 384K Kontext für Think Max |
Speicheranforderungen
Planen Sie vor dem Download großen lokalen Speicher ein:
- Verwenden Sie nach Möglichkeit NVMe SSD-Speicher.
- Halten Sie zusätzlichen Platz für konvertierte Gewichte frei.
- Vermeiden Sie das direkte Herunterladen auf eine kleine Systempartition.
- Erwarten Sie, dass das Pro-Modell deutlich mehr Speicherplatz benötigt als Flash.
Eine sichere Verzeichnisstruktur ist:
/data/models/deepseek-v4-flash-hf # originale Hugging Face Dateien
/data/models/deepseek-v4-flash-infer # konvertierte Inferenzgewichte
/data/cache/huggingface # HF CacheWenn Sie einen Cloud-GPU-Server mieten, wählen Sie eine Instanz mit lokalem NVMe oder hängen Sie ein großes, leistungsfähiges Volume an. Für VPS-ähnliche Deployments können Sie GPU- oder High-Memory-Server bei Anbietern wie LightNode vergleichen, achten Sie aber darauf, dass die Instanz tatsächlich den benötigten GPU-Speicher für diese Modellklasse hat.
Software-Anforderungen
Sie benötigen eine Linux-Umgebung mit aktuellen NVIDIA-Treibern und CUDA.
Empfohlene Basis:
| Komponente | Empfehlung |
|---|---|
| OS | Ubuntu 22.04 oder neuer |
| Python | 3.10+ |
| GPU-Treiber | Aktueller NVIDIA Data Center Treiber |
| CUDA | CUDA 12.x bevorzugt |
| PyTorch | CUDA-fähige Version |
| Git LFS | Für Modell-Dateien erforderlich |
| Hugging Face CLI | Für zuverlässige Downloads erforderlich |
Installieren Sie die Grundwerkzeuge:
sudo apt update
sudo apt install -y git git-lfs python3 python3-venv python3-pip
git lfs install
pip install -U huggingface_hubWenn Sie eine Python-virtuelle Umgebung verwenden:
python3 -m venv dsv4-env
source dsv4-env/bin/activate
pip install -U pip wheel setuptools
pip install -U huggingface_hub torch transformers safetensorsSchritt 1: DeepSeek-V4-Flash herunterladen
Für die meisten Nutzer starten Sie mit Flash:
mkdir -p /data/models
cd /data/models
huggingface-cli download deepseek-ai/DeepSeek-V4-Flash \
--local-dir DeepSeek-V4-Flash \
--local-dir-use-symlinks FalseWenn Sie stattdessen das Pro-Modell möchten:
huggingface-cli download deepseek-ai/DeepSeek-V4-Pro \
--local-dir DeepSeek-V4-Pro \
--local-dir-use-symlinks FalseWenn der Download unterbrochen wird, führen Sie denselben Befehl einfach erneut aus. Hugging Face setzt den Download fort.
Schritt 2: Offene Repository-Struktur prüfen
Nach dem Download prüfen Sie den Modellordner:
cd /data/models/DeepSeek-V4-Flash
lsDie Modellkarte verweist auf zwei wichtige Ordner:
inference/– offizieller lokaler Inferenzcode, inklusive Gewichtskonvertierung und Generierungsskriptenencoding/– Utilities für Prompt-Codierung und Ausgabeparsing für DeepSeek-V4
Das ist wichtig, weil DeepSeek-V4 kein normales Jinja-Chat-Template mitliefert. Sie sollten nicht davon ausgehen, dass jeder generische OpenAI-kompatible Chat-Wrapper die Prompts von Haus aus korrekt formatiert.
Schritt 3: Gewichte für offizielle Inferenz konvertieren
Das offizielle Inferenz-README beschreibt einen Konvertierungsschritt vor der Generierung.
Im Modell-Repository:
cd /data/models/DeepSeek-V4-Flash/inference
export HF_CKPT_PATH=/data/models/DeepSeek-V4-Flash
export SAVE_PATH=/data/models/DeepSeek-V4-Flash-infer
export EXPERTS=256
export MP=4
export CONFIG=config.json
python convert.py \
--hf-ckpt-path ${HF_CKPT_PATH} \
--save-path ${SAVE_PATH} \
--n-experts ${EXPERTS} \
--model-parallel ${MP}Parameter-Erklärung:
| Variable | Bedeutung |
|---|---|
HF_CKPT_PATH | Pfad zu den originalen Hugging Face Modell-Dateien |
SAVE_PATH | Ausgabepfad für konvertierte Inferenzgewichte |
EXPERTS=256 | Anzahl der Experten, die bei der DeepSeek-V4 Inferenz-Konvertierung verwendet werden |
MP=4 | Modellparallelgröße; normalerweise auf die Anzahl der GPUs im Lauf abstimmen |
CONFIG | Modellkonfigurationsdatei, die vom Generierungsskript verwendet wird |
Wenn Sie mehr GPUs verwenden, passen Sie MP entsprechend an. Zum Beispiel auf einem 8-GPU-Knoten:
export MP=8FP8-Experten-Option
Das offizielle Inferenz-README weist darauf hin, dass Sie, wenn Sie FP8-Experten statt FP4-Experten verwenden möchten, diese Zeile aus config.json entfernen:
"expert_dtype": "fp4"Und dann während der Konvertierung --expert-dtype fp8 übergeben:
python convert.py \
--hf-ckpt-path ${HF_CKPT_PATH} \
--save-path ${SAVE_PATH} \
--n-experts ${EXPERTS} \
--model-parallel ${MP} \
--expert-dtype fp8Für die meisten Nutzer empfiehlt es sich, zunächst mit der Standard-Mischung aus FP4/FP8 zu starten. Ändern Sie die Präzision erst, wenn Sie eine funktionierende Basis haben.
Schritt 4: Interaktiven Chat starten
Nach Abschluss der Konvertierung starten Sie das offizielle Generierungsskript:
cd /data/models/DeepSeek-V4-Flash/inference
export MP=4
export SAVE_PATH=/data/models/DeepSeek-V4-Flash-infer
export CONFIG=config.json
torchrun --nproc-per-node ${MP} generate.py \
--ckpt-path ${SAVE_PATH} \
--config ${CONFIG} \
--interactiveFür eine Batch-Eingabedatei:
torchrun --nproc-per-node ${MP} generate.py \
--ckpt-path ${SAVE_PATH} \
--config ${CONFIG} \
--input-file prompts.txtFür einen Multi-Node-Lauf:
torchrun \
--nnodes ${NODES} \
--nproc-per-node $((MP / NODES)) \
--node-rank $RANK \
--master-addr $ADDR \
generate.py \
--ckpt-path ${SAVE_PATH} \
--config ${CONFIG} \
--input-file prompts.txtStellen Sie sicher, dass jeder Knoten Zugriff auf den konvertierten Checkpoint-Pfad hat, oder kopieren Sie die konvertierten Dateien auf denselben Pfad auf jeder Maschine.
Schritt 5: Die richtigen Sampling-Einstellungen verwenden
DeepSeek empfiehlt für lokale Deployments folgende Sampling-Parameter:
temperature = 1.0
top_p = 1.0Wenn Ihr Generierungsskript diese als CLI-Flags anbietet, verwenden Sie sie direkt. Falls nicht, setzen Sie sie im Skript oder in der Konfiguration, wo Sampling-Parameter definiert sind.
Für den Think Max Modus empfiehlt DeepSeek ein Kontextfenster von mindestens:
384K TokensStarten Sie bei Ihrem ersten Test nicht mit einem riesigen Kontextfenster. Beginnen Sie klein, bestätigen Sie, dass das Modell korrekt lädt und generiert, und erhöhen Sie dann die Kontextlänge schrittweise, während Sie den GPU-Speicher überwachen.
Schritt 6: DeepSeek-V4 Chat-Codierung verstehen
DeepSeek-V4 enthält keine Standard-Jinja-Chat-Vorlage. Stattdessen stellt das Repository einen encoding/-Ordner mit Python-Utilities bereit.
Die Grundnutzung sieht so aus:
from encoding_dsv4 import encode_messages, parse_message_from_completion_text
messages = [
{"role": "system", "content": "Du bist ein hilfreicher Assistent."},
{"role": "user", "content": "Was ist 2+2?"},
]
prompt = encode_messages(messages, thinking_mode="thinking")
print(prompt)Für Nicht-Denk-Chats verwenden Sie den Chat-Modus:
prompt = encode_messages(messages, thinking_mode="chat")Im Denkmodus verwendet das Modell explizite Reasoning-Begrenzer:
<think> ... </think>Der Parser kann generierten Text zurück in strukturierte Assistenten-Nachrichten umwandeln:
completion = "Einfache Arithmetik.</think>2 + 2 = 4.<|end▁of▁sentence|>"
parsed = parse_message_from_completion_text(completion, thinking_mode="thinking")
print(parsed)Das ist besonders wichtig, wenn Sie Ihre eigene lokale API-Hülle um DeepSeek-V4 bauen möchten.
Erläuterung der Reasoning-Modi
DeepSeek-V4 unterstützt drei praktische Reasoning-Stile:
| Modus | Verhalten | Anwendungsfall |
|---|---|---|
| Non-think | Schnelle direkte Antworten | Einfache Q&A, Zusammenfassungen, Routine-Coding-Hilfe |
| Think High | Durchdachte Antworten mit bewusster Analyse | Debugging, Planung, Mathematik, Architekturentscheidungen |
| Think Max | Maximale Reasoning-Anstrengung | Schwierige Coding-Aufgaben, agentenbasierte Workflows, Forschungslösungen |
Für einen lokalen Server möchten Sie diese vielleicht als separate Modellnamen anbieten, z.B.:
deepseek-v4-flash-chat
deepseek-v4-flash-thinking
deepseek-v4-flash-maxIntern kann jede Route unterschiedliche Prompt-Codierung, Kontextlimits und Generierungsparameter verwenden.
Kann man DeepSeek-V4 mit vLLM oder SGLang ausführen?
Zum Start ist der sicherste Weg der offizielle DeepSeek-Inferenzcode im Modell-Repository. Generische Serving-Frameworks müssen möglicherweise aktualisiert werden, bevor sie DeepSeek-V4s Architektur, gemischte Präzision, Langzeit-Kontext-Verhalten und benutzerdefinierte Codierung vollständig unterstützen.
Ein praktischer Ansatz ist:
- Zuerst den offiziellen
inference/generate.py-Pfad erfolgreich ausführen. - Ausgabequalität und Prompt-Formatierung mit den offiziellen
encoding/-Utilities bestätigen. - Dann prüfen, ob Ihr bevorzugtes Framework explizite DeepSeek-V4-Unterstützung hinzugefügt hat.
- Erst nach bestätigter Unterstützung zu vLLM, SGLang, TensorRT-LLM oder einem anderen Serving-Framework migrieren.
So vermeiden Sie einen häufigen Fehler: Das Modell lädt, aber die Chat-Qualität ist schlecht, weil die Prompt-Vorlage falsch ist.
Eine einfache lokale API-Hülle bauen
Wenn Sie einen OpenAI-ähnlichen lokalen Endpunkt wollen, können Sie den offiziellen Generierungspfad mit FastAPI umhüllen. Die genaue Implementierung hängt davon ab, wie Sie generate.py integrieren, aber der grobe Ablauf ist:
- OpenAI-kompatible
messagesempfangen. - Diese mit
encoding_dsv4.encode_messages()konvertieren. - Den codierten Prompt an die DeepSeek-V4 Inferenz-Engine senden.
- Die Ausgabe mit
parse_message_from_completion_text()parsen. - Eine OpenAI-kompatible JSON-Antwort zurückgeben.
Pseudocode:
from encoding_dsv4 import encode_messages, parse_message_from_completion_text
messages = [
{"role": "system", "content": "Du bist ein hilfreicher Assistent."},
{"role": "user", "content": "Erkläre KV-Cache einfach."},
]
prompt = encode_messages(messages, thinking_mode="thinking")
# Sende Prompt an deinen lokalen DeepSeek-V4 Inferenz-Worker
raw_completion = run_deepseek_v4(prompt)
assistant_message = parse_message_from_completion_text(
raw_completion,
thinking_mode="thinking",
)
print(assistant_message["content"])Für den Produktionseinsatz fügen Sie hinzu:
- Anfrage-Queueing
- Streaming-Ausgabe
- Timeout-Handling
- GPU-Gesundheitschecks
- Maximale Kontextdurchsetzung
- Strukturierte Logs
- Authentifizierung
Fehlerbehebung
1. CUDA Out of Memory
Reduzieren Sie den Speicherbedarf durch:
- Kürzere Kontextlänge
- Kleinere Batch-Größe
- Größere Tensor-/Modellparallelität
- Mehr GPUs verwenden
- Mit DeepSeek-V4-Flash statt Pro starten
Langer Kontext ist meist das erste, was man beim Debuggen reduziert.
2. Download bricht ab oder hängt
Verwenden Sie huggingface-cli download statt Browser-Downloads. Führen Sie denselben Befehl erneut aus, um fortzusetzen.
Sie können auch ein dediziertes Cache-Verzeichnis setzen:
export HF_HOME=/data/cache/huggingface
export HUGGINGFACE_HUB_CACHE=/data/cache/huggingface/hub3. Das Modell generiert seltsame Chat-Ausgaben
Überprüfen Sie die Prompt-Formatierung. DeepSeek-V4 verwendet keine Standard-Jinja-Chat-Vorlage. Nutzen Sie die offizielle encoding/-Implementierung.
4. Multi-GPU-Lauf schlägt fehl
Prüfen Sie, ob PyTorch alle GPUs erkennt:
python - <<'PY'
import torch
print(torch.cuda.device_count())
for i in range(torch.cuda.device_count()):
print(i, torch.cuda.get_device_name(i))
PYPrüfen Sie auch NCCL-Netzwerk für Multi-Node-Läufe:
export NCCL_DEBUG=INFO5. Think Max ist zu langsam
Think Max ist darauf ausgelegt, mehr Rechenleistung für schwieriges Reasoning zu verwenden. Nutzen Sie es nur für Aufgaben, die den Aufwand rechtfertigen. Für normalen Assistentenbetrieb sind Non-think oder Think High meist praktischer.
Empfohlene Deployment-Strategie
Wenn Sie DeepSeek-V4 lokal zum ersten Mal einsetzen, folgen Sie dieser Reihenfolge:
- Starten Sie mit DeepSeek-V4-Flash.
- Verwenden Sie den offiziellen Inferenzcode.
- Beginnen Sie mit kleinem Testkontext.
- Bestätigen Sie, dass die offizielle Codierung funktioniert.
- Erhöhen Sie die Kontextlänge schrittweise.
- Fügen Sie eine API-Hülle erst hinzu, wenn die lokale Generierung stabil läuft.
- Ziehen Sie Pro nur in Betracht, wenn Sie Cluster-GPU-Ressourcen haben.
Abschließende Gedanken
DeepSeek-V4 ist leistungsstark, aber kein Modell für den gelegentlichen lokalen Gebrauch. Die Flash-Version ist der praktische Einstiegspunkt, während Pro für ernsthafte Multi-GPU- oder Multi-Node-Umgebungen gedacht ist. Der Schlüssel zu einem erfolgreichen Setup ist, den offiziellen Workflow zu respektieren: Laden Sie das Hugging Face Repository herunter, konvertieren Sie die Gewichte mit den bereitgestellten Inferenztools, führen Sie die Generierung mit torchrun aus und verwenden Sie die dedizierten DeepSeek-V4-Codierungs-Utilities, anstatt eine generische Chat-Vorlage vorauszusetzen.
Wenn Sie nur mit Prompts experimentieren möchten, sind der gehostete DeepSeek-Chat-Service oder API-Routen möglicherweise einfacher. Wenn Sie jedoch Datenschutz, volle Kontrolle, keine Token-Abrechnung oder eigene Infrastruktur benötigen, bietet Ihnen das lokale Ausführen von DeepSeek-V4 eine starke Grundlage für private Langzeit-Kontext-KI-Systeme.