Model Pruning
Model budamanın (pruning), Uç Yapay Zeka için sinir ağı boyutunu ve karmaşıklığını nasıl azalttığını öğren. Mobil cihazlarda daha hızlı çıkarım için Ultralytics YOLO26'yı optimize etme stratejilerini keşfet.
Model budama, gereksiz parametreleri sistematik olarak kaldırarak bir sinir ağının boyutunu ve hesaplama karmaşıklığını azaltmak için kullanılan bir makine öğrenimi tekniğidir. Bir bahçıvanın ağacın sağlıklı büyümesini teşvik etmek için ölü veya aşırı büyümüş dalları budamasına benzer şekilde, geliştiriciler de yapay ağları daha hızlı, daha küçük ve daha enerji verimli hale getirmek için budarlar. Bu süreç, modern derin öğrenme mimarilerini akıllı telefonlar, gömülü sensörler ve uç bilgi işlem donanımları gibi sınırlı kaynaklara sahip cihazlarda dağıtmak için çok önemlidir.
Link to this sectionModel Budama Nasıl Çalışır#
Budamanın arkasındaki temel fikir, derin sinir ağlarının genellikle "aşırı parametreli" olmasıdır; yani belirli bir problemi çözmek için kesinlikle gerekenden çok daha fazla ağırlık ve sapmaya sahiptirler. Eğitim süreci sırasında model çok sayıda bağlantı öğrenir, ancak hepsi nihai çıktıya eşit derecede katkıda bulunmaz. Budama algoritmaları, eğitilmiş modeli analiz ederek bu gereksiz veya bilgi taşımayan bağlantıları (genellikle ağırlıkları sıfıra yakın olanları) tanımlar ve kaldırır.
Budanmış bir modelin yaşam döngüsü genellikle şu adımları izler:
-
Eğitim: Büyük bir model, karmaşık özellikleri yakalamak için yakınsamaya kadar eğitilir.
-
Budama: Düşük önem derecesine sahip parametreler sıfıra ayarlanır veya ağ yapısından fiziksel olarak kaldırılır.
-
Fine-Tuning: The model undergoes a secondary round of fine-tuning to allow the remaining parameters to adjust and recover any accuracy lost during the pruning phase.
Bu metodoloji, yoğun ağların, izole bir şekilde eğitilmeleri durumunda orijinal modelle karşılaştırılabilir doğruluğa ulaşabilen daha küçük, izole edilmiş alt ağlar (kazanan biletler) içerdiğini öne süren Piyango Bileti Hipotezi ile ilişkilidir.
Link to this sectionBudama Stratejileri Türleri#
Budama yöntemleri genellikle kaldırı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) dayalı olarak modelin herhangi bir yerindeki bireysel ağırlıkları kaldırır. Bu, parametre sayısını etkili bir şekilde azaltsa da, standart donanımın verimli bir şekilde işlemesinin zor olabileceği 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 yöntem, bir 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, budanmış model standart GPU ve CPU donanımıyla uyumlu kalır ve bu da çıkarım gecikmesinde ve verimlilikte doğrudan iyileşmelere yol açar.
Link to this sectionGerçek Dünya Uygulamaları#
Budama, Uç Yapay Zeka için kritik bir kolaylaştırıcıdır ve sofistike modellerin bulut bağlantısının olmadığı veya çok yavaş olduğu ortamlarda çalışmasını sağlar.
- 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ış modelleri kullanır. YOLO26 gibi optimize edilmiş mimariler, içsel verimlilikleri nedeniyle bu görevler için sıklıkla tercih edilen temellerdir.
- Otomotiv Güvenliği: Kendi kendine giden arabalar ve otonom araçlar saliselik karar verme süreçleri gerektirir. Budanmış modeller, araç içi bilgisayarların yaya tespiti için yüksek çözünürlüklü kamera beslemelerini, verileri bir sunucuya iletmenin getirdiği gecikme olmadan işlemesini sağlar.
- Endüstriyel IoT: Üretimde, montaj hatlarındaki görsel denetim sistemleri kusurları tespit etmek için hafif modeller kullanır. Budama, bu sistemlerin pahalı sunucu rafları yerine uygun maliyetli mikro denetleyiciler üzerinde çalışabilmesini sağlar.
Link to this sectionBudama ve İlgili Optimizasyon Teknikleri#
Model budama güçlü bir araç olsa da, genellikle diğer model optimizasyonu teknikleriyle karıştırılır veya bunlarla birlikte kullanılır.
- Budama ve Nicemleme (Quantization): Budama, modeldeki parametrelerin (bağlantıların) sayısını azaltır. Buna karşılık, model nicemleme, bu parametrelerin hassasiyetini azaltır; örneğin 32-bit kayan noktalı sayıları 8-bit tam sayılara dönüştürerek. Her ikisi de genellikle model dağıtımı için verimliliği en üst düzeye çıkarmak amacıyla birleştirilir.
- Budama ve Bilgi Damıtma (Knowledge Distillation): Budama, parçaları keserek orijinal modeli değiştirir. Bilgi damıtma, daha büyük bir "öğretmen" modelin davranışını taklit etmesi için tamamen yeni, daha küçük bir "öğrenci" model eğitmeyi içerir.
Link to this sectionUygulama Örneği#
Aşağıdaki Python örneği, PyTorch kullanarak evrişimli bir katmana yapılandırılmamış budamanın nasıl uygulanacağını göstermektedir. Bu, modelleri ONNX gibi optimize edilmiş formatlara dışa aktarmadan önce yaygın bir adımdır.
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}%")Veri setlerinin ve modellerin eğitim, değerlendirme ve dağıtım dahil olmak üzere tüm yaşam döngüsünü yönetmek isteyen kullanıcılar için Ultralytics Platform modern bir arayüz sunar. YOLO26 gibi yüksek düzeyde optimize edilmiş modeller oluşturma ve bunları TensorRT veya CoreML gibi donanım dostu formatlara dışa aktarma sürecini basitleştirir.






