Yapay zeka modellerinin eğitimi ve çıkarımı sırasında GPU belleği (VRAM), en kritik kaynaklardan biridir.
Yapay zeka modellerinin eğitimi ve çıkarımı sırasında GPU belleği (VRAM), en kritik kaynaklardan biridir. Yanlış hesaplanmış RAM ihtiyacı, eğitim sürecinin kesintiye uğramasına veya yetersiz performansına yol açabilir. Bu makalede, AI modelleri için GPU RAM kullanımını doğru hesaplamanın yöntemlerini adım adım ele alacağız. Özellikle derin öğrenme modelleri gibi Transformer tabanlı yapılar için pratik formüller ve örnekler sunarak, kurumsal projelerde kaynak planlamasını optimize etmenize yardımcı olacağız. Hesaplama sürecini anlamak, donanım seçimini doğru yapmanızı ve maliyetleri minimize etmenizi sağlar.
AI modellerinin GPU RAM tüketimi, ağırlıklar, aktivasyonlar, gradyanlar ve optimizer durumundan oluşur. Ağırlıklar, model parametre sayısının float32 hassasiyetinde (4 bayt) çarpımıyla hesaplanır. Örneğin, 1 milyar parametreli bir model yaklaşık 4 GB RAM kullanır. Aktivasyonlar ise en büyük payı alır; forward ve backward pass’lerde batch boyutu, dizi uzunluğu ve gizli boyut gibi faktörlere bağlıdır. Gradyanlar, ağırlıklarla benzer boyuttadır ve optimizer (örneğin Adam) momentum ve varyans gibi ek tensorlar ekler, toplamı yaklaşık 3-4 katına çıkarır.
Pratikte, bellek kullanımını şu adımlarla parçalara ayırın: Önce model mimarisini inceleyin (örneğin Hugging Face’ten parametre sayısını alın). Ardından eğitim senaryosunu tanımlayın: batch_size=32, sequence_length=512 gibi. Bu bileşenleri toplamak, tahmini RAM’i verir. Optimizasyon teknikleri gibi mixed precision (FP16), bellek kullanımını yarıya indirebilir, ancak hassasiyet kaybını göz önünde bulundurun.
Model ağırlıkları, parametre sayısının 4 baytla çarpımıdır. 175 milyar parametreli GPT-3 benzeri bir model için 700 GB’a ulaşır. Optimizer durumunda Adam kullanıldığında, her parametre için momentum (4 bayt), varyans (4 bayt) ve beta1/beta2 sabitleri eklenir; toplamda ağırlıkların 12 katı bellek gerekebilir. Kurumsal uygulamalarda ZeRO gibi dağıtık optimizer’lar bu yükü GPU’lar arası böler. Hesaplama adımı: Parametre sayısını model.summary() ile alın, optimizer çarpanını (örneğin 12) ekleyin.
Aktivasyon belleği, forward pass’te batch_size * sequence_length * hidden_size * layer_sayısı * sizeof(float) formülüyle hesaplanır. Backward pass’te iki katına çıkar. Örneğin, hidden_size=4096, 24 layer, batch=8, seq=1024 için yaklaşık 16 GB aktivasyon bellek tüketir. Gradyanlar forward belleğinin %50-100’ü kadardır. Pratik ipucu: PyTorch’ta torch.utils.bottleneck ile ölçüm yapın ve activation checkpointing uygulayarak belleği %30-50 azaltın.
Temel formül: Toplam RAM = Ağırlıklar + Optimizer + Aktivasyonlar + Gradyanlar + Sabitler (yaklaşık 2-5 GB). Detaylı hesaplama için Transformer modellerinde şu eşitlik kullanılır: Aktivasyon RAM ≈ 2 * batch_size * seq_len * hidden_size * layers * bytes_per_element (FP16 için 2 bayt). Backward için çarpanı 4’e çıkarın. Bu formülü Excel veya Python script’inde uygularak senaryo bazlı tahminler üretin. Kurumsal ekiplerde, bu hesaplama donanım RFP’lerinde (talep teklifleri) zorunludur.
Bu yaklaşım, A100 (40/80 GB) gibi GPU’larda tam kullanım sağlar. Mixed precision ile bytes_per_element=2’ye düşürün.
Transformer’larda dikkat mekanizması quadratic bellek artırır: seq_len^2 * hidden_size. Llama-7B için seq=2048, batch=4’tte aktivasyonlar 20 GB’ı aşar. Formül: Total = model_size * 18 (ZeRO-1 ile) + activations. Python’da: def calc_vram(params, batch, seq, hidden, layers): return (params*2/1e9)*18 + batch*seq*hidden*layers*2*4/1e9. Bu script’i çalıştırarak anlık tahmin alın.
DDP veya FSDP ile bellek model_size / GPU_sayısına bölünür. 8x A100’de 70B model, GPU başına 20 GB’a iner. Hesaplama: Her GPU için model_shard + activations (paylaşımlı). Pratikte DeepSpeed config ile entegrasyon yapın; bellek kullanımını %70 azaltır. Test edin: Küçük batch ile başlayıp scale edin.
BERT-base (110M params) için single GPU’da batch=16, seq=512: Ağırlık 0.44 GB, optimizer 5 GB, activations 4 GB, toplam ~12 GB (RTX 3090 yeterli). GPT-2 large (774M) için A100 gerekir. Örnek script: PyTorch’ta model.cuda(); torch.cuda.max_memory_allocated() ile ölçün. Kurumsal projelerde, bu verileri logging ile izleyin.
Optimizasyon: Gradient accumulation ile efektif batch artırın (bellek aynı kalır). FlashAttention ile quadratic belleği lineer hale getirin. Pruning ile params %50 azaltın. Adımlar: 1) Baseline hesapla. 2) FP16/INT8 uygula. 3) Checkpointing ekle. 4) Dağıtık scale et. Bu stratejilerle %60 bellek tasarrufu sağlar.
Sonuç olarak, GPU RAM hesaplama becerisi, AI projelerinin verimliliğini doğrudan etkiler. Yukarıdaki formüller ve adımları uygulayarak, donanım yatırımlarınızı optimize edin ve kesintisiz eğitimler gerçekleştirin. Düzenli ölçüm ve iterasyonla, modellerinizi en verimli şekilde çalıştırın.