Yolo Vision Shenzhen
Shenzhen
Şimdi katılın
Sözlük

Budama (Pruning)

Budama işleminin, gereksiz parametreleri kaldırarak Ultralytics gibi sinir ağlarını nasıl optimize ettiğini öğrenin. Edge AI için yapılandırılmış ve yapılandırılmamış yöntemleri keşfedin.

Budama, gereksiz parametreleri kaldırarak sinir ağlarının boyutunu ve hesaplama karmaşıklığını azaltmak için kullanılan stratejik bir model optimizasyon tekniğidir. Bir bahçıvanın ağacın gelişmesine yardımcı olmak için ölü veya aşırı büyümüş dalları budaması gibi, budama algoritmaları da gereksiz ağ ağırlıklarını ve önyargıları belirler weights and biases belirleyip ortadan kaldırır. Birincil amaç, yüksek doğruluğu korurken önemli ölçüde daha az bellek ve enerji tüketen sıkıştırılmış, "seyrek" bir model oluşturmaktır. Bu azaltma, çıkarım gecikmesini iyileştirmek için gereklidir ve gelişmiş mimarilerin cep telefonları ve gömülü cihazlar gibi kaynakları sınırlı donanımlarda verimli bir şekilde çalışmasını sağlar.

Mekanizmalar ve Metodoloji

Modern derin öğrenme modelleri genellikle aşırı parametrelidir, yani belirli bir görevi çözmek için gerekenden çok daha fazla bağlantı içerirler. Budama , çıktı üzerinde önemsiz bir etkiye sahip oldukları varsayımıyla, değeri sıfıra yakın olan bağlantıları kaldırarak bunu kullanır . Parametreler kaldırıldıktan sonra, model genellikle bir ince ayar sürecinden geçer ve bu süreçte, kalan ağırlıkları ayarlamak ve kaybedilen performansı geri kazanmak için kısa bir süre yeniden eğitilir. Bu kavram, büyük ağların benzer doğruluğa ulaşabilen daha küçük, yüksek verimli alt ağlar içerdiğini öne süren Lottery Ticket Hypothesis(Piyango Bileti Hipotezi) ile yakından ilgilidir.

Budama stratejileri iki ana kategoriye ayrılır:

  • Yapılandırılmamış Budama: Bu yöntem, konumlarına bakılmaksızın büyüklüklerine göre tek tek ağırlıkları kaldırır. Toplam parametre sayısını etkili bir şekilde azaltırken, standart CPU'lar ve GPU'lar özel yazılımlar olmadan verimli bir şekilde işlemekte zorlanabilecekleri düzensiz seyrek matrisler oluşturur.
  • Yapısal Budama: Bu yaklaşım, konvolüsyonel 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ısal budama standart donanım hızlandırıcılarla yüksek düzeyde uyumludur ve genellikle gerçek zamanlı çıkarım için anında hız artışları sağlar.

Gerçek Dünya Uygulamaları

Budama, donanım kaynaklarının sınırlı olduğu çeşitli endüstrilerde Edge AI'yı mümkün kılmak için vazgeçilmezdir: - Akıllı telefonlar: Akıllı telefonların işlem gücü sınırlıdır ve bu sınırlı işlem gücü, Edge AI'nın akıllı telefonlarda kullanılmasını zorlaştırır.

  1. Otonom Dronlar: Arama ve kurtarma için kullanılan insansız hava araçları, karmaşık ortamlarda gezinmek için bilgisayar görüşüne dayanır. Budanmış nesne algılama modelleri, bu cihazların video akışlarını yerel olarak gerçek zamanlı olarak işlemesine olanak tanır ve bulut iletişimi ile ilişkili gecikme sorunlarını önler.
  2. Mobil Sağlık Hizmetleri: Ultrason analiziiçin kullanılan el tipi tıbbi cihazlar , cihaz üzerinde doğrudan detect için budanmış modeller kullanır. Bu, hasta verilerinin gizliliğini sağlar ve internet erişimi olmayan uzak bölgelerde gelişmiş teşhis imkanı sunar.

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 uygulayabilirler PyTorchkullanarak katmanları daha da optimize etmek için budama uygulayabilirler. Aşağıdaki örnek, yapısal olmayan budamanın bir evrişimli katmana 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 dağıtım için etkili bir şekilde optimize etmek için , budamayı diğer stratejilerden ayırmak yararlıdır:

  • Model Niceleme: Bağlantıları kaldıran budama işleminden farklı olarak, niceleme ağırlıkların hassasiyetini azaltır (örneğin, 32 bitlik kayan nokta sayılarını 8 bitlik tamsayılara dönüştürür). Her iki teknik de 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" 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, 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 kullanabilirler. Bu, veri kümesi yönetiminden ONNX gibi donanım dostu formatlarda modellerin dışa aktarılmasına kadar iş akışını basitleştirir. ONNX veya TensorRTgibi donanım dostu formatlarda dışa aktarılmasına kadar iş akışını basitleştir

Ultralytics topluluğuna katılın

Yapay zekanın geleceğine katılın. Küresel yenilikçilerle bağlantı kurun, işbirliği yapın ve birlikte büyüyün

Şimdi katılın