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

Budama (Pruning)

Kırpma ile yapay zeka modellerini optimize edin; karmaşıklığı azaltın, verimliliği artırın ve performanstan ödün vermeden uç cihazlarda daha hızlı dağıtım yapın.

Budama, aşağıdakiler için kritik bir tekniktir makine öğrenimi boyutunu küçültmeyi ve hesaplama karmaşıklığı gereksiz olanları kaldırarak sinir ağı (NN) parametreler. Sağlıklı büyümeyi teşvik etmek için bir ağaçtaki ölü dalları kesmek gibi, model budama da model ağırlıklarını veya bağlantılarını ortadan kaldırır. sistemin çıktısına minimum düzeyde katkıda bulunur. Öncelikli hedef, yüksek kaliteyi koruyan seyrek bir model oluşturmaktır. bellek kullanımını önemli ölçüde azaltırken doğruluk ve çıkarım gecikmesinin iyileştirilmesi. Bu süreç gibi sofistike mimarileri dağıtmak için gereklidir. Ultralytics YOLO11kaynak kısıtlaması olan cihazlarda depolama ve işlem gücü sınırlıdır.

Budama Nasıl Çalışır

Süreç tipik olarak önceden eğitilmiş bir modelle başlar. Algoritmalar parametreleri bulmak için ağı analiz eder - genellikle sıfıra yakın değerlere sahip olan veya nihai tahmin üzerinde sınırlı etkisi olan tensörler olarak temsil edilir. Bu parametreler şunlardır daha sonra kaldırılır veya "sıfırlanır". Bağlantıların kaldırılması performansı geçici olarak düşürebileceğinden, model genellikle ince ayar adı verilen bir süreçten geçer. birkaç epok için yeniden eğitilir ve böylece kalan kayıp hassasiyeti ayarlamak ve geri kazanmak için ağırlıklar.

İki ana budama kategorisi vardır:

  • Yapılandırılmamış Budama: Bu yöntem, ağın herhangi bir yerindeki bireysel ağırlıkları aşağıdakilere göre kaldırır büyüklük. Parametre sayısını azaltmada etkili olsa da, düzensiz bellek erişim modelleri yaratır. özelleşmeden standart CPU'larda hız iyileştirmeleri sağlar yazılım veya donanım desteği, örneğin NVIDIA'nın seyreklik özellikleri.
  • Yapılandırılmış Budama: Bu yaklaşım nöronlar, kanallar gibi tüm yapısal bileşenleri ortadan kaldırır, veya içindeki katmanlar Evrişimli Sinir Ağı (CNN). Matris yapısını koruyarak, bu yöntem standart donanım için daha kolaydır ve genellikle sırasında anında hızlanmalar gerçek zamanlı çıkarım.

Budama vs. Niceleme vs. Damıtma

Budama işlemini diğer işlemlerden ayırmak önemlidir. model optimizasyon stratejileri, Ancak genellikle birlikte kullanılırlar:

  • Model Niceleme: Bunun yerine parametreleri kaldırırken, niceleme ağırlıkların hassasiyetini azaltır (örneğin, 32 bitten kayan noktadan 8 bitlik tam sayılara).
  • Bilgi Damıtma: Bu, daha büyük bir "öğretmenin" davranışını taklit etmek için daha küçük bir "öğrenci" modelinin eğitilmesini içerir büyük modeli doğrudan değiştirmek yerine, modelin
  • Budama: Özellikle seyrekliğe neden olmak için bağlantıları veya yapıları kaldırmaya odaklanır.

Gerçek Dünya Uygulamaları

Budama, Edge AI' nın tüm dünyada etkinleştirilmesinde hayati bir rol oynar çeşitli sektörler:

  1. Otonom Robotik: Kullanan robotlar navigasyon için bilgisayarla görmenin işlemesi gerekir gecikmeyi önlemek için yerel olarak görsel veriler. Budama, karmaşık gömülü sistem üzerinde çalışacak nesne algılama modelleri dronların veya teslimat botlarının donanımı, güvenlik ve verimlilik sağlar. Hakkında daha fazlasını okuyun Bilgisayarla görmenin robotikle bütünleştirilmesi.
  2. Mobil Sağlık Teşhisi: Tıbbi uygulamalar genellikle yüksek çözünürlüklü taramaların analiz edilmesini gerektirir hastayı korumak için doğrudan tabletlerde veya akıllı telefonlarda veri gizliliği. Budanmış modeller bu cihazların hassas verileri buluta yüklemeden tümör tespiti gibi görevleri gerçekleştirin. Nasıl olduğunu görün Sağlık hizmetlerinde yapay zeka, teşhis yöntemlerini dönüştürüyor.

Pratik Örnek

Bir yandan Ultralytics YOLO modelleri kutudan çıkar çıkmaz son derece optimize edilmiştir, geliştiriciler standart PyTorch yardımcı programlarını kullanarak budama işlemini deneyebilirler. Aşağıdaki örnekte nasıl yapılacağı gösterilmektedir bilgisayarla görme modellerinde bulunan standart bir evrişimsel katmana yapılandırılmamış budama uygular.

import torch
import torch.nn.utils.prune as prune
from ultralytics.nn.modules import Conv

# Initialize a standard convolutional block used in YOLO models
layer = Conv(c1=64, c2=128)

# Apply L1 unstructured pruning to remove 30% of the lowest magnitude weights
prune.l1_unstructured(layer.conv, name="weight", amount=0.3)

# Verify the sparsity (percentage of zero weights)
sparsity = float(torch.sum(layer.conv.weight == 0)) / layer.conv.weight.nelement()
print(f"Layer sparsity achieved: {sparsity:.2%}")

Yaklaşan YOLO26 gibi verimli mimarideki gelecekteki gelişmeler, bunları entegre etmeyi amaçlamaktadır optimizasyon ilkelerini yerel olarak uygulayarak, tasarım gereği daha küçük, daha hızlı ve daha doğru modeller oluşturur.

Temel Kavramlar ve Kaynaklar

  • Seyreklik: Bir matrisin çoğunlukla sıfır değerleri içermesi durumu, agresif matris yönetiminin doğrudan bir sonucudur. Budama.
  • Piyango Bileti Hipotezi: Yeni ufuklar açan bir kavram MIT'deki araştırmacılar, yoğun ağların daha küçük ağlar içerdiğini öne sürüyor. tek başına eğitildiğinde orijinal doğrulukla eşleşebilen alt ağlar (kazanan biletler).
  • İnce Ayar: Yeniden eğitim süreci uyarlamak için budanmış model kalan ağırlıkların yeni, basitleştirilmiş yapıya aktarılması.

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