Kalkulator VRAM GPU untuk LLM Lokal

Model 7B pada 4 bit butuh sekitar 3,3 GiB untuk bobot, dan model kelas Llama 3.1 8B menambah sekitar 1 GiB KV cache untuk setiap 8.192 token konteks.

Hanya perkiraan. Pemakaian VRAM nyata bervariasi menurut framework, kernel, dan pengaturan cache.

Apakah masalah Anda terselesaikan?
Pilih kami di Google

Cara memakai

  1. Pilih preset model untuk mengisi parameter, jumlah layer, KV head, dan dimensi head, atau pilih Kustom lalu ketik angka dari config.json model.
  2. Atur bit kuantisasi bobot (4 untuk Q4, 16 untuk FP16) dan presisi KV cache.
  3. Masukkan panjang konteks dalam token dan ukuran batch, yaitu berapa urutan yang diproses bersamaan.
  4. Baca total dan rinciannya: bobot, KV cache, dan overhead. Tabel menunjukkan ukuran GPU umum mana yang muat.

Cara menghitung

Memori bobot = parameter × bit ÷ 8 byte. Model 7 miliar parameter pada 4 bit memakai 7.000.000.000 × 0,5 = 3,5 GB, atau 3,26 GiB. Pada 16 bit jadi 14 GB, sesuai aturan 2 GB per miliar parameter dalam bfloat16 di panduan Hugging Face "Optimizing LLMs for Speed and Memory".

KV cache = 2 × layer × KV head × dimensi head × panjang konteks × ukuran batch × byte per nilai. Angka 2 untuk key dan value. Hugging Face memberi bentuk per token, 2 × 2 × layer × KV head × dimensi head untuk nilai 16 bit, di blog "Unlocking Longer Generation with Key-Value Cache Quantization".

Overhead dimasukkan sebagai persentase dari bobot ditambah KV cache. Nilai ini mewakili konteks CUDA, buffer aktivasi, dan fragmentasi memori. Bawaan 10 persen adalah asumsi, bukan hasil ukur.

Semua hasil dalam GiB (1 GiB = 1.073.741.824 byte). Produsen GPU menulis "24 GB" untuk kartu 24 GiB, jadi tabel muat membandingkan total langsung dengan 8, 12, 16, 24, 48, dan 80. Ini perkiraan. Pemakaian nyata berbeda menurut framework (llama.cpp, vLLM, Ollama, Transformers), kernel, dan cara cache dialokasikan.

Apa yang memenuhi VRAM

Ada dua hal utama. Bobot tetap begitu model dan kuantisasi dipilih. KV cache bertambah dengan setiap token di konteks dan setiap urutan di batch, sehingga pada konteks panjang atau banyak pengguna paralel, model yang tadinya "muat" tiba-tiba tidak muat.

Model dengan grouped query attention (GQA) punya KV head lebih sedikit daripada attention head, sehingga cache mengecil beberapa kali lipat. Karena itu isian KV head lebih penting daripada jumlah attention head. Lihat num_key_value_heads di config.json model.

Ukuran bobot per miliar parameter

Bit per bobotGiB per 1 miliar parameterContoh: model 8B
16 (FP16 / BF16)1,8614,90 GiB
8 (INT8 / Q8)0,937,45 GiB
6 (Q6)0,705,59 GiB
5 (Q5)0,584,66 GiB
4 (Q4)0,473,73 GiB
3 (Q3)0,352,79 GiB
2 (Q2)0,231,86 GiB

Sumber preset

  • config.json tiap repositori: huggingface.co/Qwen/Qwen2.5-{7B,14B,32B,72B}, huggingface.co/Qwen/Qwen3-{8B,32B}, huggingface.co/mistralai/Mistral-7B-v0.3, huggingface.co/mistralai/Mistral-Nemo-Base-2407, huggingface.co/microsoft/phi-4.
  • Llama 3.1 8B dan 70B: config.json Meta di Hugging Face perlu persetujuan akses, jadi nilainya diambil dari Tabel 3 makalah Meta "The Llama 3 Herd of Models" (arXiv 2407.21783). Gemma 2 9B dan 27B: Tabel 1 laporan Google "Gemma 2" (arXiv 2408.00118).
  • Jumlah parameter adalah total safetensors yang ditampilkan API Hugging Face untuk tiap repositori. Jika config.json tidak punya head_dim, alat ini memakai hidden_size ÷ attention head.

Pertanyaan umum

Berapa VRAM yang dibutuhkan model 7B pada 4 bit?

Sekitar 3,3 GiB untuk bobot saja. Dengan konteks 8.192 token pada model kelas Llama 3.1 8B, KV cache menambah sekitar 1 GiB, jadi perkirakan sekitar 5 GiB termasuk overhead. Kartu 8 GB sanggup menjalankannya dan masih ada ruang untuk konteks lebih panjang.

Bisakah kartu 24 GB menjalankan model 32B?

Pada 4 bit, bisa. Qwen2.5 32B punya sekitar 32,76 miliar parameter, jadi bobotnya sekitar 15,3 GiB. Pada konteks 8.192 token, KV cache 2 GiB, dan dengan overhead 10 persen totalnya sekitar 19 GiB.

Mengapa pemakaian nyata saya berbeda dari perkiraan?

Overhead tiap framework berbeda. vLLM mengalokasikan sebagian besar GPU di awal untuk KV cache dan melakukan preempt pada permintaan saat ruang habis, llama.cpp mengalokasikan cache untuk konteks penuh sejak awal, dan K-quant GGUF menyimpan nilai skala tambahan sehingga bit efektifnya lebih tinggi dari angka nominal. Naikkan bit atau overhead jika muncul error kehabisan memori.

Apakah berlaku untuk model mixture of experts?

Bobot tetap harus muat di memori, jadi masukkan total parameter, bukan parameter aktif. KV cache hanya bergantung pada layer attention, jadi pakai jumlah layer dan KV head dari config. Preset di sini adalah model dense.

Gemma 2 memakai sliding window. Apakah perkiraannya lebih rendah?

Gemma 2 bergantian antara layer lokal berjendela 4.096 token dan layer global. Alat ini menghitung konteks penuh di semua layer, jadi untuk Gemma 2 hasilnya adalah batas atas ketika konteks lebih panjang dari jendela.