Yerel LLM için GPU VRAM Hesaplayıcı

4 bitlik 7B model ağırlıklar için yaklaşık 3,3 GiB gerektirir; Llama 3.1 8B sınıfı bir model her 8.192 token bağlam için yaklaşık 1 GiB KV önbelleği ekler.

Yalnızca tahmindir. Gerçek VRAM kullanımı çerçeveye, çekirdeklere ve önbellek ayarlarına göre değişir.

Sorununuz çözüldü mü?
Google'da tercih et

Nasıl kullanılır

  1. Parametre, katman, KV başlığı ve başlık boyutunu doldurmak için bir model seçin; ya da Özel'i seçip modelin config.json değerlerini yazın.
  2. Ağırlıkların nicemleme bitini (Q4 için 4, FP16 için 16) ve KV önbelleği hassasiyetini seçin.
  3. Bağlam uzunluğunu token olarak ve parti boyutunu, yani aynı anda kaç dizinin çalışacağını girin.
  4. Toplamı ve ağırlık, KV önbelleği, ek yük dökümünü okuyun. Tablo hangi yaygın GPU boyutlarına sığdığını gösterir.

Nasıl hesaplanır

Ağırlık belleği = parametre × bit ÷ 8 bayt. 7 milyar parametreli bir model 4 bitte 7.000.000.000 × 0,5 = 3,5 GB, yani 3,26 GiB tutar. 16 bitte 14 GB olur; bu, Hugging Face kılavuzu "Optimizing LLMs for Speed and Memory"deki bfloat16 için milyar parametre başına 2 GB kuralıyla uyuşur.

KV önbelleği = 2 × katman × KV başlığı × başlık boyutu × bağlam uzunluğu × parti boyutu × değer başına bayt. 2, anahtar ve değer içindir. Hugging Face, 16 bit değerler için token başına 2 × 2 × katman × KV başlığı × başlık boyutu formülünü "Unlocking Longer Generation with Key-Value Cache Quantization" yazısında verir.

Ek yük, ağırlıklar ile KV önbelleğinin toplamının yüzdesi olarak girilir. CUDA bağlamını, aktivasyon tamponlarını ve bellek parçalanmasını temsil eder. Varsayılan yüzde 10 bir varsayımdır, ölçüm değildir.

Tüm sonuçlar GiB cinsindendir (1 GiB = 1.073.741.824 bayt). GPU üreticileri 24 GiB'lık kart için "24 GB" yazar; bu yüzden sığma tablosu toplamı doğrudan 8, 12, 16, 24, 48 ve 80 ile karşılaştırır. Bu bir tahmindir. Gerçek kullanım çerçeveye (llama.cpp, vLLM, Ollama, Transformers), çekirdeklere ve önbelleğin nasıl ayrıldığına göre değişir.

VRAM'i ne doldurur

İki şey baskındır. Model ve nicemleme seçildiğinde ağırlıklar sabittir. KV önbelleği bağlamdaki her token ve partideki her dizi ile büyür; bu yüzden uzun bağlamda veya çok sayıda eşzamanlı kullanıcıda "sığan" bir model birden sığmaz olur.

Gruplanmış sorgu dikkati (GQA) kullanan modellerde dikkat başlığından az KV başlığı bulunur ve önbellek birkaç kat küçülür. Bu yüzden KV başlığı alanı dikkat başlığı sayısından daha önemlidir. Modelin config.json dosyasında num_key_value_heads değerine bakın.

Milyar parametre başına ağırlık boyutu

Ağırlık başına bit1 milyar parametre başına GiBÖrnek: 8B model
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

Hazır modellerin kaynağı

  • Her deponun config.json dosyası: 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 ve 70B: Meta'nın config.json dosyaları Hugging Face'te onay gerektirir; bu yüzden değerler Meta makalesi "The Llama 3 Herd of Models" (arXiv 2407.21783) Tablo 3'ten alındı. Gemma 2 9B ve 27B: Google raporu "Gemma 2" (arXiv 2408.00118) Tablo 1.
  • Parametre sayıları, Hugging Face API'nin her depo için gösterdiği safetensors toplamıdır. config.json'da head_dim yoksa hidden_size ÷ dikkat başlığı sayısı kullanılır.

Sık sorulan sorular

4 bitlik 7B model için ne kadar VRAM gerekir?

Yalnızca ağırlıklar için yaklaşık 3,3 GiB. Llama 3.1 8B sınıfı bir modelde 8.192 token bağlamla KV önbelleği yaklaşık 1 GiB ekler; ek yükle birlikte 5 GiB civarı hesaplayın. 8 GB'lık bir kart çalıştırır ve daha uzun bağlam için pay kalır.

24 GB'lık kart 32B modeli çalıştırabilir mi?

4 bitte evet. Qwen2.5 32B'nin yaklaşık 32,76 milyar parametresi var, ağırlıklar yaklaşık 15,3 GiB tutar. 8.192 token bağlamda KV önbelleği 2 GiB'dır; yüzde 10 ek yükle toplam yaklaşık 19 GiB eder.

Gerçek kullanımım neden tahminden farklı?

Çerçevelerin ek yükü farklıdır. vLLM, GPU'nun çoğunu KV önbelleği için baştan ayırır ve yer bitince istekleri önceden durdurur; llama.cpp tam bağlam için önbelleği en başta ayırır; GGUF K-quant'lar ek ölçek değerleri sakladığı için etkin bitleri nominal sayıdan yüksektir. Bellek yetersiz hatası alırsanız bit veya ek yükü artırın.

Uzman karışımı (MoE) modelleri için de çalışır mı?

Ağırlıkların yine de belleğe sığması gerekir; aktif değil toplam parametre sayısını girin. KV önbelleği yalnızca dikkat katmanlarına bağlıdır; config'teki katman ve KV başlığı değerlerini kullanın. Buradaki hazır modellerin hepsi yoğun modeldir.

Gemma 2 kayan pencere kullanıyor. Tahmin daha düşük mü olmalı?

Gemma 2, 4.096 token pencereli yerel katmanlarla genel katmanları dönüşümlü kullanır. Araç tüm katmanlarda tam bağlamı saydığı için, bağlam pencereden uzunsa Gemma 2 için üst sınır verir.