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

Model Budama

Model budama ile makine öğrenimi modellerini optimize edin. Kaynak kısıtlı dağıtımlar için daha hızlı çıkarım, azaltılmış bellek kullanımı ve enerji verimliliği elde edin.

Model budama bir model optimizasyon tekniği boyutunu ve hesaplama karmaşıklığını azaltmak için tasarlanmıştır. Gereksiz sinir ağlarını kaldırarak parametreler. Yapay zeka modelleri daha yüksek performans elde etmek için büyüdükçe, genellikle Nihai çıktıya çok az katkıda bulunan birçok bağlantı veya nöron içeren aşırı parametreli. Tanımlayarak ve bu gereksiz bileşenleri ortadan kaldırarak, geliştiriciler daha az bellek ve enerji gerektiren daha yalın modeller oluşturabilirler daha hızlı gerçek zamanlı çıkarım sunarken. Bu süreç özellikle aşağıdaki gibi sofistike mimarilerin dağıtımı için hayati önem taşır YOLO11 kaynakların kıt olduğu donanımlarda, örneğin cep telefonları veya gömülü sensörler.

Temel Kavramlar ve Mekanizmalar

Budama süreci tipik olarak üç ana aşamadan oluşur: eğitim, budama ve ince ayar. Başlangıçta, büyük bir model aşağıdakiler için eğitilir karmaşık özellikleri yakalamak için yakınsama. Budama aşaması sırasında bir algoritma, belirli bir algoritmanın önemini değerlendirir. parametreler-genellikle weights and biases-temelli büyüklük veya hassasiyet gibi kriterler. Önemsiz görülen parametreler sıfıra ayarlanır veya tamamen kaldırılır.

Ancak, bir ağın bazı bölümlerini kesmek, ağın kalitesini düşürebilir. doğruluk. Buna karşı koymak için, model bir daha sonra ince ayar olarak bilinen yeniden eğitim turu. Bu adım, kalan parametrelerin ayarlanmasına ve eksik bağlantıları telafi eder ve genellikle modelin performansını orijinal seviyelerine yakın hale getirir. Bu Bu yaklaşımın etkinliği, aşağıdaki hususlarla desteklenmektedir Piyango Bileti Hipotezi, yoğun ağların aşağıdakileri içerdiğini öne sürer Tek başına eğitildiğinde karşılaştırılabilir doğruluk elde edebilen daha küçük alt ağlar.

Model Budama Türleri

Budama stratejileri genellikle kaldırılan bileşenlerin yapısına göre kategorize edilir:

  • Yapılandırılmamış Budama: Bu yöntem, konumlarına bakılmaksızın bireysel ağırlıkları hedefler, düşük değerlere sahip olanları sıfıra ayarlamak. Bu da değerli bağlantıların "seyrek" olduğu bir matrisle sonuçlanır. dağınıktır. Model boyutunu azaltmada etkili olsa da, yapılandırılmamış budama genellikle özel donanım veya gerçek hız kazanımlarını gerçekleştirmek için yazılım kütüphaneleri, standart olarak CPU'lar ve GPU 'lar yoğun matris için optimize edilmiştir operasyonlar.
  • Yapılandırılmış Budama: Bu yaklaşım, tek tek ağırlıklar yerine tüm geometrik ağırlıkları kaldırır. içindeki kanallar, filtreler veya katmanlar gibi yapılar Evrişimli Sinir Ağları (CNN'ler). Matrislerin yoğun yapısını koruyarak, yapısal budama standart donanımın matrisleri işlemesine izin verir. modelini daha verimli hale getirerek doğrudan daha düşük özelleşmeye ihtiyaç duymadan çıkarım gecikmesi seyrek hızlandırma araçları.

Budama ve Niceleme

Her ikisi de popüler optimizasyon teknikleri olsa da, budama işlemini aşağıdakilerden ayırt etmek önemlidir model niceleme. Budama azaltmaya odaklanır parametrelerin (bağlantılar veya nöronlar) sayısını değiştirerek modelin mimarisini etkili bir şekilde değiştirir. İçinde Buna karşılık, niceleme bu parametrelerin hassasiyetini azaltır, örneğin 32-bit kayan noktalı sayıları 8 bitlik tam sayılara dönüştürür. Bu yöntemler genellikle birbirini tamamlar; bir geliştirici önce bir modeli budayabilir için bellek ayak izini daha da en aza indirmek için nicelleştirin. Dağıtım.

Gerçek Dünya Uygulamaları

Budama, gelişmiş bir budama sistemi oluşturmada kritik bir rol oynar. pratikte erişilebilir bilgisayar görüşü Senaryolar:

  1. Mobil Nesne Algılama: Akıllı telefonlarda çalışan uygulamalar, örneğin artırılmış gerçeklik uygulamaları veya fotoğraf düzenleyiciler, gerçekleştirmek için budanmış modeller kullanın yerel olarak nesne algılama. Bu, bataryayı korur ve buluttan kaçınarak kullanıcı veri gizliliğini sağlar işleniyor.
  2. Otomotiv Güvenlik Sistemleri: Otonom araçlar hızlı işlemeye dayanır yayaları ve engelleri detect etmek için görsel veri. Budanmış modeller yerleşik anlık kararlar vermek için çıkarım motoru Sunucu sınıfı bir GPU'nun muazzam güç tüketimine ihtiyaç duymadan.

Uygulama Örneği

Gibi çerçeveler PyTorch uygulamak için yerleşik yardımcı programlar sağlar programlı olarak budama. Aşağıdaki örnekte, yapılandırılmamış budamanın bir evrişimli yapıya nasıl uygulanacağı gösterilmektedir katmanı, bir modeli aşağıdaki gibi optimize edilmiş bir formata aktarmadan önce yapılan ortak bir işlemdir ONNX.

import torch
import torch.nn.utils.prune as prune

# Initialize a standard convolutional layer
layer = torch.nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3)

# Apply L1 unstructured pruning to remove 30% of the connections
# This sets the smallest 30% of weights (by absolute value) to zero
prune.l1_unstructured(layer, name="weight", amount=0.3)

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

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