Model Budama
Model budama ile makine öğrenimi modellerini optimize edin. Kaynakları sınırlı dağıtımlar için daha hızlı çıkarım, daha az bellek kullanımı ve enerji verimliliği elde edin.
Model budama, sinir ağlarını daha küçük ve hesaplama açısından daha verimli hale getiren bir model optimizasyon tekniğidir. Temel fikir, eğitimli bir modelden gereksiz veya önemsiz parametreleri (ağırlıklar, nöronlar veya kanallar) belirlemek ve kaldırmaktır. Bu işlem modelin boyutunu azaltır ve çıkarımı önemli ölçüde hızlandırabilir, bu da onu sınırlı bellek ve işlem gücüne sahip uç cihazlarda dağıtım için ideal hale getirir. Bu konsept, birçok büyük modelin aşırı parametreli olduğu, yani nihai tahmine çok az katkıda bulunan bileşenler içerdiği gözlemine dayanmaktadır. Optimal Beyin Hasarı gibi çığır açan makaleler, tüm parametrelerin eşit yaratılmadığını erken dönemde ortaya koymuştur.
Model Budama Türleri
Model budama teknikleri tipik olarak ağdan çıkarılanların ayrıntı düzeyine göre kategorize edilir:
- Ağırlık Budama (Yapılandırılmamış): Bu, belirli bir eşiğin altındaki değerlere sahip bireysel model ağırlıklarının sıfıra ayarlandığı en ince taneli yöntemdir. Bu, yüksek oranda sıkıştırılabilen "seyrek" bir model oluşturur. Bununla birlikte, çıkarım sırasında önemli hızlanmalar elde etmek için genellikle NVIDIA'nın seyrek modeller için araçları gibi özel donanım veya yazılım kütüphaneleri gerektirir.
- Nöron Budama: Bu yaklaşımda, nöronların tamamı ve tüm gelen ve giden bağlantıları, önemsiz görüldükleri takdirde kaldırılır. Bu, tek tek ağırlıkları kaldırmaktan daha yapılandırılmış bir budama şeklidir.
- Filtre/Kanal Budama (Yapılandırılmış): Özellikle Konvolüsyonel Sinir Ağları (CNN'ler) için geçerli olan bu yöntem, tüm filtreleri veya kanalları kaldırır. Ağ katmanlarının yoğun, düzenli yapısını koruduğu için, bu yaklaşım genellikle özel kütüphanelere ihtiyaç duymadan standart donanım üzerinde doğrudan performans kazanımları sağlar. Neural Magic'in DeepSparse 'ı gibi araçlar, bu seyrek modelleri CPU'larda hızlandırmak için tasarlanmıştır.
Budamadan sonra, modeller tipik olarak, parametre çıkarma sırasında kaybedilen doğruluğu geri kazanmak için daha küçük ağın birkaç dönem boyunca yeniden eğitilmesini içeren ince ayar işlemine tabi tutulur. Ünlü Piyango Bileti Hipotezi, büyük bir ağ içinde, sıfırdan eğitildiğinde benzer performansa ulaşabilen daha küçük bir alt ağ olduğunu öne sürer. PyTorch gibi çerçeveler, resmi PyTorch Pruning Tutorial'da gösterildiği gibi, uygulama için yerleşik araçlar sunar.
Gerçek Dünya Uygulamaları
Model budama, çeşitli senaryolarda verimli yapay zeka modellerinin kullanılması için kritik öneme sahiptir:
- Uç Cihazlarda Nesne Algılamayı Optimize Etme: Ultralytics YOLO gibi modeller, Raspberry Pi veya NVIDIA Jetson gibi kaynak kısıtlı donanımlarda nesne algılama görevleri için verimli bir şekilde çalışacak şekilde budanabilir. Bu da trafik yönetimi, akıllı gözetim ve robotikte bilgisayarla görmenin entegre edilmesi gibi gerçek zamanlı uygulamalara olanak tanır.
- Büyük Dil Modellerini (LLM'ler) Yerel Olarak Dağıtma: Budama, Transformer mimarisine dayalı büyük modelleri küçültmek için kullanılır ve doğal dil işleme (NLP) görevleri için akıllı telefonlar gibi cihazlarda çalışmasını sağlar. Bazen niceleme gibi diğer tekniklerle birleştirilen bu yaklaşım, veri gizliliğini artırırken ve gecikmeyi azaltırken güçlü, cihaz üzerinde yapay zeka asistanları ve çeviri uygulamaları sağlar. Hugging Face gibi kuruluşların araştırma ve araçları LLM budamasını incelemektedir.
Budama ve Diğer Optimizasyon Teknikleri
Model budama, çeşitli tamamlayıcı model optimizasyon tekniklerinden biridir:
- Model Niceleme: Bu teknik, model ağırlıklarının ve aktivasyonlarının sayısal hassasiyetini azaltır (örneğin, 32 bit kayan noktalı sayılardan 8 bit tam sayılara). Parametreleri kaldıran budamanın aksine, niceleme mevcut parametrelerin boyutunu küçültür. Özellikle TensorRT gibi özel destekli donanımlar hedeflendiğinde, maksimum optimizasyon için genellikle budamadan sonra uygulanır.
- Bilgi Distilasyonu: Bu yöntem, daha büyük, önceden eğitilmiş bir "öğretmen" modelinin çıktısını taklit etmek için daha küçük bir "öğrenci" modelinin eğitilmesini içerir. Amaç, öğretmenin öğrendiği bilgiyi daha kompakt bir mimariye aktarmaktır. Bu, yeni bir model eğitmek yerine önceden eğitilmiş bir modeli incelten budama yönteminden farklıdır.
Nihayetinde, bu teknikler yüksek verimli modeller oluşturmak için birlikte kullanılabilir. Bir model optimize edildikten sonra, farklı çıkarım motorları arasında geniş dağıtım için Ultralytics' in dışa aktarma seçenekleri kullanılarak ONNX gibi standart formatlara aktarılabilir. Ultralytics HUB gibi platformlar, eğitimden optimize edilmiş dağıtıma kadar bilgisayarla görme modellerinin tüm yaşam döngüsünü yönetmek için araçlar sağlar.