Gradyan Biriktirme (Gradient Accumulation)
Araç kavramlarıGradient Accumulation nedir?
Gradient accumulation (gradyan biriktirme), sınırlı ekran kartı belleğiyle (VRAM) büyük batch boyutlarının avantajını yakalamanı sağlayan bir eğitim tekniğidir. Büyük batch'ler eğitimi daha kararlı yapar ama hepsini aynı anda belleğe sığdırmak gerekir. Kartın yetmiyorsa, batch'i parçalara böler, gradyanları biriktirir ve sanki tek büyük batch işlemişsin gibi güncelleme yaparsın.
Nasıl çalışır?
Normalde her mini-batch'ten sonra model ağırlıkları güncellenir. Gradient accumulation'da bu güncellemeyi ertelersin: diyelim 4 mini-batch işleyeceksin. Her birinin gradyanını hesaplarsın ama ağırlıkları güncellemek yerine gradyanları toplarsın (biriktirirsin). 4. mini-batch bittiğinde biriken toplam gradyanla tek bir güncelleme yaparsın. Sonuç, 4 kat büyük bir batch işlemişsin gibi olur; ama bellekte aynı anda sadece bir mini-batch durur.
Neden önemli?
Büyük modelleri mütevazı donanımda eğitmenin en pratik yollarından biridir. RTX 4050 gibi 6 GB VRAM'li bir kartla, normalde sığmayacak etkin batch boyutlarına ulaşabilirsin. Mixed precision ve gradient checkpointing gibi tekniklerle birleştiğinde, ev bilgisayarında fine-tuning gerçekten mümkün hale gelir. Tek bedeli: eğitim biraz yavaşlar, çünkü tek güncelleme için birden fazla ileri-geri geçiş yaparsın.
Kullanım alanları
LoRA ve QLoRA ile dil modeli fine-tuning'inde neredeyse standarttır. Hugging Face Transformers, PyTorch Lightning gibi kütüphanelerde tek satırlık bir ayarla (accumulation steps) açılır. Bellek darboğazı yaşayan herkesin ilk başvurduğu numaradır.
Ilgili terimler
