Cara Menjalankan DeepSeek-V4 Secara Lokal: Panduan Setup Pro dan Flash
Cara Menjalankan DeepSeek-V4 Secara Lokal: Panduan Setup Pro dan Flash
DeepSeek-V4 adalah salah satu rilis model open-weight paling ambisius dari DeepSeek sejauh ini. Keluarga ini mencakup DeepSeek-V4-Pro, model Mixture-of-Experts dengan 1,6T parameter dan 49B parameter yang diaktifkan, serta DeepSeek-V4-Flash, model MoE yang lebih kecil dengan 284B parameter dan 13B parameter yang diaktifkan. Kedua model mendukung panjang konteks hingga satu juta token.
Kombinasi ini terdengar menarik, tetapi juga menimbulkan pertanyaan praktis: apakah Anda benar-benar bisa menjalankan DeepSeek-V4 secara lokal?
Jawabannya ya, tapi dengan catatan penting. DeepSeek-V4 bukan model yang bisa dijalankan di laptop. Bahkan versi Flash pun memerlukan deployment multi-GPU yang serius. Panduan ini akan membahas jalur setup lokal menggunakan repositori model resmi DeepSeek di Hugging Face, menjelaskan perangkat keras yang harus Anda siapkan, dan menunjukkan cara menggunakan file inferensi dan pengkodean resmi dengan benar.
Halaman model referensi:
DeepSeek-V4-Pro vs DeepSeek-V4-Flash
Sebelum mengunduh apa pun, pilih varian model yang tepat.
| Model | Total Parameter | Parameter Diaktifkan | Panjang Konteks | Presisi | Terbaik Untuk |
|---|---|---|---|---|---|
| DeepSeek-V4-Flash | 284B | 13B | 1M | FP4 + FP8 campuran | Eksperimen lokal lebih cepat, layanan biaya rendah, asisten coding, pengujian konteks panjang |
| DeepSeek-V4-Pro | 1.6T | 49B | 1M | FP4 + FP8 campuran | Kualitas maksimal, laboratorium riset, klaster GPU besar, tugas penalaran dan agen yang serius |
Detail terpenting adalah DeepSeek-V4 menggunakan arsitektur Mixture-of-Experts (MoE). Hanya sebagian model yang diaktifkan untuk setiap token, yang mengurangi biaya komputasi. Namun, Anda tetap harus menyimpan dan memuat bobot model. Itu berarti kebutuhan memori GPU dan penyimpanan tetap sangat tinggi.
Untuk sebagian besar pengembang, DeepSeek-V4-Flash adalah titik awal yang realistis. DeepSeek-V4-Pro lebih cocok diperlakukan sebagai deployment skala klaster.
Apa yang Membuat DeepSeek-V4 Berbeda?
Menurut kartu model DeepSeek, seri V4 memperkenalkan beberapa peningkatan besar:
- Arsitektur Hybrid Attention: DeepSeek menggabungkan Compressed Sparse Attention (CSA) dan Heavily Compressed Attention (HCA) untuk meningkatkan efisiensi konteks panjang. Dalam pengaturan satu juta token, DeepSeek-V4-Pro dilaporkan menggunakan cache KV jauh lebih sedikit dibandingkan DeepSeek-V3.2.
- Manifold-Constrained Hyper-Connections (mHC): Ini meningkatkan stabilitas di jaringan yang sangat dalam sambil mempertahankan kapasitas model.
- Muon Optimizer: DeepSeek menggunakan Muon selama pelatihan untuk konvergensi dan stabilitas yang lebih baik.
- Konteks Panjang: Baik Pro maupun Flash mendukung hingga 1M token, dengan DeepSeek merekomendasikan setidaknya 384K konteks untuk mode Think Max.
- Beberapa Mode Penalaran: DeepSeek-V4 mendukung penggunaan gaya Non-think, Think High, dan Think Max.
Untuk deployment lokal, dua perubahan praktis terpenting adalah presisi campuran FP4/FP8 dan format pengkodean chat khusus.
Persyaratan Perangkat Keras
DeepSeek-V4 tidak dirancang untuk GPU konsumen seperti RTX 4090 kecuali Anda hanya bereksperimen dengan kuantisasi komunitas yang sangat dimodifikasi di masa depan. Untuk bobot resmi, rencanakan menggunakan GPU server.
Perencanaan Perangkat Keras Praktis
| Kasus Penggunaan | Perangkat Keras yang Disarankan | Catatan |
|---|---|---|
| Deployment uji DeepSeek-V4-Flash | 4-8 GPU NVIDIA dengan memori besar | GPU kelas H100/H200/A100 adalah target praktis |
| Penyajian produksi DeepSeek-V4-Flash | 8+ GPU dengan memori besar | Lebih banyak GPU membantu throughput dan beban kerja konteks panjang |
| Deployment riset DeepSeek-V4-Pro | Klaster GPU multi-node besar | Perlakukan ini sebagai infrastruktur klaster, bukan model workstation tunggal |
| Think Max dengan konteks panjang | Memori GPU ekstra dan anggaran cache KV | DeepSeek merekomendasikan setidaknya 384K konteks untuk Think Max |
Persyaratan Penyimpanan
Rencanakan penyimpanan lokal yang besar sebelum mulai mengunduh:
- Gunakan penyimpanan NVMe SSD kapan pun memungkinkan.
- Sisakan ruang ekstra untuk bobot yang sudah dikonversi.
- Hindari mengunduh langsung ke disk sistem yang kecil.
- Harapkan model Pro membutuhkan penyimpanan jauh lebih besar daripada Flash.
Layout yang aman adalah:
/data/models/deepseek-v4-flash-hf # file Hugging Face asli
/data/models/deepseek-v4-flash-infer # bobot inferensi yang sudah dikonversi
/data/cache/huggingface # cache HFJika Anda menyewa server GPU cloud, pilih instance dengan NVMe lokal atau lampirkan volume besar dengan throughput tinggi. Untuk perencanaan deployment gaya VPS, Anda dapat membandingkan server GPU atau memori besar melalui penyedia seperti LightNode, tapi pastikan instance tersebut benar-benar memiliki memori GPU yang diperlukan untuk kelas model ini.
Persyaratan Perangkat Lunak
Anda memerlukan lingkungan Linux dengan driver NVIDIA terbaru dan CUDA.
Baseline yang direkomendasikan:
| Komponen | Rekomendasi |
|---|---|
| OS | Ubuntu 22.04 atau lebih baru |
| Python | 3.10+ |
| Driver GPU | Driver pusat data NVIDIA terbaru |
| CUDA | CUDA 12.x lebih disukai |
| PyTorch | Build dengan dukungan CUDA |
| Git LFS | Diperlukan untuk file model |
| Hugging Face CLI | Diperlukan untuk unduhan yang andal |
Pasang alat dasar:
sudo apt update
sudo apt install -y git git-lfs python3 python3-venv python3-pip
git lfs install
pip install -U huggingface_hubJika Anda menggunakan virtual environment Python:
python3 -m venv dsv4-env
source dsv4-env/bin/activate
pip install -U pip wheel setuptools
pip install -U huggingface_hub torch transformers safetensorsLangkah 1: Unduh DeepSeek-V4-Flash
Untuk sebagian besar pengguna, mulai dengan 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 FalseJika Anda ingin model Pro:
huggingface-cli download deepseek-ai/DeepSeek-V4-Pro \
--local-dir DeepSeek-V4-Pro \
--local-dir-use-symlinks FalseJika unduhan terputus, jalankan kembali perintah yang sama. Hugging Face akan melanjutkan unduhan.
Langkah 2: Periksa Struktur Repositori Resmi
Setelah mengunduh, periksa folder model:
cd /data/models/DeepSeek-V4-Flash
lsKartu model menunjuk ke dua folder penting:
inference/- kode inferensi lokal resmi, termasuk skrip konversi bobot dan generasiencoding/- utilitas pengkodean prompt dan parsing output untuk DeepSeek-V4
Ini penting karena DeepSeek-V4 tidak dikirimkan dengan template chat format Jinja standar. Anda tidak boleh mengasumsikan bahwa setiap pembungkus chat kompatibel OpenAI akan memformat prompt dengan benar secara langsung.
Langkah 3: Konversi Bobot untuk Inferensi Resmi
README inferensi resmi menggunakan langkah konversi sebelum menjalankan generasi.
Dari repositori model:
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}Catatan parameter:
| Variabel | Arti |
|---|---|
HF_CKPT_PATH | Jalur ke file model Hugging Face asli |
SAVE_PATH | Jalur output untuk bobot inferensi yang sudah dikonversi |
EXPERTS=256 | Jumlah expert yang digunakan oleh konversi inferensi DeepSeek-V4 |
MP=4 | Ukuran model parallel; biasanya disesuaikan dengan jumlah GPU yang digunakan saat menjalankan |
CONFIG | File konfigurasi model yang digunakan oleh skrip generasi |
Jika Anda menggunakan lebih banyak GPU, sesuaikan MP sesuai kebutuhan. Misalnya, pada node 8-GPU:
export MP=8Opsi Expert FP8
README inferensi resmi mencatat bahwa jika Anda ingin menggunakan expert FP8 alih-alih FP4, hapus baris ini dari config.json:
"expert_dtype": "fp4"Kemudian tambahkan --expert-dtype fp8 saat konversi:
python convert.py \
--hf-ckpt-path ${HF_CKPT_PATH} \
--save-path ${SAVE_PATH} \
--n-experts ${EXPERTS} \
--model-parallel ${MP} \
--expert-dtype fp8Untuk sebagian besar pengguna, mulai dengan setup campuran FP4/FP8 default terlebih dahulu. Ubah presisi hanya setelah Anda memiliki baseline yang berfungsi.
Langkah 4: Mulai Chat Interaktif
Setelah konversi selesai, jalankan skrip generasi resmi:
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} \
--interactiveUntuk file input batch:
torchrun --nproc-per-node ${MP} generate.py \
--ckpt-path ${SAVE_PATH} \
--config ${CONFIG} \
--input-file prompts.txtUntuk menjalankan multi-node:
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.txtPastikan setiap node dapat mengakses jalur checkpoint yang sudah dikonversi, atau salin file yang sudah dikonversi ke jalur yang sama di setiap mesin.
Langkah 5: Gunakan Pengaturan Sampling yang Tepat
DeepSeek merekomendasikan parameter sampling berikut untuk deployment lokal:
temperature = 1.0
top_p = 1.0Jika skrip generasi Anda menyediakan flag CLI untuk ini, gunakan langsung. Jika tidak, atur di skrip atau konfigurasi tempat parameter sampling didefinisikan.
Untuk mode Think Max, DeepSeek merekomendasikan menggunakan jendela konteks setidaknya:
384K tokenJangan mulai dengan jendela konteks besar saat pengujian pertama Anda. Mulai kecil, pastikan model memuat dan menghasilkan dengan benar, lalu tingkatkan panjang konteks secara bertahap sambil memantau memori GPU.
Langkah 6: Pahami Pengkodean Chat DeepSeek-V4
DeepSeek-V4 tidak menyertakan template chat Jinja standar. Sebagai gantinya, repositori menyediakan folder encoding/ dengan utilitas Python.
Penggunaan dasar terlihat seperti ini:
from encoding_dsv4 import encode_messages, parse_message_from_completion_text
messages = [
{"role": "system", "content": "Anda adalah asisten yang membantu."},
{"role": "user", "content": "Berapa 2+2?"},
]
prompt = encode_messages(messages, thinking_mode="thinking")
print(prompt)Untuk chat non-thinking, gunakan mode chat:
prompt = encode_messages(messages, thinking_mode="chat")Untuk mode thinking, model menggunakan delimiter penalaran eksplisit:
<think> ... </think>Parser dapat mengubah teks hasil generasi kembali menjadi pesan asisten yang terstruktur:
completion = "Simple arithmetic.</think>2 + 2 = 4.<|end▁of▁sentence|>"
parsed = parse_message_from_completion_text(completion, thinking_mode="thinking")
print(parsed)Ini sangat penting jika Anda ingin membangun pembungkus API lokal sendiri di sekitar DeepSeek-V4.
Penjelasan Mode Penalaran
DeepSeek-V4 mendukung tiga gaya penalaran praktis:
| Mode | Perilaku | Kasus Penggunaan |
|---|---|---|
| Non-think | Jawaban langsung cepat | Tanya jawab sederhana, ringkasan, bantuan coding rutin |
| Think High | Jawaban dengan analisis terperinci | Debugging, perencanaan, matematika, keputusan arsitektur |
| Think Max | Upaya penalaran maksimal | Tugas coding sulit, alur kerja agen, pemecahan masalah tingkat riset |
Untuk server lokal, Anda mungkin ingin mengekspos ini sebagai nama model terpisah, misalnya:
deepseek-v4-flash-chat
deepseek-v4-flash-thinking
deepseek-v4-flash-maxSecara internal, setiap rute dapat menggunakan pengkodean prompt, batas konteks, dan parameter generasi yang berbeda.
Bisakah Anda Menjalankan DeepSeek-V4 dengan vLLM atau SGLang?
Saat peluncuran, jalur paling aman adalah kode inferensi resmi DeepSeek di repositori model. Framework penyajian generik mungkin perlu pembaruan sebelum sepenuhnya mendukung arsitektur DeepSeek-V4, presisi campuran, perilaku konteks panjang, dan pengkodean khusus.
Pendekatan praktisnya:
- Pertama, jalankan jalur resmi
inference/generate.pydengan sukses. - Konfirmasi kualitas output dan format prompt dengan utilitas resmi
encoding/. - Kemudian periksa apakah framework pilihan Anda sudah menambahkan dukungan eksplisit untuk DeepSeek-V4.
- Baru migrasi ke vLLM, SGLang, TensorRT-LLM, atau framework penyajian lain setelah dukungan dikonfirmasi.
Ini menghindari mode kegagalan umum: model berhasil dimuat, tapi kualitas chat buruk karena template prompt salah.
Membangun Pembungkus API Lokal Sederhana
Jika Anda ingin endpoint lokal gaya OpenAI, Anda bisa membungkus jalur generasi resmi dengan FastAPI. Implementasi tepat tergantung bagaimana Anda mengintegrasikan generate.py, tapi alur tingkat tinggi adalah:
- Terima
messageskompatibel OpenAI. - Konversi menggunakan
encoding_dsv4.encode_messages(). - Kirim prompt yang sudah dikodekan ke mesin inferensi DeepSeek-V4.
- Parse output menggunakan
parse_message_from_completion_text(). - Kembalikan respons JSON kompatibel OpenAI.
Pseudo-code:
from encoding_dsv4 import encode_messages, parse_message_from_completion_text
messages = [
{"role": "system", "content": "Anda adalah asisten yang membantu."},
{"role": "user", "content": "Jelaskan KV cache dengan istilah sederhana."},
]
prompt = encode_messages(messages, thinking_mode="thinking")
# Kirim prompt ke worker inferensi DeepSeek-V4 lokal Anda
raw_completion = run_deepseek_v4(prompt)
assistant_message = parse_message_from_completion_text(
raw_completion,
thinking_mode="thinking",
)
print(assistant_message["content"])Untuk produksi, tambahkan:
- antrian permintaan
- output streaming
- penanganan timeout
- pemeriksaan kesehatan GPU
- penegakan konteks maksimum
- log terstruktur
- autentikasi
Pemecahan Masalah
1. CUDA Out of Memory
Kurangi tekanan memori dengan:
- menurunkan panjang konteks
- mengurangi ukuran batch
- meningkatkan ukuran tensor/model parallel
- menggunakan lebih banyak GPU
- mulai dengan DeepSeek-V4-Flash daripada Pro
Konteks panjang biasanya hal pertama yang dikurangi saat debugging.
2. Unduhan Gagal atau Macet
Gunakan huggingface-cli download daripada unduhan browser. Jalankan ulang perintah yang sama untuk melanjutkan.
Anda juga bisa mengatur direktori cache khusus:
export HF_HOME=/data/cache/huggingface
export HUGGINGFACE_HUB_CACHE=/data/cache/huggingface/hub3. Model Menghasilkan Output Chat Aneh
Periksa format prompt. DeepSeek-V4 tidak menggunakan template chat Jinja standar. Gunakan implementasi resmi encoding/.
4. Multi-GPU Run Gagal
Verifikasi PyTorch dapat melihat semua GPU:
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))
PYJuga periksa jaringan NCCL untuk run multi-node:
export NCCL_DEBUG=INFO5. Think Max Terlalu Lambat
Think Max dirancang untuk menghabiskan lebih banyak komputasi pada penalaran sulit. Gunakan hanya untuk tugas yang membenarkan biaya tersebut. Untuk penggunaan asisten normal, Non-think atau Think High biasanya lebih praktis.
Strategi Deployment yang Direkomendasikan
Jika Anda menjalankan DeepSeek-V4 secara lokal untuk pertama kali, ikuti urutan ini:
- Mulai dengan DeepSeek-V4-Flash.
- Gunakan kode inferensi resmi.
- Gunakan konteks uji kecil terlebih dahulu.
- Konfirmasi pengkodean resmi berfungsi.
- Tingkatkan panjang konteks secara bertahap.
- Tambahkan pembungkus API hanya setelah generasi lokal stabil.
- Pertimbangkan Pro hanya jika Anda memiliki sumber daya GPU skala klaster.
Pemikiran Akhir
DeepSeek-V4 sangat kuat, tapi bukan model lokal yang santai. Versi Flash adalah titik masuk praktis, sementara Pro cocok untuk lingkungan multi-GPU atau multi-node yang serius. Kunci setup yang sukses adalah menghormati alur kerja resmi: unduh repositori Hugging Face, konversi bobot dengan alat inferensi yang disediakan, jalankan generasi dengan torchrun, dan gunakan utilitas pengkodean DeepSeek-V4 khusus daripada mengasumsikan template chat generik.
Jika Anda hanya perlu bereksperimen dengan prompt, layanan chat DeepSeek yang dihosting atau rute API mungkin lebih mudah. Tapi jika Anda membutuhkan privasi data, kontrol penuh, tanpa biaya per-token, atau infrastruktur khusus, menjalankan DeepSeek-V4 secara lokal memberi Anda fondasi kuat untuk membangun sistem AI konteks panjang yang privat.