Budama (Pruning)
İş akışıPruning nedir?
Pruning (budama), eğitilmiş bir sinir ağındaki gereksiz ya da çok az katkı sağlayan ağırlıkları, nöronları veya katmanları kesip atma işlemidir. Amaç, modelin doğruluğunu mümkün olduğunca koruyarak boyutunu küçültmek, daha az bellek harcamasını ve daha hızlı çalışmasını sağlamak. Bahçedeki bir bitkiyi budar gibi, modelin işe yaramayan dallarını temizlersin.
Nasıl çalışır?
Tipik akış şöyle: önce model normal şekilde eğitilir, sonra ağırlıkların önemi ölçülür. En sık kullanılan ölçüt, ağırlığın büyüklüğüdür; sıfıra çok yakın ağırlıklar modele neredeyse hiçbir şey katmadığı için budanır. Budama sonrası model genelde bir tur daha fine-tuning ile yeniden eğitilir, böylece kalan ağırlıklar boşluğu kapatır.
İki temel yaklaşım var: unstructured pruning tek tek ağırlıkları siler ve seyrek (sparse) bir model üretir; structured pruning ise bütün nöronları, kanalları veya katmanları siler, bu da donanımda gerçek hız kazancı sağlar.
Neden önemli?
Büyük modeller pahalı: hem bellek hem de işlem gücü ister. Pruning, quantization ve distillation ile birlikte model sıkıştırmanın üç ana yönteminden biri. Bir modeli telefon, gömülü cihaz ya da edge donanımına sığdırmak istiyorsan budama kritik bir araç. Bazı durumlarda hafif budama, modeli aşırı öğrenmeden (overfitting) uzaklaştırıp genelleme yeteneğini bile artırabilir.
Kullanım alanları
Mobil ve edge cihazlarda çalışan modeller, gerçek zamanlı çıkarım (inference) gerektiren sistemler, sunucu maliyetini düşürmek isteyen üretim ortamları. quantization ile birlikte sıkça kullanılır.
Ilgili terimler
