DeepSeek-V4'ü Yerelde Nasıl Çalıştırılır: Pro ve Flash Kurulum Rehberi
DeepSeek-V4'ü Yerelde Nasıl Çalıştırılır: Pro ve Flash Kurulum Rehberi
DeepSeek-V4, DeepSeek'in şimdiye kadarki en iddialı açık ağırlıklı model sürümlerinden biridir. Ailede, 49 milyar aktif parametreye sahip 1.6T parametreli Mixture-of-Experts modeli DeepSeek-V4-Pro ve 13 milyar aktif parametreye sahip daha küçük 284 milyar parametreli MoE modeli DeepSeek-V4-Flash bulunur. Her iki model de bir milyon tokena kadar bağlam uzunluğunu destekler.
Bu kombinasyon heyecan verici görünüyor, ancak pratik bir soru ortaya çıkar: DeepSeek-V4'ü gerçekten yerelde çalıştırabilir misiniz?
Cevap evet, ancak önemli bir uyarı ile. DeepSeek-V4, dizüstü bilgisayar boyutunda bir model değildir. Flash versiyonu bile ciddi bir çoklu GPU dağıtımıdır. Bu rehber, Hugging Face üzerindeki resmi DeepSeek model depolarını kullanarak yerel kurulum yolunu anlatır, planlamanız gereken donanımı açıklar ve resmi çıkarım ile kodlama dosyalarının doğru kullanımını gösterir.
Referans model sayfaları:
DeepSeek-V4-Pro ve DeepSeek-V4-Flash Karşılaştırması
Herhangi bir şey indirmeden önce doğru model varyantını seçin.
| Model | Toplam Parametre | Aktif Parametre | Bağlam Uzunluğu | Hassasiyet | En Uygun Kullanım |
|---|---|---|---|---|---|
| DeepSeek-V4-Flash | 284B | 13B | 1M | FP4 + FP8 karışık | Daha hızlı yerel deneyler, düşük maliyetli servis, kodlama asistanları, uzun bağlam testi |
| DeepSeek-V4-Pro | 1.6T | 49B | 1M | FP4 + FP8 karışık | Maksimum kalite, araştırma laboratuvarları, büyük GPU kümeleri, ciddi muhakeme ve ajan görevleri |
En önemli detay, DeepSeek-V4'ün bir Mixture-of-Experts (MoE) mimarisi kullanmasıdır. Her token için modelin sadece bir kısmı aktive edilir, bu da hesaplama maliyetini düşürür. Ancak, model ağırlıklarını yine de depolamanız ve yüklemeniz gerekir. Bu da GPU belleği ve depolama gereksinimlerinin çok yüksek kalması anlamına gelir.
Çoğu geliştirici için DeepSeek-V4-Flash gerçekçi başlangıç noktasıdır. DeepSeek-V4-Pro ise daha çok küme ölçeğinde bir dağıtım olarak düşünülmelidir.
DeepSeek-V4'ü Farklı Kılan Nedir?
DeepSeek'in model kartına göre, V4 serisi birkaç önemli yükseltme getiriyor:
- Hibrit Dikkat Mimarisi: DeepSeek, uzun bağlam verimliliğini artırmak için Compressed Sparse Attention (CSA) ve Heavily Compressed Attention (HCA) kombinasyonunu kullanır. Bir milyon token ayarında, DeepSeek-V4-Pro'nun DeepSeek-V3.2'ye kıyasla çok daha az KV önbellek kullandığı bildiriliyor.
- Manifold-Kısıtlı Hiper-Bağlantılar (mHC): Çok derin ağlarda kararlılığı artırırken model kapasitesini korur.
- Muon Optimizatörü: DeepSeek, eğitim sırasında daha iyi yakınsama ve kararlılık için Muon kullanır.
- Uzun Bağlam: Hem Pro hem de Flash 1M tokena kadar destek verir; DeepSeek, Think Max modu için en az 384K bağlam önerir.
- Çoklu Muhakeme Modları: DeepSeek-V4, Non-think, Think High ve Think Max tarzı kullanımları destekler.
Yerel dağıtım için en önemli iki pratik değişiklik, karışık FP4/FP8 hassasiyeti ve özel sohbet kodlama formatıdır.
Donanım Gereksinimleri
DeepSeek-V4, RTX 4090 gibi tüketici GPU'ları için tasarlanmamıştır; sadece gelecekte ağır modifiye edilmiş topluluk kuantizasyonlarıyla denemeler yapacaksanız. Resmi ağırlıklar için sunucu GPU'ları planlayın.
Pratik Donanım Planlaması
| Kullanım Durumu | Önerilen Donanım | Notlar |
|---|---|---|
| DeepSeek-V4-Flash test dağıtımı | 4-8 yüksek bellekli NVIDIA GPU | H100/H200/A100 sınıfı GPU'lar pratik hedeftir |
| DeepSeek-V4-Flash üretim servisi | 8+ yüksek bellekli GPU | Daha fazla GPU, verim ve uzun bağlam iş yüklerini artırır |
| DeepSeek-V4-Pro araştırma dağıtımı | Büyük çok düğümlü GPU kümesi | Bunu tek bir iş istasyonu modeli değil, küme altyapısı olarak düşünün |
| Think Max uzun bağlam ile | Ek GPU belleği ve KV önbellek bütçesi | DeepSeek, Think Max için en az 384K bağlam önerir |
Depolama Gereksinimleri
İndirmeye başlamadan önce büyük yerel depolama planlayın:
- Mümkün olduğunda NVMe SSD depolama kullanın.
- Dönüştürülmüş ağırlıklar için ekstra alan bırakın.
- Küçük sistem diskine doğrudan indirmekten kaçının.
- Pro modelinin Flash'tan çok daha fazla depolama gerektireceğini unutmayın.
Güvenli bir dizin yapısı:
/data/models/deepseek-v4-flash-hf # orijinal Hugging Face dosyaları
/data/models/deepseek-v4-flash-infer # dönüştürülmüş çıkarım ağırlıkları
/data/cache/huggingface # HF önbelleğiBulut GPU sunucusu kiralıyorsanız, yerel NVMe'li bir örnek seçin veya yüksek hızlı büyük bir disk ekleyin. VPS tarzı dağıtım planlaması için LightNode gibi sağlayıcılar üzerinden GPU veya yüksek bellekli sunucuları karşılaştırabilirsiniz, ancak örneğin bu model sınıfı için gereken GPU belleğine gerçekten sahip olduğundan emin olun.
Yazılım Gereksinimleri
Linux ortamı, güncel NVIDIA sürücüleri ve CUDA gereklidir.
Önerilen temel yapı:
| Bileşen | Öneri |
|---|---|
| İşletim Sistemi | Ubuntu 22.04 veya daha yeni |
| Python | 3.10+ |
| GPU Sürücüsü | Güncel NVIDIA veri merkezi sürücüsü |
| CUDA | Tercihen CUDA 12.x |
| PyTorch | CUDA destekli derleme |
| Git LFS | Model dosyaları için gerekli |
| Hugging Face CLI | Güvenilir indirmeler için gerekli |
Temel araçları kurun:
sudo apt update
sudo apt install -y git git-lfs python3 python3-venv python3-pip
git lfs install
pip install -U huggingface_hubPython sanal ortamı kullanıyorsanız:
python3 -m venv dsv4-env
source dsv4-env/bin/activate
pip install -U pip wheel setuptools
pip install -U huggingface_hub torch transformers safetensorsAdım 1: DeepSeek-V4-Flash İndirin
Çoğu kullanıcı için Flash ile başlayın:
mkdir -p /data/models
cd /data/models
huggingface-cli download deepseek-ai/DeepSeek-V4-Flash \
--local-dir DeepSeek-V4-Flash \
--local-dir-use-symlinks FalsePro modeli istiyorsanız:
huggingface-cli download deepseek-ai/DeepSeek-V4-Pro \
--local-dir DeepSeek-V4-Pro \
--local-dir-use-symlinks Falseİndirme kesilirse, aynı komutu tekrar çalıştırın. Hugging Face indirmeye kaldığı yerden devam edecektir.
Adım 2: Resmi Depo Yapısını İnceleyin
İndirdikten sonra model klasörünü kontrol edin:
cd /data/models/DeepSeek-V4-Flash
lsModel kartı iki önemli klasöre işaret eder:
inference/- resmi yerel çıkarım kodu, ağırlık dönüştürme ve üretim betikleri dahilencoding/- DeepSeek-V4 için prompt kodlama ve çıktı ayrıştırma araçları
Bu önemlidir çünkü DeepSeek-V4 normal Jinja formatında bir sohbet şablonu ile gelmez. Her genel OpenAI uyumlu sohbet sarmalayıcısının promptları kutudan çıktığı gibi doğru formatlayacağını varsaymayın.
Adım 3: Resmi Çıkarım İçin Ağırlıkları Dönüştürün
Resmi çıkarım README'si, üretimden önce bir dönüştürme adımı kullanır.
Model deposundan:
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}Parametre açıklamaları:
| Değişken | Anlamı |
|---|---|
HF_CKPT_PATH | Orijinal Hugging Face model dosyalarının yolu |
SAVE_PATH | Dönüştürülmüş çıkarım ağırlıklarının çıkış yolu |
EXPERTS=256 | DeepSeek-V4 çıkarım dönüştürmesinde kullanılan uzman sayısı |
MP=4 | Model paralel boyutu; genellikle çalıştırılan GPU sayısına eşitlenir |
CONFIG | Üretim betiği tarafından kullanılan model konfigürasyon dosyası |
Daha fazla GPU kullanıyorsanız, MP değerini ayarlayın. Örneğin, 8 GPU'lu bir düğümde:
export MP=8FP8 Uzman Seçeneği
Resmi çıkarım README'si, FP4 uzmanlar yerine FP8 uzmanlar kullanmak isterseniz, config.json dosyasından şu satırı kaldırmanızı belirtir:
"expert_dtype": "fp4"Sonra dönüştürme sırasında --expert-dtype fp8 parametresini ekleyin:
python convert.py \
--hf-ckpt-path ${HF_CKPT_PATH} \
--save-path ${SAVE_PATH} \
--n-experts ${EXPERTS} \
--model-parallel ${MP} \
--expert-dtype fp8Çoğu kullanıcı için önce varsayılan karışık FP4/FP8 kurulumu ile başlayın. Hassasiyeti ancak çalışan bir temel kurulumunuz olduktan sonra değiştirin.
Adım 4: Etkileşimli Sohbete Başlayın
Dönüştürme tamamlandıktan sonra resmi üretim betiğini çalıştırın:
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} \
--interactiveToplu giriş dosyası için:
torchrun --nproc-per-node ${MP} generate.py \
--ckpt-path ${SAVE_PATH} \
--config ${CONFIG} \
--input-file prompts.txtÇok düğümlü çalıştırma için:
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.txtHer düğümün dönüştürülmüş kontrol noktası yoluna erişebildiğinden emin olun veya dönüştürülmüş dosyaları her makinede aynı yola kopyalayın.
Adım 5: Doğru Örnekleme Ayarlarını Kullanın
DeepSeek, yerel dağıtım için aşağıdaki örnekleme parametrelerini önerir:
temperature = 1.0
top_p = 1.0Üretim betiğiniz bunları CLI bayrakları olarak sunuyorsa doğrudan kullanın. Sunmuyorsa, betikte veya konfigürasyonda örnekleme parametrelerinin tanımlandığı yerde ayarlayın.
Think Max modu için DeepSeek en az:
384K tokenbağlam penceresi kullanmanızı önerir.
İlk testinizde çok büyük bir bağlam penceresi ile başlamayın. Küçük başlayın, modelin doğru yüklendiğini ve üretim yaptığını doğrulayın, sonra GPU belleğini izleyerek bağlam uzunluğunu kademeli olarak artırın.
Adım 6: DeepSeek-V4 Sohbet Kodlamasını Anlayın
DeepSeek-V4 standart bir Jinja sohbet şablonu içermez. Bunun yerine depo, Python yardımcıları içeren bir encoding/ klasörü sağlar.
Temel kullanım şöyle görünür:
from encoding_dsv4 import encode_messages, parse_message_from_completion_text
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is 2+2?"},
]
prompt = encode_messages(messages, thinking_mode="thinking")
print(prompt)Düşünmeyen sohbet için chat modunu kullanın:
prompt = encode_messages(messages, thinking_mode="chat")Düşünme modu için model açık muhakeme ayırıcıları kullanır:
<think> ... </think>Ayrıştırıcı, oluşturulan metni yapılandırılmış asistan mesajlarına dönüştürebilir:
completion = "Simple arithmetic.</think>2 + 2 = 4.<|end▁of▁sentence|>"
parsed = parse_message_from_completion_text(completion, thinking_mode="thinking")
print(parsed)Bu, DeepSeek-V4 etrafında kendi yerel API sarmalayıcınızı oluşturmak istiyorsanız özellikle önemlidir.
Muhakeme Modları Açıklaması
DeepSeek-V4 üç pratik muhakeme stilini destekler:
| Mod | Davranış | Kullanım Alanı |
|---|---|---|
| Non-think | Hızlı doğrudan cevaplar | Basit Soru-Cevap, özetleme, rutin kodlama yardımı |
| Think High | Düşünülmüş analizle mantıklı cevaplar | Hata ayıklama, planlama, matematik, mimari kararlar |
| Think Max | Maksimum muhakeme çabası | Zor kodlama görevleri, ajan iş akışları, araştırma düzeyi problem çözme |
Yerel bir sunucu için bunları ayrı model isimleri olarak açmak isteyebilirsiniz, örneğin:
deepseek-v4-flash-chat
deepseek-v4-flash-thinking
deepseek-v4-flash-maxİçeride her yol farklı prompt kodlama, bağlam sınırları ve üretim parametreleri kullanabilir.
DeepSeek-V4'ü vLLM veya SGLang ile Çalıştırabilir misiniz?
Başlangıçta en güvenli yol, model deposundaki resmi DeepSeek çıkarım kodudur. Genel servis çerçeveleri, DeepSeek-V4'ün mimarisi, karışık hassasiyeti, uzun bağlam davranışı ve özel kodlamasını tam desteklemeden önce güncellemeye ihtiyaç duyabilir.
Pratik yaklaşım:
- Önce resmi
inference/generate.pyyolunu başarıyla çalıştırın. - Resmi
encoding/yardımcıları ile çıktı kalitesi ve prompt formatını doğrulayın. - Sonra tercih ettiğiniz çerçevenin DeepSeek-V4 desteği ekleyip eklemediğini kontrol edin.
- Destek doğrulanmadan vLLM, SGLang, TensorRT-LLM veya başka bir servis çerçevesine geçmeyin.
Bu, modelin yüklendiği ancak sohbet kalitesinin kötü olduğu, çünkü prompt şablonunun yanlış olduğu yaygın bir hata durumunu önler.
Basit Bir Yerel API Sarmalayıcı Oluşturma
OpenAI tarzı yerel bir uç nokta istiyorsanız, resmi üretim yolunu FastAPI ile sarmalayabilirsiniz. Tam uygulama, generate.py entegrasyonunuza bağlıdır, ancak genel akış:
- OpenAI uyumlu
messagesalın. - Bunları
encoding_dsv4.encode_messages()ile dönüştürün. - Kodlanmış promptu DeepSeek-V4 çıkarım motoruna gönderin.
- Çıktıyı
parse_message_from_completion_text()ile ayrıştırın. - OpenAI uyumlu JSON yanıtı döndürün.
Sözde kod:
from encoding_dsv4 import encode_messages, parse_message_from_completion_text
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain KV cache in simple terms."},
]
prompt = encode_messages(messages, thinking_mode="thinking")
# Yerel DeepSeek-V4 çıkarım işçinize promptu gönderin
raw_completion = run_deepseek_v4(prompt)
assistant_message = parse_message_from_completion_text(
raw_completion,
thinking_mode="thinking",
)
print(assistant_message["content"])Üretim için ekleyin:
- istek kuyruğu
- akışlı çıktı
- zaman aşımı yönetimi
- GPU sağlık kontrolleri
- maksimum bağlam uygulaması
- yapılandırılmış günlükler
- kimlik doğrulama
Sorun Giderme
1. CUDA Bellek Yetersizliği
Bellek baskısını azaltmak için:
- bağlam uzunluğunu düşürün
- batch boyutunu küçültün
- tensör/model paralelliğini artırın
- daha fazla GPU kullanın
- Pro yerine DeepSeek-V4-Flash ile başlayın
Hata ayıklamada genellikle ilk azaltılan uzun bağlamdır.
2. İndirme Başarısız Oluyor veya Takılıyor
Tarayıcı indirmeleri yerine huggingface-cli download kullanın. Aynı komutu tekrar çalıştırarak devam ettirin.
Ayrı bir önbellek dizini ayarlayabilirsiniz:
export HF_HOME=/data/cache/huggingface
export HUGGINGFACE_HUB_CACHE=/data/cache/huggingface/hub3. Model Garip Sohbet Çıktısı Üretiyor
Prompt formatını kontrol edin. DeepSeek-V4 standart Jinja sohbet şablonu kullanmaz. Resmi encoding/ uygulamasını kullanın.
4. Çoklu GPU Çalıştırması Başarısız Oluyor
PyTorch'un tüm GPU'ları gördüğünden emin olun:
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))
PYAyrıca çok düğümlü çalıştırmalar için NCCL ağını kontrol edin:
export NCCL_DEBUG=INFO5. Think Max Çok Yavaş
Think Max, zor muhakeme için daha fazla hesaplama harcamak üzere tasarlanmıştır. Maliyeti haklı çıkaran görevlerde kullanın. Normal asistan kullanımı için genellikle Non-think veya Think High daha pratiktir.
Önerilen Dağıtım Stratejisi
DeepSeek-V4'ü yerelde ilk kez dağıtıyorsanız şu sırayı izleyin:
- DeepSeek-V4-Flash ile başlayın.
- Resmi çıkarım kodunu kullanın.
- Önce küçük bir test bağlamı kullanın.
- Resmi kodlamanın çalıştığını doğrulayın.
- Bağlam uzunluğunu kademeli artırın.
- Yerel üretim stabil olduktan sonra API sarmalayıcı ekleyin.
- Küme ölçekli GPU kaynaklarınız olduğunda Pro'yu düşünün.
Son Düşünceler
DeepSeek-V4 güçlüdür, ancak sıradan bir yerel model değildir. Flash versiyonu pratik giriş noktasıdır, Pro ise ciddi çoklu GPU veya çok düğümlü ortamlara aittir. Başarılı bir kurulumun anahtarı resmi iş akışına saygı göstermektir: Hugging Face deposunu indirin, sağlanan çıkarım araçlarıyla ağırlıkları dönüştürün, torchrun ile üretim yapın ve genel bir sohbet şablonu varsaymak yerine özel DeepSeek-V4 kodlama yardımcılarını kullanın.
Sadece promptlarla deneme yapmak istiyorsanız, barındırılan DeepSeek sohbet servisi veya API yolları daha kolay olabilir. Ancak veri gizliliği, tam kontrol, token başına ücretlendirme olmaması veya özel altyapı gerekiyorsa, DeepSeek-V4'ü yerelde çalıştırmak özel uzun bağlamlı AI sistemleri kurmak için sağlam bir temel sağlar.