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, eğitilmiş bir sinir ağının (NN) boyutunu ve hesaplama karmaşıklığını azaltmak için kullanılan bir model optimizasyon tekniğidir. Bu süreç, modelden gereksiz veya daha az önemli parametreleri (ağırlıkları) veya yapıları (nöronlar, kanallar veya katmanlar) tanımlamayı ve kaldırmayı içerir. Amaç, orijinaline kıyasla benzer düzeyde bir doğruluğu koruyan daha küçük, daha hızlı ve daha enerji verimli bir model oluşturmaktır. Bu, özellikle yapay zeka modellerini uç cihazlar gibi kaynak kısıtlı ortamlarda dağıtmak için çok önemlidir.

Budama Nasıl Çalışır

Budama (pruning) süreci tipik olarak bir derin öğrenme modeli tamamen eğitildikten sonra başlar. Birçok büyük modelin aşırı parametrelendirilmiş olduğu ilkesine göre çalışır, yani son tahmine çok az katkıda bulunan birçok ağırlık ve nöron içerirler. Bu önemsiz bileşenleri belirlemenin yaygın bir yöntemi, büyüklüklerini analiz etmektir; sıfıra yakın değerlere sahip parametreler daha az önemli kabul edilir. Belirlendikten sonra, bu parametreler kaldırılır veya sıfıra ayarlanır. Budama işleminden sonra, artık daha küçük olan ağ genellikle ince ayar (fine-tuning) işlemine tabi tutulur, bu da modelin birkaç epok (epoch) daha yeniden eğitilmesini içerir. Bu adım, kalan parametrelerin mimari değişikliklere uyum sağlamasına ve budama sırasında kaybedilmiş olabilecek herhangi bir performansı geri kazanmasına yardımcı olur. "Derin Sıkıştırma (Deep Compression)" gibi temel araştırma makalelerinde açıklandığı gibi, bu yinelemeli budama ve ince ayar süreci, model boyutu ve performansı arasında istenen bir dengeyi elde etmek için tekrarlanabilir.

Budama Türleri

Budama teknikleri, ağdan neyin çıkarıldığına bağlı olarak genel olarak kategorize edilebilir:

  • Yapılandırılmamış Budama (Ağırlık Budama): Bu yöntem, büyüklükleri gibi belirli bir kritere göre ağdan tek tek ağırlıkları kaldırır. Birçok bağlantının sıfıra indirildiği seyrek bir modelle sonuçlanır. Bu, parametre sayısını önemli ölçüde azaltabilirken, çıkarımı (inference) her zaman daha hızlı hale getirmeyebilir. CPU'lar veya GPU'lar gibi standart donanımlarda, NVIDIA'nın seyrek modeller için araçları gibi özel yazılım kitaplıkları olmadan bu mümkün olmayabilir.
  • Yapılandırılmış Budama (Structured Pruning): Bu yaklaşım, bir Evrişimsel Sinir Ağı (CNN) içindeki nöronlar, kanallar veya hatta tüm katmanlar gibi ağın tüm yapısal bileşenlerini kaldırır. Ağın düzenli bloklarını kaldırdığı için, modelin boyutunu ve hesaplama gereksinimlerini, standart donanımın kolayca kullanabileceği bir şekilde doğrudan azaltır ve genellikle daha öngörülebilir hızlanmalara yol açar. Neural Magic's DeepSparse gibi araçlar, bu tür yapılandırılmış seyrek modeller için CPU'larda çıkarımı hızlandırmak üzere tasarlanmıştır.

Makine öğrenimi alanındaki PyTorch ve TensorFlow gibi büyük framework'ler, kırpmayı uygulamak için yerleşik araçlar ve eğitimler sunar.

Gerçek Dünya Uygulamaları

Budama, güçlü yapay zeka modellerini hesaplama kaynaklarının sınırlı olduğu pratik senaryolarda dağıtmak için gereklidir.

  1. Uç Cihazlarda Nesne Algılamayı Optimize Etme: Ultralytics YOLO gibi modeller gerçek zamanlı nesne algılama için kullanılır. YOLOv8 gibi bir model budanarak, Raspberry Pi veya NVIDIA Jetson gibi düşük güçlü uç cihazlarda konuşlandırılabilir. Bu, cihaz üzerinde akıllı gözetim, trafik yönetimini optimize etme ve robotikte bilgisayar görüşünü entegre etme gibi uygulamaları mümkün kılar.
  2. Büyük Dil Modellerini (LLM'ler) Yerel Olarak Çalıştırma: Budama, Transformer gibi mimarilere dayalı Büyük Dil Modellerinin (LLM'ler) bellek ayak izini önemli ölçüde azaltabilir. Budanmış bir LLM, metin özetleme veya yerel sanal asistanlar gibi Doğal Dil İşleme (NLP) görevleri için doğrudan bir akıllı telefonda veya dizüstü bilgisayarda çalıştırılabilir. Bu, yanıt verme hızını artırır ve kullanıcı verilerini cihazda tutarak veri gizliliğini artırır; bu, Electronic Frontier Foundation (EFF) gibi kuruluşlar için temel bir ilkedir.

Budama ve Diğer Optimizasyon Teknikleri

Budama, model optimizasyonu için çeşitli tekniklerden biridir ve genellikle diğerleriyle birlikte kullanılır. İlgili kavramlardan ayırmak önemlidir:

  • Model Nicelemesi: Bu teknik, modelin ağırlıklarının ve aktivasyonlarının sayısal duyarlılığını azaltır (örneğin, 32 bit kayan sayılardan 8 bit tamsayılara). Bu, model boyutunu küçültür ve özellikle özel desteğe sahip donanımlarda hesaplamayı hızlandırabilir. Parametreleri kaldıran budamadan farklı olarak, niceleme bunları sıkıştırır.
  • Bilgi Damıtımı (Knowledge Distillation): Bu yöntemde, daha küçük bir "öğrenci" modeli, daha büyük, önceden eğitilmiş bir "öğretmen" modelin çıktısını kopyalamak için eğitilir. Amaç, öğrenilen bilgiyi daha kompakt bir mimariye aktarmaktır, oysa budama mevcut mimariyi değiştirir.

Bu teknikler birbirini dışlamaz. Yaygın bir iş akışı, önce gereksiz parametreleri kaldırmak için bir modeli budamak, ardından maksimum verimlilik için budanmış modele niceleme uygulamaktır. Optimize edilmiş modeller daha sonra çeşitli çıkarım motorlarında geniş dağıtım için Ultralytics dışa aktarma işlevi kullanılarak ONNX gibi standart formatlara aktarılabilir. Ultralytics HUB gibi platformlar, eğitimden optimize edilmiş model dağıtımına kadar tüm yaşam döngüsünü yönetmeye yardımcı olabilir.

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
Bağlantı panoya kopyalandı