Model Quantization
Model kuantizasyonunun (quantization), Ultralytics YOLO26'yı uç yapay zeka için nasıl optimize ettiğini öğren. Belleği azaltmayı, gecikmeyi düşürmeyi ve daha hızlı çıkarım için INT8 modellerini dışa aktarmayı keşfet.
Model kuantalama, derin öğrenme modellerini çalıştırmanın hesaplama ve bellek maliyetlerini azaltmak için kullanılan gelişmiş bir model optimizasyonu tekniğidir. Standart eğitim iş akışlarında sinir ağları genellikle parametreleri (ağırlıklar ve önyargılar) ve aktivasyon haritalarını 32-bit kayan noktalı sayılar (FP32) kullanarak saklar. Bu yüksek hassasiyet, eğitim sırasında doğru hesaplamalar yapılmasını sağlasa da çıkarım için genellikle gereksizdir. Kuantalama; bu değerleri 16-bit kayan noktalı (FP16) veya 8-bit tamsayı (INT8) gibi daha düşük hassasiyetli formatlara dönüştürerek model boyutunu etkili bir şekilde küçültür ve yürütme hızını doğruluktan önemli ölçüde ödün vermeden artırır.
Kuantizasyon Neden Önemlidir#
Kuantalamanın temel itici gücü, kaynak kısıtlı donanımlar üzerinde güçlü yapay zeka dağıtma ihtiyacıdır. YOLO26 gibi bilgisayarlı görü modelleri daha karmaşık hale geldikçe, hesaplama talepleri de artar. Kuantalama şu üç kritik darboğazı ele alır:
- Bellek Ayak İzi: Ağırlıkların bit genişliğini azaltarak (örneğin, 32-bit'ten 8-bit'e), modelin depolama gereksinimi 4 kata kadar azaltılır. Bu, uygulama boyutunun kısıtlı olduğu mobil uygulamalar için hayati önem taşır.
- Çıkarım Gecikmesi: Daha düşük hassasiyetli işlemler hesaplama açısından daha ucuzdur. Modern işlemciler, özellikle özel nöral işleme birimlerine (NPU'lar) sahip olanlar, INT8 işlemlerini FP32'ye göre çok daha hızlı yürüterek çıkarım gecikmesini önemli ölçüde azaltır.
- Güç Tüketimi: Bellek üzerinden daha az veri taşımak ve daha basit aritmetik işlemler gerçekleştirmek daha az enerji tüketir; bu da taşınabilir cihazlarda ve otonom araçlarda pil ömrünü uzatır.
İlgili Kavramlarla Karşılaştırma#
Kuantizasyonu diğer optimizasyon tekniklerinden ayırt etmek önemlidir, çünkü bunlar modeli farklı şekillerde değiştirir:
- Kuantalama ve Budama: Kuantalama, parametrelerin bit genişliğini düşürerek dosya boyutunu azaltırken, model budama seyrek bir ağ oluşturmak için gereksiz bağlantıları (ağırlıkları) tamamen kaldırmayı içerir. Budama modelin yapısını değiştirirken, kuantalama veri temsilini değiştirir.
- Kuantalama ve Bilgi Damıtma: Bilgi damıtma, küçük bir "öğrenci" modelin büyük bir "öğretmen" modeli taklit etmeyi öğrendiği bir eğitim tekniğidir. Uç yapay zeka performansını daha da artırmak için damıtma işleminden sonra genellikle öğrenci modele kuantalama uygulanır.
Gerçek Dünya Uygulamaları#
Kuantizasyon, verimliliğin esas olduğu çeşitli endüstrilerde bilgisayarlı görü ve yapay zekayı mümkün kılar.
-
Otonom Sistemler: Otomotiv endüstrisindeki sürücısiz arabalar, kameralardan ve LiDAR'dan gelen görsel verileri gerçek zamanlı olarak işlemelidir. NVIDIA TensorRT motorlarında barındırılan kuantalanmış modeller, bu araçların yayaları ve engelleri milisaniyelik gecikmeyle tespit etmesini sağlayarak yolcu güvenliğini garanti altına alır.
-
Akıllı Tarım: Multispektral kameralarla donatılmış dronlar, mahsul hastalıklarını belirlemek veya büyüme aşamalarını izlemek için kuantalanmış nesne tespiti modellerini kullanır. Bu modelleri dronun gömülü sistemleri üzerinde yerel olarak çalıştırmak, uzak tarlalarda güvenilmez hücresel bağlantılara duyulan ihtiyacı ortadan kaldırır.
Ultralytics ile Kuantizasyon Uygulama#
Ultralytics kütüphanesi dışa aktarım sürecini basitleştirerek geliştiricilerin son teknoloji YOLO26 gibi modelleri kuantalanmış formatlara dönüştürmesine olanak tanır. Ultralytics Platform ayrıca bu dağıtımları sorunsuz bir şekilde yönetmek için araçlar sağlar.
Aşağıdaki örnek, INT8 kuantalaması etkinken bir modelin TFLite formatına nasıl dışa aktarılacağını göstermektedir. Bu süreç, kuantalanmış değerler için en uygun dinamik aralığı belirlemek üzere modelin örnek verileri gözlemlediği bir kalibrasyon adımını içerir.
from ultralytics import YOLO
# Load a standard YOLO26 model
model = YOLO("yolo26n.pt")
# Export to TFLite format with INT8 quantization
# The 'int8' argument triggers Post-Training Quantization
# 'data' provides the calibration dataset needed for mapping values
model.export(format="tflite", int8=True, data="coco8.yaml")Optimize edilmiş modeller, ONNX gibi birlikte çalışabilir standartlar veya OpenVINO gibi yüksek performanslı çıkarım motorları kullanılarak sıklıkla dağıtılır ve böylece farklı donanım ekosistemlerinde geniş uyumluluk sağlanır.






