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 (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 teknikleri, ağdan neyin çıkarıldığına bağlı olarak genel olarak kategorize edilebilir:
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.
Budama, güçlü yapay zeka modellerini hesaplama kaynaklarının sınırlı olduğu pratik senaryolarda dağıtmak için gereklidir.
Budama, model optimizasyonu için çeşitli tekniklerden biridir ve genellikle diğerleriyle birlikte kullanılır. İlgili kavramlardan ayırmak önemlidir:
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.

