Pruning
Budamanın, gereksiz parametreleri kaldırarak Ultralytics YOLO26 gibi sinir ağlarını nasıl optimize ettiğini öğren. Edge AI için yapısal ve yapısal olmayan yöntemleri keşfet.
Budama, gereksiz parametreleri kaldırarak sinir ağlarının boyutunu ve hesaplama karmaşıklığını azaltmak için kullanılan stratejik bir model optimizasyonu tekniğidir. Tıpkı bir bahçıvanın ağacın gelişmesine yardımcı olmak için kuru veya aşırı büyümüş dalları budaması gibi, budama algoritmaları da bir modelin tahmin gücüne çok az katkıda bulunan gereksiz ağırlıkları ve bias'ları belirleyip ortadan kaldırır. Temel amaç, yüksek doğruluğu korurken çok daha az bellek ve enerji tüketen, sıkıştırılmış ve "seyrek" bir model oluşturmaktır. Bu azaltma, çıkarım gecikmesini iyileştirmek için kritik öneme sahiptir ve gelişmiş mimarilerin cep telefonları ve gömülü cihazlar gibi kaynakları kısıtlı donanımlarda verimli şekilde çalışmasını sağlar.
Mekanizmalar ve Metodoloji#
Modern derin öğrenme modelleri genellikle aşırı parametrelenmiştir; yani belirli bir görevi çözmek için gerekenden çok daha fazla bağlantı içerir. Budama, çıktıyı ihmal edilebilir düzeyde etkiledikleri varsayımından yararlanarak, değeri sıfıra yakın olan bağlantıları kaldırır. Parametreler kaldırıldıktan sonra model genellikle bir ince ayar sürecinden geçirilir; bu süreçte kalan ağırlıkları ayarlamak ve kaybedilen performansı geri kazanmak için kısa süreli yeniden eğitim yapılır. Bu kavram, büyük ağların benzer doğruluğa ulaşabilen daha küçük ve son derece verimli alt ağlar içerdiğini öne süren Piyango Bileti Hipotezi ile yakından ilişkilidir.
Budama stratejilerinin iki temel kategorisi vardır:
- Yapısal Olmayan Budama: Bu yöntem, konumlarına bakılmaksızın tek tek ağırlıkları büyüklüklerine göre kaldırır. Toplam parametre sayısını etkili bir şekilde azaltmasına karşın, standart CPU'ların ve GPU'ların özel yazılım olmadan verimli şekilde işlemek konusunda zorlanabileceği düzensiz seyrek matrisler oluşturur.
- Yapısal Budama: Bu yaklaşım, bir evrişimli sinir ağı (CNN) içindeki nöronlar, kanallar veya katmanlar gibi geometrik yapıların tamamını kaldırır. Matris yapısını koruduğu için yapısal budama, standart donanım hızlandırıcılarıyla son derece uyumludur ve genellikle gerçek zamanlı çıkarım için anında hız artışı sağlar.
Gerçek Dünya Uygulamaları#
Donanım kaynaklarının sınırlı olduğu çeşitli sektörlerde Edge AI kullanımını mümkün kılmak için budama vazgeçilmezdir:
-
Otonom Dronlar: Arama ve kurtarma amacıyla kullanılan insansız hava araçları, karmaşık ortamlarda yol almak için bilgisayarlı görü teknolojisine güvenir. Budanmış nesne algılama modelleri, bu cihazların video akışlarını gerçek zamanlı olarak yerel şekilde işlemesine olanak tanır ve bulut iletişimiyle ilişkili gecikme sorunlarını önler.
-
Mobil Sağlık Hizmetleri: Ultrason analizi için kullanılan taşınabilir tıbbi cihazlar, anormallikleri doğrudan cihaz üzerinde tespit etmek için budanmış modellerden yararlanır. Bu, hasta veri gizliliğini güvence altına alır ve internet erişimi olmayan uzak bölgelerde gelişmiş tanı olanağı sağlar.
Uygulama Örneği#
YOLO26 gibi son teknoloji modeller verimlilik için tasarlanmış olsa da geliştiriciler, PyTorch gibi kütüphaneleri kullanarak katmanları daha da optimize etmek için budama uygulayabilir. Aşağıdaki örnek, bir evrişim katmanına yapısal olmayan budamanın nasıl uygulanacağını gösterir.
import torch
import torch.nn.utils.prune as prune
# Initialize a standard convolutional layer
layer = torch.nn.Conv2d(in_channels=3, out_channels=32, kernel_size=3)
# Apply L1 unstructured pruning to remove 30% of weights with the lowest magnitude
prune.l1_unstructured(layer, name="weight", amount=0.3)
# Verify sparsity (percentage of zero parameters)
sparsity = 100.0 * float(torch.sum(layer.weight == 0)) / layer.weight.nelement()
print(f"Sparsity achieved: {sparsity:.2f}%")Budama ve İlgili Optimizasyon Teknikleri#
Bir modeli dağıtım için etkili şekilde optimize etmek amacıyla budamayı diğer stratejilerden ayırt etmek yararlıdır:
- Model Nicemleme: Bağlantıları kaldıran budamanın aksine nicemleme, ağırlıkların hassasiyetini azaltır (ör. 32 bit kayan noktalı sayıların 8 bit tam sayılara dönüştürülmesi). Her iki teknik de gömülü sistemlerde verimliliği en üst düzeye çıkarmak için birlikte kullanılabilir.
- Bilgi Damıtma: Bu yöntem, daha küçük bir "öğrenci" modelinin daha büyük bir "öğretmen" modelinin davranışını taklit etmesi için eğitilmesini içerir. Budama özgün modeli doğrudan değiştirirken damıtma yeni ve kompakt bir mimariyi eğitir.
Eğitim, açıklama ve optimize edilmiş modellerin dağıtımı dahil olmak üzere kapsamlı yaşam döngüsü yönetimi için kullanıcılar Ultralytics Platform çözümünden yararlanabilir. Bu çözüm, veri kümesi yönetiminden modellerin ONNX veya TensorRT gibi donanım dostu biçimlere aktarılmasına kadar iş akışını kolaylaştırır.









