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

Model Budama

Model budama ile Edge AI için sinir ağının boyutu ve karmaşıklığının nasıl azaltıldığını öğrenin. Mobil cihazlarda daha hızlı çıkarım için Ultralytics optimize etme stratejilerini keşfedin.

Model budama, makine öğreniminde, gereksiz parametreleri sistematik olarak kaldırarak sinir ağının boyutunu ve hesaplama karmaşıklığını azaltmak için kullanılan bir tekniktir . Bir bahçıvanın ağacın gelişmesini teşvik etmek için ölü veya fazla büyümüş dalları budaması gibi, geliştiriciler de yapay ağları daha hızlı, daha küçük ve daha enerji verimli hale getirmek için budarlar. Bu süreç, akıllı telefonlar, gömülü sensörler ve uç bilgi işlem donanımı gibi sınırlı kaynaklara sahip cihazlarda modern derin öğrenme mimarilerini dağıtmak için gereklidir.

Model Budama Nasıl Çalışır?

Budamanın temelindeki fikir, derin sinir ağlarının genellikle "aşırı parametreleştirilmiş" olmasıdır, yani önemli ölçüde daha fazla weights and biases içerir. Eğitim süreci boyunca model çok sayıda bağlantı öğrenir, ancak bunların hepsi nihai çıktıya eşit katkıda bulunmaz. Budama algoritmaları, eğitilmiş modeli analiz ederek bu gereksiz veya bilgilendirici olmayan bağlantıları (genellikle ağırlıkları sıfıra yakın olanlar) belirler ve bunları kaldırır.

Budanan bir modelin yaşam döngüsü genellikle şu adımları izler:

  1. Eğitim: Karmaşık özellikleri yakalamak için büyük bir model yakınsama için eğitilir.
  2. Budama: Düşük öneme sahip parametreler sıfıra ayarlanır veya ağ yapısından fiziksel olarak kaldırılır.
  3. İnce Ayar: Model, kalan parametrelerin budama aşamasında kaybedilen doğruluğu ayarlamasına ve geri kazanmasına izin vermek için ikincil bir ince ayar turuna tabi tutulur. .

Bu metodoloji genellikle Lottery Ticket Hipotezi ile ilişkilendirilir. Bu hipotez, yoğun ağların, izole bir şekilde eğitildiklerinde orijinal modelle karşılaştırılabilir doğruluk elde edebilen daha küçük, izole alt ağlar (kazanan biletler) içerdiğini öne sürer .

Budama Stratejilerinin Türleri

Budama yöntemleri genellikle çıkarılan bileşenlerin yapısına göre sınıflandırılır.

  • Yapılandırılmamış Budama: Bu yaklaşım, bir eşik değerine (örneğin, büyüklük) göre modelin herhangi bir yerindeki bireysel ağırlıkları kaldırır. Bu, parametre sayısını etkili bir şekilde azaltırken, standart donanımın verimli bir şekilde işlemesi zor olabilecek seyrek matrislerle sonuçlanır. Özel yazılım veya donanım hızlandırıcıları olmadan, yapılandırılmamış budama önemli hız iyileştirmeleri sağlamayabilir. Yapılandırılmış Budama: Bu yaklaşım, modelin herhangi bir yerindeki bireysel ağırlıkları bir eşik değerine (örneğin, büyüklük) göre kaldırır.
  • Yapısal Budama: Bu yöntem, evrişimli sinir ağı (CNN) içindeki kanallar, filtreler veya katmanlar gibi tüm geometrik yapıları kaldırır. Yoğun matris yapısını koruyarak, budanan model standart GPU ve CPU uyumlu kalır ve bu da çıkarım gecikmesi ve verimde

Gerçek Dünya Uygulamaları

Budama, Edge AI için kritik bir kolaylaştırıcıdır ve gelişmiş modellerin bulut bağlantısının mevcut olmadığı veya çok yavaş olduğu ortamlarda çalışmasına olanak tanır.

  • Mobil Nesne Algılama: Gerçek zamanlı dil çevirisi veya artırılmış gerçeklik gibi mobil cihazlardaki uygulamalar, pil ömrünü korumak ve bellek kullanımını azaltmak için budanmış modeller kullanır. YOLO26 gibi optimize edilmiş mimariler, doğasında bulunan verimlilikleri nedeniyle bu görevler için sıklıkla tercih edilen temellerdir .
  • Otomotiv Güvenliği: Otonom araçlar ve otonom araçlar, anlık karar vermeyi gerektirir. Budanmış modeller, yerleşik bilgisayarların, verileri sunucuya iletmenin neden olduğu gecikme olmadan, yayaları algılamak için yüksek çözünürlüklü kamera görüntülerini işlemesine olanak tanır.
  • Endüstriyel IoT: Üretimde, montaj hatlarındaki görsel denetim sistemleri, detect için hafif modeller kullanır. Budama, bu sistemlerin pahalı sunucu rafları yerine uygun maliyetli mikrodenetleyiciler üzerinde çalışmasını sağlar .

Budama ve İlgili Optimizasyon Teknikleri

Model budama güçlü bir araç olmakla birlikte, genellikle diğer model optimizasyon teknikleriyle karıştırılır veya bunlarla birlikte kullanılır.

  • Budama ve Niceleme: Budama, modeldeki parametrelerin (bağlantıların) sayısını azaltır. Buna karşılık, model nicelemesi, örneğin 32 bitlik kayan nokta sayılarını 8 bitlik tamsayılara dönüştürerek bu parametrelerin hassasiyetini azaltır. Model dağıtımında verimliliği en üst düzeye çıkarmak için genellikle her ikisi birleştirilir.
  • Budama ve Bilgi Damıtma: Budama, parçaları keserek orijinal modeli değiştirir. Bilgi damıtma, daha büyük bir "öğretmen" modelin davranışını taklit etmek için tamamen yeni, daha küçük bir "öğrenci" modelin eğitilmesini içerir.

Uygulama Örneği

Aşağıdaki Python , PyTorch kullanarak bir evrişimli katmana yapılandırılmamış budama uygulamanın nasıl yapıldığını göstermektedir. PyTorchkullanarak yapısal olmayan budama işleminin nasıl uygulanacağını göstermektedir. Bu, modelleri ONNX ONNXgibi

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

# Initialize a standard convolutional layer
module = nn.Conv2d(in_channels=1, out_channels=20, kernel_size=3)

# Apply unstructured pruning to remove 30% of the connections
# This sets the weights with the lowest L1-norm to zero
prune.l1_unstructured(module, name="weight", amount=0.3)

# Calculate and print the sparsity (percentage of zero elements)
sparsity = 100.0 * float(torch.sum(module.weight == 0)) / module.weight.nelement()
print(f"Layer Sparsity: {sparsity:.2f}%")

Eğitim, değerlendirme ve dağıtım dahil olmak üzere veri kümelerinin ve modellerinin tüm yaşam döngüsünü yönetmek isteyen kullanıcılar için Ultralytics , modern bir arayüz sunar. YOLO26 gibi yüksek düzeyde optimize edilmiş modeller oluşturma ve bunları TensorRT gibi donanım dostu formatlara aktarma sürecini basitleştirir. TensorRT TensorRT veya CoreML gibi donanım dostu formatlara aktarma sürecini basitleştirir.

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