Model budama, makine öğreniminde eğitimli modelleri boyutlarını ve karmaşıklıklarını azaltarak optimize etmek için kullanılan bir tekniktir. Bu, modelin genel performansına minimum düzeyde katkıda bulunan bir sinir ağı (NN) içindeki ağırlıklar veya bağlantılar gibi daha az önemli parametrelerin belirlenmesi ve kaldırılmasıyla elde edilir. Amaç, daha az hesaplama gücü ve bellek gerektiren daha küçük, daha hızlı modeller oluşturmak ve doğrulukta önemli bir düşüş olmadan onları daha verimli hale getirmektir. Bu süreç, doğrudan makine öğrenimi modellerine uygulanan özel bir budama türüdür.
Neden Model Budama Kullanılmalı?
Model budama için birincil motivasyon verimliliktir. Modern derin öğrenme modelleri güçlü olmakla birlikte çok büyük ve hesaplama açısından zorlu olabilir. Bu durum, özellikle akıllı telefonlar veya uç bilişim sistemleri gibi sınırlı kaynaklara sahip cihazlarda model dağıtımı için zorluklar ortaya çıkarmaktadır. Model budama bu sorunları şu şekilde ele alır:
- Model Boyutunu Azaltma: Daha küçük modeller daha az depolama alanı gerektirir, bu da Ultralytics HUB Uygulamasını çalıştıranlar gibi cihazlara dağıtılmasını kolaylaştırır.
- Çıkarım Hızının Artırılması: Daha az parametre ile budanmış modeller hesaplamaları daha hızlı gerçekleştirerek çıkarım gecikmesini azaltır. Bu, gerçek zamanlı çıkarım uygulamaları için çok önemlidir.
- Enerji Tüketimini Düşürmek: Daha az hesaplama, daha az güç kullanımı anlamına gelir; bu da pille çalışan cihazlar ve sürdürülebilir yapay zeka uygulamalarının desteklenmesi için önemlidir.
- Aşırı Uyumu En Aza İndirmek: Gereksiz parametrelerin kaldırılması bazen modellerin yeni verilere daha iyi genelleştirilmesine yardımcı olabilir ve potansiyel olarak aşırı uyumu azaltır.
Model Budama Türleri
Model budama teknikleri çeşitlilik gösterir ancak genellikle neyin çıkarıldığına bağlı olarak kategorilere ayrılır:
- Ağırlık Budama (Yapılandırılmamış): Ağ içinde düşük büyüklüğe veya öneme sahip bireysel ağırlıklar veya bağlantılar sıfıra ayarlanır. Bu genellikle seyrek modellerle sonuçlanır, ancak optimum hızlanma için özel donanım veya yazılım gerektirebilir.
- Nöron/Filtre Budama (Yapılandırılmış): Tüm nöronlar, filtreler ( Evrişimsel Sinir Ağlarında (CNN'ler)) veya diğer yapısal bileşenler kaldırılır. Bu tipik olarak, aşağıdaki gibi araçlar kullanılarak standart donanım üzerinde hızlandırılması daha kolay olan daha düzenli, daha küçük yoğun modellere yol açar NVIDIA TensorRT.
Budama, eğitimden sonra uygulanabilir veya eğitim sürecine entegre edilebilir. Genellikle, budanmış bir model, kaybedilen doğruluğu geri kazanmak için bazı ince ayarlar (ek eğitim) gerektirir. PyTorch Pruning Tutorial gibi kaynaklarda çeşitli budama stratejilerini keşfedebilirsiniz.
Gerçek Dünya Uygulamaları
Model budama birçok alanda değerlidir:
- Mobil Bilgisayarla Görme: Ultralytics YOLO Mobil cihazlarda nesne algılama için kullanılan modeller verimli çalışacak şekilde budanabilir ve sürekli bulut bağlantısına ihtiyaç duymadan doğrudan cihaz üzerinde gerçek zamanlı analiz yapılabilir. Bu, Raspberry Pi gibi platformlarda konuşlandırılan veya Google'ın Edge TPU'su gibi hızlandırıcılar kullanan uygulamalar için hayati önem taşımaktadır.
- Otonom Sistemler: Kendi kendine giden arabalarda veya drone'larda modellerin sensör verilerini anında işlemesi gerekir. Karmaşık algı modellerinin budanması, genellikle NVIDIA Jetson gibi donanımlarda kullanılan güvenli navigasyon ve karar verme için gereken düşük gecikme süresinin elde edilmesine yardımcı olur.
Model Budama ve Diğer Optimizasyon Teknikleri
Model budama, modelleri optimize etmek için kullanılan çeşitli tekniklerden biridir. Bunu şundan ayırt etmek önemlidir:
- Model Niceleme: Modelin ağırlıklarının ve aktivasyonlarının hassasiyetini azaltır (örneğin, 32 bit kayan değerlerden 8 bit tam sayılara). Bu aynı zamanda boyutu azaltır ve hesaplamayı hızlandırır ancak parametreleri kaldırarak değil veri türünü değiştirerek çalışır. Örnekler için TensorFlow Lite Optimizasyonu bölümüne bakın.
- Bilgi Damıtma: 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ç, öğretmeni doğrudan değiştirmeden kompakt bir model oluşturarak bilgiyi aktarmaktır. Ayrıntılar için orijinal Bilgi Damıtma Makalesini okuyun.
Bu teknikler birbirini dışlamaz ve maksimum optimizasyon faydaları için genellikle budama ile birleştirilir. Örneğin, bir model önce budanabilir, ardından son dağıtımdan önce nicelleştirilebilir. Ultralytics Belgelerinde optimizasyon hakkında rehberlik bulabilirsiniz.