Sözlük

Budama

Yapay zeka modellerini budama ile optimize edin; karmaşıklığı azaltın, verimliliği artırın ve performanstan ödün vermeden uç cihazlarda daha hızlı dağıtı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. Süreç, gereksiz veya daha az önemli parametrelerin (ağırlıklar) veya yapıların (nöronlar, kanallar veya katmanlar) belirlenmesini ve modelden çıkarılmasını içerir. Amaç, orijinaliyle karşılaştırılabilir bir doğruluk seviyesini koruyan daha küçük, daha hızlı ve daha enerji tasarruflu bir model oluşturmaktır. Bu, özellikle uç cihazlar gibi kaynak kısıtlı ortamlarda karmaşık yapay zeka model lerini dağıtmak için çok önemlidir.

Budama Nasıl Çalışır?

Budama süreci genellikle bir derin öğrenme modeli tamamen eğitildikten sonra başlar. Birçok büyük modelin aşırı parametreli olduğu, yani nihai tahmine çok az katkıda bulunan birçok ağırlık ve nöron içerdiği ilkesine göre çalışır. Bu önemsiz bileşenleri belirlemek için yaygın bir yöntem, büyüklüklerini analiz etmektir; sıfıra yakın değerlere sahip parametreler daha az önemli kabul edilir. Tanımlandıktan 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 modelin birkaç dönem daha yeniden eğitilmesini içeren ince ayara tabi tutulur. Bu adım, kalan parametrelerin mimari değişikliklere uyum sağlamasına ve budama sırasında kaybedilmiş olabilecek performansın geri kazanılmasına yardımcı olur. Bu yinelemeli budama ve ince ayar süreci,"Derin Sıkıştırma" gibi temel araştırma makalelerinde açıklandığı gibi, model boyutu ve performans arasında istenen dengeyi elde etmek için tekrarlanabilir.

Budama Türleri

Budama teknikleri, ağdan neyin çıkarıldığına bağlı olarak geniş bir şekilde kategorize edilebilir:

  • Yapılandırılmamış Budama (Ağırlık Budama): Bu yöntem, büyüklükleri gibi belirli bir kritere dayalı olarak tek tek ağırlıkları ağdan kaldırır. Birçok bağlantının sıfırlandığı seyrek bir modelle sonuçlanır. Bu, parametre sayısını önemli ölçüde azaltabilirken, NVIDIA'nın seyrek modeller için araçları gibi özel yazılım kütüphaneleri olmadan CPU' lar veya GPU 'lar gibi standart donanımlarda her zaman daha hızlı çıkarıma yol açmayabilir.
  • Yapısal Budama: Bu yaklaşım, nöronlar, kanallar ve hatta bir Konvolüsyonel Sinir Ağı (CNN) içindeki 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' in 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.

PyTorch ve TensorFlow gibi büyük makine öğrenimi çerçeveleri, budama işlemini uygulamak için yerleşik yardımcı programlar ve öğreticiler sunar.

Gerçek Dünya Uygulamaları

Budama, hesaplama kaynaklarının sınırlı olduğu pratik senaryolarda güçlü yapay zeka modellerinin kullanılması 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ç cihazlara yerleştirilebilir. 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 dayanan Büyük Dil Modellerinin (LLM 'ler) bellek ayak izini büyük ö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ı telefon veya dizüstü bilgisayarda çalışabilir. Bu, Electronic Frontier Foundation (EFF) gibi kuruluşlar için temel bir ilke olan kullanıcı verilerini cihazda tutarak yanıt verebilirliği artırır ve veri gizliliğini geliştirir.

Budama ve Diğer Optimizasyon Teknikleri

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

  • Model Niceleme: Bu teknik, modelin ağırlıklarının ve aktivasyonlarının sayısal hassasiyetini azaltır (örneğin, 32 bit kayan değerlerden 8 bit tam sayılara). Bu, model boyutunu küçültür ve özellikle özel desteğe sahip donanımlarda hesaplamayı hızlandırabilir. Parametreleri kaldıran budamanın aksine, niceleme parametreleri sıkıştırır.
  • Bilgi Distilasyonu: Bu yöntemde, daha küçük bir "öğrenci" modeli, daha büyük, önceden eğitilmiş bir "öğretmen" modelinin çıktısını kopyalamak için eğitilir. Amaç, öğrenilen bilgiyi daha kompakt bir mimariye aktarmaktır, budama ise mevcut mimariyi değiştirir.

Bu teknikler birbirini dışlayan teknikler değildir. Yaygın bir iş akışı, gereksiz parametreleri kaldırmak için önce 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ün yönetilmesine 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 büyüyün

Şimdi katılın
Panoya kopyalanan bağlantı