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.

YOLO modellerini Ultralytics HUB ile basitçe
eğitin

Daha fazla bilgi edinin

Budama, eğitilmiş modellerin boyutunu ve hesaplama karmaşıklığını azaltmak için yapay zeka (AI) ve makine öğreniminde (ML) kullanılan bir model optimizasyon tekniğidir. Bir sinir ağı (NN) içindeki ağırlıklar veya bağlantılar gibi, modelin görevi için daha az önemli veya gereksiz olarak tanımlanan parametrelerin seçici olarak kaldırılmasını içerir. Birincil amaç, ideal olarak performans veya doğrulukta önemli bir düşüş olmadan daha az hesaplama kaynağı ve bellek gerektiren daha küçük, daha hızlı modeller oluşturmaktır. Bu süreç, özellikle sınırlı kapasiteye sahip cihazlarda verimli model dağıtımının önemli bir parçasıdır. "Budama" genel bir terim olsa da,"Model Budama" özellikle bu tekniğin ML modellerine uygulanmasını ifade eder.

Budamanın Önemi

Derin öğrenme (DL) modelleri karmaşık görevlerin üstesinden gelmek için büyüdükçe ve daha karmaşık hale geldikçe, hesaplama gücü, depolama ve enerji talepleri önemli ölçüde artar. Budama, modelleri daha hafif ve verimli hale getirerek bu zorluğu doğrudan ele alır. Bu optimizasyon çeşitli faydalar sağlar: daha az depolama ihtiyacı, çalışma sırasında daha düşük enerji tüketimi ve gerçek zamanlı çıkarım gerektiren uygulamalar için kritik olan çıkarım gecikmesinde azalma. Budama, özellikle mobil cihazlar, gömülü sistemler ve verimliliğin birincil endişe kaynağı olduğu çeşitli Edge AI senaryoları gibi kaynak kısıtlı ortamlarda modelleri dağıtmak için değerlidir. Ayrıca modeli basitleştirerek aşırı uyumu azaltmaya da yardımcı olabilir.

Budama Uygulamaları

Budama teknikleri çok sayıda yapay zeka alanında geniş çapta uygulanmaktadır. İşte iki somut örnek:

  1. Nesne Algılama Modellerini Uç Cihazlara Dağıtma: Bir Ultralytics YOLONesne algılama için eğitilen model, Raspberry Pi veya Google Edge TPU gibi düşük güçlü bir cihazda kullanılmak için çok büyük veya yavaş olabilir. Budama, modelin boyutunu ve hesaplama yükünü azaltarak güvenlik sistemleri veya yerel vahşi yaşam izleme gibi görevler için bu tür donanımlarda etkili bir şekilde çalışmasını sağlayabilir. Dağıtım örnekleri için Raspberry Pi üzerinde Edge TPU öğreticisi veya NVIDIA Jetson kılavuzu gibi kılavuzlara bakın.
  2. Otonom Sistemler için Modelleri Optimize Etme: Otonom araçlarda, görüntü segmentasyonu veya sensör füzyonu gibi görevler için karmaşık algılama modelleri minimum gecikme ile çalışmalıdır. Budama, bu Evrişimsel Sinir Ağlarının (CNN'ler) katı gerçek zamanlı işleme gereksinimlerini karşılayacak şekilde optimize edilmesine yardımcı olarak aracın güvenli ve duyarlı bir şekilde çalışmasını sağlar. Gibi çerçeveler NVIDIA TensorRT genellikle optimize edilmiş çıkarım için budanmış modelleri destekler.

Türler ve Teknikler

Budama yöntemleri çeşitlilik göstermekle birlikte genellikle bu ana kategorilere ayrılır:

  • Yapılandırılmamış Budama: Bu, düşük büyüklük veya çıktıya katkı gibi kriterlere dayalı olarak bireysel ağırlıkların veya nöronların kaldırılmasını içerir. Kaldırılan bağlantıların düzensiz desenlerine sahip seyrek modellerle sonuçlanır. Potansiyel olarak yüksek sıkıştırma oranlarına ulaşırken, bu modeller verimli yürütme için özel donanım veya yazılım kütüphaneleri ( Neural Magic'in DeepSparse'ı gibi) gerektirebilir. Ultralytics Neural Magic Entegrasyonuna bakın.
  • Yapısal Budama: Bu teknik, ağın filtreler, kanallar ve hatta katmanlar gibi tüm yapısal bileşenlerini kaldırır. Bu sayede düzenli bir yapı korunur ve budanmış model standart donanım hızlandırıcıları ve NVIDIA'nın yapılandırılmış seyreklik desteği gibi kütüphanelerle daha uyumlu hale gelir.

Budama farklı aşamalarda uygulanabilir: eğitimden önce (mimari tasarımı etkileyen), eğitim süreci sırasında veya önceden eğitilmiş bir model üzerinde eğitimden sonra, genellikle kaybedilen doğruluğu geri kazanmak için ince ayar yapılır. Aşağıdakiler gibi başlıca derin öğrenme çerçeveleri PyTorch ve TensorFlow çeşitli budama stratejilerini uygulamak için PyTorch Budama Öğreticisi gibi araçlar ve öğreticiler sağlar.

Budama ve Diğer Optimizasyon Teknikleri

Budama, model optimizasyonu için kullanılan çeşitli tekniklerden biridir. İlgili kavramlardan ayırt etmekte fayda vardır:

  • 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), model boyutunu azaltır ve özellikle özel donanımlarda genellikle hesaplamayı hızlandırır.
  • Bilgi Damıtma: Daha küçük bir "öğrenci" modelinin daha büyük, önceden eğitilmiş bir "öğretmen" modelinin davranışını taklit edecek şekilde eğitilmesini ve karmaşıklığı devralmadan bilginin aktarılmasını içerir.

Bu teknikler birbirini dışlamaz ve daha yüksek optimizasyon seviyelerine ulaşmak için sıklıkla budama ile birlikte kullanılır. Örneğin, bir model önce budanabilir, ardından maksimum verimlilik için nicelleştirilebilir. Optimize edilmiş modeller genellikle aşağıdaki gibi standart formatlara aktarılabilir ONNX Farklı çıkarım motorları arasında geniş dağıtım uyumluluğu için Ultralytics dışa aktarma işlevi gibi araçlar kullanarak.

Özetle, budama, çeşitli dağıtım ihtiyaçlarına uygun verimli yapay zeka modelleri oluşturmak için güçlü bir tekniktir ve bilgisayarla görme (CV) ve diğer makine öğrenimi görevlerinin pratik uygulamasında önemli bir rol oynar. Ultralytics HUB gibi platformlar, bulut eğitimi de dahil olmak üzere, aşağıdaki gibi modellerin geliştirilmesini ve optimizasyonunu kolaylaştırabilecek araçlar ve altyapı sağlar YOLOv8 ya da YOLO11.

Tümünü okuyun