Blog

LLM Çalıştırmak İçin Ne Kadar VRAM Gerekir

LLM Çalıştırmak İçin Ne Kadar VRAM Gerekir

LLM için VRAM ihtiyacı aslında tek bir çarpma işlemine indirgenebilir: parametre sayısı × ağırlık başına düşen bayt miktarı, üzerine KV cache ve çalışma zamanı ek yükleri. 16-bit hassasiyette kabaca milyar parametre başına 2 GB, 8-bit’te 1 GB, 4-bit’te ise 0,5–0,6 GB bellek hesaplanır; bunun üzerine yüzde 10–30 arasında bir pay eklenir. Bu yazıda formülü adım adım açıp, model boyutlarına göre gerçekçi VRAM tabloları, KV cache hesabı ve donanım seçim kriterlerini ele alıyoruz.

VRAM Nedir ve LLM Çalıştırmada Neden Belirleyicidir

VRAM, ekran kartının (GPU) kendi üzerindeki yüksek bant genişlikli bellektir. Bir dil modeli çalıştırıldığında model ağırlıkları, ara aktivasyonlar, dikkat (attention) hesaplarının ara sonuçları ve bağlam penceresinin önbelleği bu bellekte tutulur. Sistem RAM’i bu iş için kullanılabilir olsa da bant genişliği çok daha düşük olduğu için bellekten GPU’ya sürekli veri taşınması gerekir; bu da token üretim hızını ciddi biçimde düşürür.

Bu nedenle soru “model çalışır mı?” değil, “kabul edilebilir hızda çalışır mı?” sorusudur. Model VRAM’e tamamen sığdığında çıkarım tamamen GPU üzerinde kalır. Sığmadığında katmanların bir kısmı CPU’ya veya diske taşınır; bellek yetersizliği arttıkça saniyedeki token sayısı birkaç kat düşebilir. Kapasite planlamasının özü budur.

Temel Hesap: Parametre Sayısı ve Ağırlık Başına Bayt

Model ağırlıkları, her parametrenin kaç bit ile saklandığına bağlı olarak yer kaplar. Bu değere literatürde “bit per weight” (bpw) denir. Pratik çevrim basittir:

  • FP16 / BF16: parametre başına 2 bayt → milyar parametre başına ~2 GB
  • FP8 / INT8: parametre başına 1 bayt → milyar parametre başına ~1 GB
  • 4-bit (INT4, NF4, GPTQ, AWQ): parametre başına ~0,5 bayt → milyar parametre başına ~0,5–0,6 GB
  • 3-bit ve altı: milyar parametre başına ~0,4 GB; kalite kaybı belirginleşir

Burada dikkat edilmesi gereken nokta, dosya boyutunun nominal değerden biraz büyük olmasıdır. Örneğin 4-bit olarak paketlenmiş bir modelde bazı katmanlar (embedding, normalization, çıkış katmanı) genellikle daha yüksek hassasiyette tutulur. GGUF formatındaki Q4_K_M gibi kuantizasyonlar nominal olarak 4 bite denk gelse de gerçekte 4,5 bpw civarında yer kaplar. Q5_K_M yaklaşık 5,5 bpw, Q8_0 ise 8,5 bpw seviyesindedir. Bütçe hesabı yaparken bu sapmayı baştan hesaba katmak gerekir.

Kuantizasyon Seviyesinin Kalite Üzerindeki Etkisi

Bellek tasarrufu her zaman bedelsiz değildir. 8-bit kuantizasyon çoğu modelde kaybı ölçülebilir ama küçük tutar; 4-bit ise genellikle kabul edilebilir sınırın içinde kalır ve topluluk tarafından yaygın biçimde kullanılır. 3-bit ve altına inildiğinde özellikle matematik, kod üretimi ve uzun talimat takibi gerektiren görevlerde tutarlılık düşer. Kısa sohbet ve özetleme görevlerinde ise 4-bit çoğu zaman yeterlidir. Karar verirken “en çok hangi görevde kullanılacak?” sorusu, “en küçük hangi ayar sığar?” sorusundan daha önemlidir.

Model Boyutuna Göre Yaklaşık VRAM Tablosu

Aşağıdaki tablo, yalnızca ağırlıkları değil pratikte ihtiyaç duyulan toplam belleği göstermektedir. Son sütun, 4-bit ağırlıklar ve 8K token bağlam penceresiyle rahat çalışma için önerilen alt sınırı verir.

Model boyutu FP16 / BF16 8-bit 4-bit 4-bit + 8K bağlam (önerilen)
7–8B ~14–16 GB ~7–8 GB ~4–5 GB 8–10 GB
13–14B ~26–28 GB ~13–14 GB ~7–9 GB 12–16 GB
30–34B ~60–68 GB ~30–34 GB ~17–20 GB 24–32 GB
70–72B ~140–145 GB ~70–72 GB ~36–42 GB 48–64 GB
120B sınıfı ~240 GB ~120 GB ~60–72 GB 80–96 GB
400B ve üzeri ~800 GB+ ~400 GB+ ~200–240 GB 256 GB ve üzeri

Tablodaki değerler, mimariye göre (yoğun model, Mixture-of-Experts, gömülü katman sayısı) bir miktar sapabilir. Seyrek (sparse) mimarilerde toplam parametre sayısı yüksek olsa da token başına yalnızca aktif uzmanlar hesaplandığı için bellek ihtiyacı toplam ağırlıklara göre şekillenir; hız ise aktif parametre sayısına bağlıdır. Bu ayrım, kapasite planlarken sık yapılan hatalardan biridir.

KV Cache: Uzun Bağlamın Gizli Maliyeti

Model ağırlıkları sabit bir maliyettir; asıl değişken olan kısım KV cache’dir. Model her token ürettiğinde, önceki tokenlara ait anahtar (key) ve değer (value) tensörlerini yeniden hesaplamamak için bellekte tutar. Bu önbellek bağlam uzunluğu ve eşzamanlı istek sayısıyla doğrusal olarak büyür.

KV Cache Nasıl Hesaplanır

Yaklaşık formül şu şekildedir: 2 × katman sayısı × KV başlık sayısı × başlık boyutu × token sayısı × eşzamanlı istek × hassasiyet baytı. Pratikte iki örnek yeterince açıklayıcıdır:

  • 8B sınıfı bir model (32 katman, 8 KV başlığı, 128 başlık boyutu, FP16): token başına yaklaşık 0,125 MB. 8K bağlamda ~1 GB, 32K bağlamda ~4 GB.
  • 70B sınıfı bir model (80 katman, 8 KV başlığı, 128 başlık boyutu, FP16): token başına yaklaşık 0,31 MB. 8K bağlamda ~2,6 GB, 32K bağlamda ~10 GB, 128K bağlamda ~40 GB.

Bu değerler tek bir istek için geçerlidir. Sunucu aynı anda 16 isteği işliyorsa KV cache maliyeti 16 katına çıkar. Çok kullanıcılı bir kurulumda “model sığdı” demek “sistem hazır” demek değildir. Bağlam yönetimini bir mühendislik disiplini olarak ele almak, bu noktada bellek bütçesinin en etkili aracıdır; bağlam mühendisliği yaklaşımı hem kaliteyi hem de bellek tüketimini aynı anda iyileştirir.

Çalışma Zamanı Ek Yükleri ve Gerçek Dünya Farkları

Teorik hesap ile gerçek kullanım arasında her zaman bir boşluk vardır. Bu boşluğun başlıca kaynakları şunlardır:

  • CUDA bağlamı ve sürücü rezervasyonu: Tek başına 0,3–1,5 GB arası bellek tutabilir.
  • Çıkarım motoru ek yükü: vLLM, llama.cpp, TensorRT-LLM gibi motorlar kendi çalışma alanlarını ayırır.
  • Ara aktivasyonlar ve geçici tamponlar: Özellikle büyük batch boyutlarında belirgin hale gelir.
  • Grafik arabelleği: Masaüstü oturumu açık bir makinede ekran çıkışı da VRAM tüketir.
  • Parçalanma (fragmentation): Uzun süre çalışan süreçlerde bellek parçalanabilir; yeniden başlatma gerekebilir.

Bu nedenle hesaplanan değerin üzerine yüzde 10–30 arası pay bırakmak standart bir yaklaşımdır. Yeni bir model devreye alınırken bu payın üst sınırına yakın planlamak, ilk haftalarda yaşanan “bellek doldu” hatalarının önüne geçer.

Örnek Senaryolar: Hangi Model Hangi Donanıma Sığar

Somut kararlar için birkaç tipik senaryo:

  • Tek 16 GB kart: 7–8B modeli 4-bit ile rahat, 8-bit ile sınırda çalıştırır. 13–14B model 4-bit’te sığar ancak bağlam uzunluğu kısıtlıdır.
  • Tek 24 GB kart: 13–14B modeli 8-bit, 30–34B modeli 4-bit ile çalıştırır. 70B sınıfı için yetersizdir.
  • İki adet 24 GB kart: 70B modeli 4-bit’te, orta uzunlukta bağlamla çalıştırır. Tensor paralelliği ile katmanlar kartlara bölünür.
  • 48 GB sınıfı tek kart: 70B modeli 4-bit’te rahat çalıştırır; 8-bit için iki kart gerekir.
  • 80 GB sınıfı kartlar: 70B modeli 8-bit’te, 120B sınıfını 4-bit’te barındırır. Yüksek eşzamanlılık için iki veya daha fazla kart tercih edilir.

Küçük ama iyi seçilmiş bir modelin, büyük bir modelin 4-bit sürümünden daha tutarlı sonuç verdiği durumlar azımsanmayacak kadar fazladır. Görev tanımı netleştiğinde hangi modelin gerçekten gerekli olduğu daha kolay belirlenir; küçük modellerin karar mekanizmalarındaki rolü için karar modelleri yazısı faydalı bir çerçeve sunar.

VRAM Yetmediğinde Başvurulabilecek Yöntemler

Donanımı büyütmek tek çözüm değildir. Sırasıyla denenebilecek yaklaşımlar:

  1. Kuantizasyonu düşürün: FP16’dan 8-bit’e geçiş bellek ihtiyacını yarıya indirir, kalite kaybı genellikle küçüktür.
  2. Bağlam uzunluğunu sınırlayın: KV cache doğrusal büyüdüğü için 32K yerine 8K kullanmak ciddi tasarruf sağlar.
  3. Eşzamanlı istek sayısını azaltın: Batch boyutu küçültmek, tepe bellek kullanımını düşürür.
  4. Katman boşaltma (offloading) uygulayın: Modelin bir bölümü CPU’da tutulur; hız düşer ama çalışabilirlik korunur.
  5. Daha küçük veya seyrek bir modele geçin: Görev için yeterli olan en küçük modeli seçmek çoğu zaman en verimli karardır.
  6. Retrieval yaklaşımını benimseyin: Tüm bağlamı modele yüklemek yerine ilgili parçaları getirmek, hem bağlamı hem belleği küçültür.
  7. Çoklu GPU’ya dağıtın: Tensor paralelliği ile model katmanlara bölünür; kartlar arası bağlantı hızı burada belirleyicidir.

Donanım Seçimi: Tüketici Kartları mı, Sunucu GPU’ları mı

Tüketici sınıfı kartlar, tek kullanıcılı ve deneysel iş yükleri için maliyet açısından avantajlıdır. Ancak üç konuda sınırları vardır: kartlar arası iletişim bant genişliği, sürekli yük altında soğutma kapasitesi ve kurumsal sürücü desteği. Çok kullanıcılı, 7/24 çalışan bir çıkarım servisi kurulacaksa veri merkezi sınıfı GPU’lar ve ECC bellek çok daha öngörülebilir bir performans sunar.

Karar verirken yalnızca VRAM kapasitesine bakmak yanıltıcıdır. Bellek bant genişliği, token üretim hızını doğrudan etkiler; çünkü otoregresif çıkarım büyük ölçüde bellek bant genişliğine bağımlıdır. Aynı kapasiteye sahip iki kart, bant genişliği farkı nedeniyle belirgin biçimde farklı hız verebilir. Kapasite planlamasında bu iki metriği birlikte değerlendirmek gerekir.

Barındırma Tarafı: VPS mi, Dedicated Sunucu mu

Modeli kendi makinenizde denedikten sonra üretime taşımak ayrı bir planlama gerektirir. Hafif modeller, bir API katmanı ve orta düzeyde eşzamanlılık için VPS hosting hizmeti yeterli olabilir; özellikle modelin bir kısmının CPU üzerinde çalıştığı veya yalnızca vektör arama gibi yardımcı işlerin yapıldığı kurulumlarda maliyet-etkin bir başlangıç noktasıdır. Bu tür bir mimariyi adım adım kurmak isteyenler için VPS üzerinde LLM Gateway kurulumu rehberi iyi bir başlangıç sunar.

Modelin GPU üzerinde tamamen kalması gerekiyorsa, GPU kaynaklarının ayrılmış olduğu dedicated sunucu yapılandırmaları daha uygun olur. Paylaşımlı ortamlarda GPU belleği parçalanabilir ve gecikme dalgalanabilir; üretim iş yüklerinde bu dalgalanma kullanıcı deneyimine yansır. Seçim yaparken ölçüt net olmalı: model ağırlıkları kalıcı olarak bellekte kalacak mı, yoksa istek bazlı yüklenip boşaltılacak mı?

Ölçüm ve Doğrulama: Gerçek Kullanımı Takip Etmek

Hesaplar iyi bir başlangıç noktasıdır ama yerini ölçüme bırakmalıdır. Model devreye alındıktan sonra şu adımlar izlenebilir:

  • Çalışma sırasında GPU bellek kullanımını düzenli aralıklarla kaydedin.
  • Farklı bağlam uzunluklarında tepe bellek değerlerini ayrı ayrı ölçün.
  • Eşzamanlı istek sayısını kademeli artırarak kırılma noktasını bulun.
  • Token/saniye ve ilk token gecikmesini birlikte izleyin; yalnızca hıza bakmak yanıltır.
  • Uzun süreli testlerde bellek sızıntısı veya parçalanma olup olmadığını kontrol edin.

Bu ölçümler, bir sonraki model yükseltmesinde ne kadar ek belleğe ihtiyaç duyulacağını da önceden gösterir.

SSS

7B’lik bir model için ne kadar VRAM yeterli?

4-bit kuantizasyonla 4–5 GB ağırlık yeterlidir; ancak KV cache ve çalışma zamanı ek yükleri nedeniyle pratikte 8 GB, rahat bir kullanım için 10 GB önerilir. 8-bit çalıştırmak istiyorsanız 10–12 GB’lık bir kart daha güvenli olur.

70B’lik bir model tek ekran kartında çalışır mı?

4-bit kuantizasyonda ağırlıklar 36–42 GB yer kaplar. 48 GB sınıfı tek bir kartla, orta uzunlukta bağlamla çalıştırılabilir. 24 GB’lık iki kartla tensor paralelliği kullanmak da yaygın bir çözümdür, ancak kartlar arası bağlantı hızı gecikmeyi etkiler.

VRAM yetersizse sistem RAM’i kullanılabilir mi?

Kullanılabilir, ancak bant genişliği farkı nedeniyle token üretim hızı belirgin biçimde düşer. Katman boşaltma yöntemi, modelin bir bölümünü CPU’da tutarak çalışmayı sürdürür. Bu yaklaşım geliştirme ve test için uygundur; üretimde ise gecikme ve maliyet açısından dikkatli değerlendirilmelidir.