Model Quantization
Model nicelemesinin Ultralytics YOLO26'yı uç yapay zekâ için nasıl optimize ettiğini öğren. Daha hızlı çıkarım için belleği nasıl azaltacağını, gecikmeyi nasıl düşüreceğini ve INT8 modellerini nasıl dışa aktaracağını keşfet.
Model niceleme, 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 bias değerleri) ve aktivasyon haritalarını 32 bit kayan noktalı sayılar (FP32) kullanarak depolar. Bu yüksek hassasiyet eğitim sırasında doğru hesaplamalar sağlasa da çıkarım için çoğu zaman gereksizdir. Niceleme, bu değerleri 16 bit kayan noktalı sayılar (FP16) veya 8 bit tam sayılar (INT8) gibi daha düşük hassasiyetli biçimlere dönüştürerek doğruluktan önemli ölçüde ödün vermeden model boyutunu etkili bir şekilde küçültür ve yürütme hızını artırır.
Niceleme Neden Önemlidir#
Nicelemenin temel itici gücü, kaynakları kısıtlı donanımlarda güçlü yapay zekâyı çalıştırma gereksinimidir. YOLO26 gibi bilgisayarlı görü modelleri daha karmaşık hâle geldikçe hesaplama gereksinimleri de artar. Niceleme, üç kritik darboğazı ele alır:
- Bellek Kullanımı: Ağırlıkların bit genişliği azaltılarak (örneğin 32 bitten 8 bite), 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: Düşük hassasiyetli işlemler hesaplama açısından daha az maliyetlidir. Özellikle özel sinirsel işlem birimlerine (NPUs) sahip modern işlemciler, INT8 işlemlerini FP32'den çok daha hızlı gerçekleştirebilir ve çıkarım gecikmesini önemli ölçüde azaltabilir.
- 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#
Modeli farklı şekillerde değiştirdikleri için nicelemeyi diğer optimizasyon tekniklerinden ayırmak önemlidir:
- Niceleme ve Budama: Niceleme parametrelerin bit genişliğini azaltarak dosya boyutunu küçültürken, model budama, seyrek bir ağ oluşturmak için gereksiz bağlantıların (ağırlıkların) tamamen kaldırılmasını içerir. Budama modelin yapısını, niceleme ise veri temsilini değiştirir.
- Niceleme 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. Niceleme, uç yapay zekâ performansını daha da artırmak için damıtma sonrasında öğrenci modele sıklıkla uygulanır.
Gerçek Dünya Uygulamaları#
Niceleme, verimliliğin en önemli öncelik olduğu çeşitli sektörlerde bilgisayarlı görü ve yapay zekâ kullanımını mümkün kılar.
-
Otonom Sistemler: Otomotiv sektöründe sürücüsüz araçlar, kameralardan ve LiDAR'dan gelen görsel verileri gerçek zamanlı olarak işlemek zorundadır. NVIDIA TensorRT motorlarında çalıştırılan niceleme uygulanmış modeller, bu araçların yayaları ve engelleri milisaniyelik gecikmeyle algılamasını sağlayarak yolcu güvenliğini güvence altına alır.
-
Akıllı Tarım: Çok spektrumlu kameralarla donatılmış dronlar, mahsul hastalıklarını belirlemek veya büyüme aşamalarını izlemek için niceleme uygulanmış nesne algılama modelleri kullanır. Bu modellerin doğrudan dronun gömülü sistemlerinde çalıştırılması, uzak tarlalarda güvenilir olmayan hücresel bağlantılara duyulan ihtiyacı ortadan kaldırır.
Ultralytics ile Niceleme Uygulama#
Ultralytics kütüphanesi dışa aktarma sürecini basitleştirerek geliştiricilerin en yeni YOLO26 gibi modelleri niceleme uygulanmış biçimlere dönüştürmesine olanak tanır. Ultralytics Platformu da bu dağıtımları sorunsuz bir şekilde yönetmek için araçlar sunar.
Aşağıdaki örnek, INT8 nicelemesi etkinleştirilmiş bir modelin TFLite biçimine nasıl dışa aktarılacağını gösterir. Bu süreç, modelin niceleme uygulanmış değerler için en uygun dinamik aralığı belirlemek üzere ö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, geniş bir donanım ekosistemi yelpazesinde uyumluluğu güvence altına almak için sıklıkla ONNX gibi birlikte çalışabilirlik standartları veya OpenVINO gibi yüksek performanslı çıkarım motorları kullanılarak dağıtılır.









