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.
Mekanizmalar ve Metodoloji#
Modern deep learning modelleri genellikle aşırı parametrelendirilmiştir; yani belirli bir görevi çözmek için gerekenden çok daha fazla bağlantı içerirler. Budama, çıktı üzerinde ihmal edilebilir bir etkiye sahip oldukları varsayımıyla, değerleri sıfıra yakın olan bağlantıları 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ısaca yeniden eğitildiği bir fine-tuning sürecinden geçer. Bu kavram, büyük ağların benzer doğruluğa ulaşabilen daha küçük, son derece verimli alt ağlar içerdiğini öne süren Lottery Ticket Hypothesis ile yakından ilgilidir.
İki temel budama stratejisi kategorisi vardır:
- Unstructured Pruning: Bu yöntem, konumlarına bakılmaksızın büyüklüklerine göre bireysel ağırlıkları kaldırır. Toplam parametre sayısını etkili bir şekilde azaltırken, standart CPUs ve GPUs özel yazılım olmadan verimli bir şekilde işleme konusunda zorlanabileceği düzensiz sparse matrices oluşturur.
- Yapılandırılmış Budama: Bu yaklaşım, convolutional neural network (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ılarıyla oldukça uyumludur ve genellikle real-time inference için anında hızlanmalar sağlar.
Gerçek Dünya Uygulamaları#
Budama, donanım kaynaklarının sınırlı olduğu çeşitli endüstrilerde Edge AI etkinleştirmek için vazgeçilmezdir:
-
Otonom Dronelar: Arama kurtarma için kullanılan insansız hava araçları, karmaşık ortamlarda gezinmek için computer vision güvenir. Budanmış object detection modelleri, bu cihazların video akışlarını yerel olarak gerçek zamanlı olarak işlemesine olanak tanır ve bulut iletişimiyle ilişkili gecikme sorunlarını önler.
-
Mobil Sağlık Hizmetleri: ultrasound analysis için elde taşınan tıbbi cihazlar, doğrudan cihaz üzerindeki anormallikleri tespit etmek için budanmış modelleri kullanır. Bu, hasta data privacy sağlar ve internet erişimi olmayan uzak bölgelerde gelişmiş teşhisleri mümkün kı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, evrişimli bir 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}%")Budama ve İlgili Optimizasyon Teknikleri#
Bir modeli deployment için etkili bir şekilde optimize etmek adına, budamayı diğer stratejilerden ayırmak faydalıdır:
- Model Quantization: Bağlantıları kaldıran budamanın aksine, niceleme ağırlıkların hassasiyetini azaltır (örneğin, 32 bit kayan noktalı sayıları 8 bit tamsayılara dönüştürme). embedded systems verimliliği en üst düzeye çıkarmak için her iki teknik birlikte kullanılabilir.
- Knowledge Distillation: Bu, daha büyük bir "öğretmen" modelinin davranışını taklit etmek için daha küçük bir "öğrenci" modelinin eğitilmesini içerir. Budama orijinal modeli doğrudan değiştirirken, distilasyon yeni ve kompakt bir mimari eğitir.
Eğitim, etiketleme ve optimize edilmiş modelleri dağıtma dahil kapsamlı yaşam döngüsü yönetimi için Ultralytics Platform avantajından yararlanabilirsin. Bu, veri seti yönetiminden modellerin ONNX veya TensorRT gibi donanıma uygun formatlarda dışarı aktarılmasına kadar olan iş akışını basitleştirir.






