Hugging Face Accelerate memory estimator yalnızca modeli belleğe yükleme boyutunu yaklaşıklar; gerçek training VRAM'i activations, gradients ve optimizer state nedeniyle daha yüksektir.
7B, 8B, 14B, 32B ve 70B modellerde full fine-tuning, LoRA ve QLoRA için VRAM ihtiyacını weights, gradients, optimizer, activations ve context ile hesaplayın.
Hugging Face Accelerate memory estimator yalnızca modeli belleğe yükleme boyutunu yaklaşıklar; gerçek training VRAM'i activations, gradients ve optimizer state nedeniyle daha yüksektir.
Gradient checkpointing activation belleğini düşürür ama backward sırasında activation'ları yeniden hesapladığı için eğitim süresini artırır.
4-bit QLoRA base weights'i ciddi küçültür; fakat LoRA adapter, optimizer, activations ve geçici buffers hâlâ VRAM tüketir.
Training belleğini yalnız model dosyasının GB değeriyle hesaplamak hatalıdır. GPU belleğinde model weights, trainable gradients, optimizer states, forward activations ve framework/kernel workspace aynı anda bulunabilir. Full fine-tuning bu katmanların çoğunu bütün parametreler için taşırken LoRA ve QLoRA trainable parametre sayısını düşürür.
Aynı 8B model; batch=1/context=2048 ile başka, batch=4/context=8192 ile bambaşka VRAM tüketir. Özellikle activation memory batch ve sequence length büyüdükçe ciddi artar; bu yüzden model parametre sayısı tek başına kapasite kararı değildir.
Full fine-tuning'de bütün model parametreleri gradient alır. AdamW gibi optimizer'lar trainable parametreler için ek state taşır; mixed precision kullanıldığında bile master weights ve optimizer state belleği önemli kalabilir. Bu nedenle yalnız FP16 weight boyutunun birkaç katı training footprint görmek normaldir.
7B/8B sınıfı full fine-tuning bile tek tüketici GPU'suna çoğu zaman sığmaz; model sharding, ZeRO/FSDP veya çoklu GPU gerekir. LoRA/QLoRA bu yüzden tek GPU fine-tuning için daha pratik yaklaşımlardır.
LoRA base modeli dondurur ve düşük-rank adapter matrislerini eğitir. Bu, gradient ve optimizer state'in yalnız adapter parametrelerinde tutulmasını sağlar. QLoRA buna ek olarak base modeli 4-bit quantized yükleyerek weight footprint'i daha da küçültür.
Ancak 4-bit demek toplam training VRAM'inin model boyutunun dörtte biri olması demek değildir. Activations çoğunlukla BF16/FP16 compute dtype ile oluşur; KV-benzeri ara tensörler, attention workspace ve batch/context büyüklüğü aynı kalmaya devam eder.
24 GB kartlarda 7B/8B QLoRA genellikle rahat başlangıç sınıfıdır; 14B QLoRA çoğu konfigürasyonda mümkündür ama context, batch ve optimizer seçimi önem kazanır. 32B QLoRA bazı sıkı ayarlarla mümkün olabilir fakat activation memory ve uzun context hızlıca sınırı aşar.
Kesin karar vermeden önce `accelerate estimate-memory` ile weight tabanını ölçün, sonra gerçek mini batch üzerinde peak VRAM'i `torch.cuda.max_memory_allocated()` ve `nvidia-smi` ile doğrulayın. Estimator'ın kendi dokümanı bunun yalnız model load tahmini olduğunu açıkça belirtir.
accelerate estimate-memory MODEL_ID --library_name transformers
nvidia-smi
python - <<'PY'
import torch
print(torch.cuda.get_device_name())
print(round(torch.cuda.get_device_properties(0).total_memory/1024**3,2),'GB')
PY
Sequence length yalnız input token sayısı değildir; her layer'da attention ve MLP activations oluşturur. 2K'dan 8K'ya çıkmak weight boyutunu değiştirmez ama activation footprint'i dramatik büyütebilir. OOM sadece batch azaltılarak çözülmüyorsa context ilk bakılacak değişkenlerden biridir.
Gradient accumulation fiziksel micro-batch'i küçük tutup daha büyük efektif batch taklit eder. Gradient checkpointing ise activation saklamak yerine backward'da yeniden hesaplar. Birlikte kullanıldığında VRAM ciddi düşebilir; karşılığında step süresi uzar.
Efektif batch kabaca `per_device_batch × accumulation × GPU sayısı`dır. Learning rate ve scheduler davranışını değerlendirirken fiziksel batch yerine efektif batch'i düşünün.
Önce batch=1 ve gerçek gerekli context ile baseline alın. Sonra BF16/FP16, gradient checkpointing, gradient accumulation, 8-bit optimizer ve QLoRA'yı sırayla deneyin. Hâlâ sığmıyorsa model boyutunu düşürün veya FSDP/DeepSpeed/CPU offload'a geçin.
12-16 GB: küçük/orta QLoRA ve diffusion LoRA. 24 GB: 7B-14B QLoRA için güçlü tek GPU sınıfı. 32-48 GB: 14B-32B QLoRA ve daha uzun context için rahatlık. 80 GB: 32B/70B adapter training, büyük diffusion ve multi-GPU ölçekleme için profesyonel sınıf. Bunlar garanti değil; gerçek config test edilmelidir.
| VRAM | Rahat başlangıç | Sınırda/ileri ayar |
|---|---|---|
| 12-16 GB | 3B-8B QLoRA | 14B çok sıkı |
| 24 GB | 7B-14B QLoRA | 32B sıkı |
| 32-48 GB | 14B-32B QLoRA | 70B ciddi optimizasyon |
| 80 GB | 32B rahat QLoRA | 70B adapter training |
Çalışan eğitim ortamında paketleri rastgele güncellemeyin. GPU modeli, driver, CUDA/PyTorch runtime, transformers, accelerate, peft, trl, bitsandbytes/diffusers sürümleri ile model revision ve dataset fingerprint bilgisini her run için kaydedin. Önce minimal reproducible test oluşturun, sonra production eğitime müdahale edin.
Tek GPU'da normal QLoRA için çoğu 70B config çok sıkıdır. CPU offload, çoklu GPU/FSDP/ZeRO veya daha düşük context gibi ileri teknikler gerekir.
Hayır. Training sırasında activations, gradients, optimizer state ve framework buffers ek bellek tüketir.
Model boyutu, precision, context, batch, LoRA/QLoRA veya full fine-tuning yöntemi ve multi-GPU ihtiyacınızı birlikte değerlendirin; yalnız GPU model adına bakarak kapasite seçmeyin.