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ılandırılmış ve yapılandırılmamış yöntemleri keşfet.
Pruning is a strategic model optimization technique used to reduce the size and computational complexity of neural networks by removing unnecessary parameters. Much like a gardener trims dead or overgrown branches to help a tree thrive, pruning algorithms identify and eliminate redundant weights and biases that contribute little to a model's predictive power. The primary objective is to create a compressed, "sparse" model that maintains high accuracy while consuming significantly less memory and energy. This reduction is essential for improving inference latency, allowing advanced architectures to run efficiently on resource-constrained hardware like mobile phones and embedded devices.
Link to this sectionMekanizmalar ve Metodoloji#
Modern derin öğrenme modelleri genellikle aşırı parametrelidir; bu, belirli bir görevi çözmek için gerekenden çok daha fazla bağlantı içerdikleri anlamına gelir. Budama, sıfıra yakın değerlere sahip bağlantıları, çıktı üzerinde ihmal edilebilir bir etkiye sahip oldukları varsayımıyla kaldırarak bundan yararlanır. Parametreler kaldırıldıktan sonra model genellikle, kalan ağırlıkları ayarlamak ve kaybedilen performansı geri kazanmak için kısa süreliğine yeniden eğitildiği bir ince ayar sürecinden geçer. Bu kavram, büyük ağların benzer doğruluğa ulaşabilen daha küçük, oldukça verimli alt ağlar içerdiğini öne süren Piyango Bileti Hipotezi ile yakından ilişkilidir.
İki temel budama stratejisi kategorisi vardır:
- Unstructured Pruning: This method removes individual weights based on their magnitude, regardless of their location. While it effectively reduces the total parameter count, it creates irregular sparse matrices that standard CPUs and GPUs may struggle to process efficiently without specialized software.
- Yapılandırılmış Budama: Bu yaklaşım, bir evrişimli sinir ağı (CNN) içindeki nöronlar, kanallar veya katmanlar gibi tüm geometrik yapıları kaldırır. Matris yapısını koruyarak, yapılandırılmış budama standart donanım hızlandırıcılarla oldukça uyumludur ve genellikle gerçek zamanlı çıkarım için anında hız artışı sağlar.
Link to this sectionGerçek Dünya Uygulamaları#
Budama, donanım kaynaklarının sınırlı olduğu çeşitli endüstrilerde Edge AI özelliğini etkinleştirmek için vazgeçilmezdir:
-
Otonom Drone'lar: Arama kurtarma çalışmaları için kullanılan insansız hava araçları, karmaşık ortamlarda gezinmek için bilgisayarlı görü teknolojisine güvenir. Budanmış nesne algılama modelleri, bu cihazların video akışlarını yerel olarak gerçek zamanlı işlemesini sağlayarak bulut iletişimiyle ilişkili gecikme sorunlarını önler.
-
Mobil Sağlık Hizmetleri: Ultrason analizi için kullanılan el tipi tıbbi cihazlar, anomalileri 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ş teşhis imkanı sağlar.
Link to this sectionUygulama Ö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 uygulayabilirler. Aşağıdaki örnek, bir evrişimli katmana yapılandırılmamış budamanın nasıl uygulanacağını göstermektedir.
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}%")Link to this sectionBudama ve İlgili Optimizasyon Teknikleri#
Bir modeli dağıtım için etkili bir şekilde optimize etmek adına, budamayı diğer stratejilerden ayırmak faydalıdır:
- Model Kuantizasyonu: Bağlantıları kaldıran budamanın aksine, kuantizasyon ağırlıkların hassasiyetini azaltır (örneğin, 32-bit kayan noktalı sayıları 8-bit tam sayılara dönüştürür). Her iki teknik, gömülü sistemlerde verimliliği en üst düzeye çıkarmak için birlikte kullanılabilir.
- Bilgi Damıtma: Bu, daha büyük bir "öğretmen" modelin davranışını taklit etmesi için daha küçük bir "öğrenci" model eğitmeyi içerir. Budama orijinal modeli doğrudan değiştirirken, damıtma yöntemi yeni ve kompakt bir mimari eğitir.
Eğitim, etiketleme ve optimize edilmiş modelleri dağıtma dahil olmak üzere kapsamlı yaşam döngüsü yönetimi için kullanıcılar Ultralytics Platform imkanlarından yararlanabilirler. Bu, veri kümesi yönetiminden ONNX veya TensorRT gibi donanım dostu formatlarda model dışa aktarmaya kadar olan iş akışını basitleştirir.






