VRAM Nedir ve LLM'ler için Neden Önemlidir?

VRAM (Video Random Access Memory), GPU hesaplamaları için veri depolamak üzere kullanılan grafik kartınızdaki özel bellektir. Büyük Dil Modellerini (LLM) yerel olarak çalıştırırken, verimli çıkarım için tüm model ağırlıkları VRAM'a sığmalıdır. Sistem RAM'ından farklı olarak, VRAM, LLM'leri çalışır hale getiren paralel hesaplamalar için gereken yüksek bant genişliğini sağlar.

VRAM'ın tükenmesi, sistemi GPU belleği ile sistem RAM'ı arasında veri değiştirmeye zorlar ve metin oluşturmayı önemli ölçüde yavaşlatır. Çoğu durumda, bir model VRAM'a sığmazsa, hiç çalışmaz. Bu, herhangi bir yerel LLM'yi indirmeden veya çalıştırmaya çalışmadan önce VRAM gereksinimlerini hesaplamayı gerekli kılar.

LLM VRAM Nasıl Hesaplanır?

LLM'ler için VRAM kullanımı üç ana bileşenden oluşur:

  1. Model ağırlıkları: Temel sinir ağı parametreleri. FP16 (16-bit) cinsinden 7B parametreli bir model yaklaşık 14 GB kullanırken, aynı model 4-bit'e kuantize edildiğinde yalnızca ~4 GB kullanır.

  2. KV Cache: Metin oluşturma sırasında model, önceki token'lardan anahtar-değer çiftlerini depolar. Bu cache, bağlam uzunluğu ile büyür ve uzun konuşmalar için birkaç gigabayt tüketebilir.

  3. Ek Yük: CUDA kernel'leri, aktivasyon tensörleri ve framework ek yükü, tipik olarak temel gereksinimlere %10-15 ekler.

Model boyutu formülü: (Parametreler × Ağırlık Başına Bit) ÷ 8 = Bayt Cinsinden Boyut

Araç Açıklaması

Bu hesaplayıcı, GPU'nuzda yerel olarak Büyük Dil Modeli çalıştırmak için gereken VRAM'ı tahmin eder. Modelinizin parametre sayısını girin, bir kuantizasyon formatı seçin ve mevcut VRAM'ınızı belirtin; modelin sığıp sığmayacağını ve destekleyebileceğiniz maksimum bağlam uzunluğunu anında görün.

Araç, llama.cpp'den GGUF Q2'den Q8 varyantlarına kadar tüm yaygın kuantizasyon formatlarını, ayrıca standart FP16 ve FP32 hassasiyetini destekler. Ayrıca, VRAM kapasitesi göz önüne alındığında GPU'nuzun işleyebileceği maksimum bağlam uzunluğunu hesaplar.

Özellikler

  • 20+ kuantizasyon formatı: GGUF kuantizasyon türleri (Q2_K'den Q8_0'a), i-quants (IQ2-IQ4) ve standart hassasiyetler (FP16, FP32, BF16) için tam destek
  • Popüler model ön ayarları: Llama 3, Mistral, Qwen ve Phi modelleri dahil olmak üzere 1B'den 405B parametreye kadar yaygın model boyutları için hızlı seçim
  • GPU ön ayarları: GTX 1650'den H100'e kadar popüler tüketici ve profesyonel GPU'lar için önceden yapılandırılmış VRAM miktarları
  • Bağlam uzunluğu hesaplaması: GPU'nuzun destekleyebileceği maksimum bağlam penceresini otomatik olarak hesaplar
  • Gerçek zamanlı sonuçlar: Parametreleri ayarladıkça anında geri bildirim

Kullanım Durumları

Model indirmeden önce: 50+ GB dosya indirmeye zaman harcamadan önce bir modelin donanımınızda çalışıp çalışmayacağını kontrol edin. Hangi kuantizasyon seviyesine ihtiyacınız olduğunu önceden bilin.

Çıkarım ayarlarını optimize etme: Model kalitesi (daha yüksek kuantizasyon) ile bağlam uzunluğu arasındaki ideal noktayı bulun. Bazen Q6'dan Q4'e düşmek, bağlam pencerenizi iki katına çıkarmanıza izin verir.

GPU yükseltmesi planlama: Farklı GPU'ların hedef modellerinizi nasıl işleyeceğini karşılaştırın. Llama 70B veya diğer büyük modelleri rahatça çalıştırmak için tam olarak ne kadar VRAM'a ihtiyacınız olduğunu görün.

Desteklenen kuantizasyon formatları

Format Bit/Ağırlık En İyi Kullanım
FP32 32.0 Maksimum hassasiyet, araştırma
FP16/BF16 16.0 Eğitim, yüksek kaliteli çıkarım
Q8_0 8.5 Neredeyse kayıpsız kalite
Q6_K 6.56 İyi sıkıştırma ile yüksek kalite
Q5_K_M 5.69 Dengeli kalite ve boyut
Q4_K_M 4.85 Tüketici GPU'ları için popüler seçim
Q4_0 4.5 İyi sıkıştırma, hafif kalite kaybı
Q3_K_M 3.65 Agresif sıkıştırma
Q2_K 2.63 Maksimum sıkıştırma, belirgin kalite kaybı
IQ4_XS 4.25 Önem ağırlıkları ile optimize edilmiş 4-bit
IQ3_XXS 3.06 Deneysel ultra-düşük bit
IQ2_XXS 2.06 Aşırı sıkıştırma

Nasıl Çalışır

Hesaplayıcı şu formülleri kullanır:

Model Boyutu (GB) = (Milyar cinsinden Parametreler × 10⁹ × ağırlık başına bit) ÷ 8 ÷ 10⁹

KV Cache (GB) ≈ (Parametreler × Bağlam Uzunluğu ÷ 1000 × 0.5) ÷ 1000

Toplam VRAM = Model Boyutu + KV Cache + %10 ek yük

KV cache formülü basitleştirilmiş bir yaklaşımdır. Gerçek KV cache boyutu model mimarisine (katman sayısı, dikkat başlıkları ve başlık boyutları) bağlıdır, ancak bu tahmin çoğu transformer tabanlı LLM'ler için iyi çalışır.

İpuçları

  • Q4_K_M ile başlayın: Bu kuantizasyon, çoğu kullanım durumu için kalite ve boyut açısından en iyi dengeyi sunar
  • Boşluk bırakın: Daha uzun oluşturmalar sırasında bellek yetersizliği hatalarından kaçınmak için 1-2 GB boş VRAM'a hedefleyin
  • Bağlam ihtiyaçlarını göz önünde bulundurun: Uzun bağlam (8K+) gerekiyorsa, daha agresif kuantizasyon kullanmanız gerekebilir
  • Çoklu GPU'lar: Çok GPU kurulumları için, modelleri kartlar arasında bölebilirsiniz, ancak bu hesaplayıcı tek GPU kullanımını varsayar

Sınırlamalar

  • KV cache tahminleri, tipik transformer mimarileri temel alınarak yapılan yaklaşımlardır
  • Gerçek VRAM kullanımı, çıkarım framework'ü (llama.cpp, vLLM, TensorRT-LLM) tarafından değişir
  • Toplu çıkarım veya spekülatif kod çözme ek yükünü hesaba katmaz
  • Flash Attention ve diğer optimizasyonlar gerçek gereksinimleri azaltabilir
  • Bazı modellerin standart olmayan mimarileri daha fazla veya daha az bellek kullanabilir

SSS

S: Modelim hesaplanan değerden daha fazla VRAM kullanıyor neden? C: Hesaplayıcı temel tahminler sağlar. Çıkarım framework'leri kendi ek yüklerini ekler ve bazı işlemler pik kullanımını artıran geçici tamponlar gerektirir.

S: VRAM'ımdan daha büyük modelleri CPU boşaltma kullanarak çalıştırabilir miyim? C: Evet, llama.cpp gibi araçlar kısmi GPU boşaltmayı destekler, ancak performans önemli ölçüde düşer. Bu hesaplayıcı tam GPU çıkarımına odaklanır.

S: Hangi kuantizasyonu kullanmalıyım? C: Çoğu kullanıcı için Q4_K_M, ~4.85 bit/ağırlık ile mükemmel kalite sunar. VRAM'ınız varsa, Q5_K_M veya Q6_K biraz daha iyi kalite sağlar. Yalnızca kesinlikle gerekli olduğunda Q2/Q3 formatlarını kullanın.

S: Bu tahminler ne kadar doğru? C: Çoğu yaygın model için %10-20 içinde. Gerçek kullanım, belirli model mimarisi, çıkarım arka ucu ve çalışma zamanı ayarlarına bağlıdır.