Quantization-Aware Training (QAT)
Nicemleme Farkındalıklı Eğitimin (QAT), Ultralytics YOLO26 modellerini uç cihazlarda dağıtım için nasıl optimize ettiğini öğren. INT8 kesinliğiyle yüksek doğruluğun nasıl korunacağını keşfet.
Niceleme Farkındalıklı Eğitim (QAT), makine öğrenimi modellerini daha düşük duyarlıklı ortamlara hazırlamak için eğitim aşamasında kullanılan özel bir tekniktir. Standart derin öğrenme iş akışlarında modeller genellikle yüksek duyarlıklı 32 bit kayan noktalı sayılar (FP32) kullanarak çalışır. Bu duyarlılık mükemmel doğruluk sağlasa da özellikle uç cihazlarda hesaplama açısından maliyetli ve bellek yoğun olabilir. QAT, model hâlâ eğitilirken nicelemenin (duyarlılığın 8 bit tam sayılar (INT8) gibi biçimlere düşürülmesinin) etkilerini simüle eder. Model, bu niceleme hatalarını öğrenme sürecine dâhil ederek ağırlıklarını uyarlamayı ve eğitim sonrası dönüştürme sırasında kaybedilebilecek doğruluğu etkili bir şekilde geri kazanmayı öğrenir.
QAT Uç Dağıtımlar İçin Neden Önemlidir?#
Bilgisayarlı görü modellerinin kaynakları sınırlı cihazlara dağıtılması çoğu zaman hız ile performans arasında denge kurmayı gerektirir. Eğitim Sonrası Niceleme (PTQ) olarak bilinen standart niceleme yöntemleri, duyarlılık azaltma işlemini yalnızca model tamamen eğitildikten sonra uygular. PTQ hızlı olsa da sinir ağı ağırlıkları uyarlanma fırsatı olmadan önemli ölçüde değiştirildiği için hassas modellerin doğruluğunu bazen düşürebilir.
QAT, modelin nicelemeye "alıştırılmasını" sağlayarak bu sorunu çözer. Eğitimin ileri geçişi sırasında ağırlıklar ve aktivasyonlar düşük duyarlıklı değerler olarak simüle edilir. Bu sayede gradyan inişi süreci, nicelemeli durum için kaybı en aza indirecek şekilde model parametrelerini güncelleyebilir. Sonuç, mikrodenetleyiciler veya mobil işlemciler gibi donanımlara dağıtıldığında bile yüksek doğruluğunu koruyan sağlam bir modeldir.
QAT ile Eğitim Sonrası Niceleme (PTQ) Arasındaki Farklar#
QAT ile özellikle Eğitim Sonrası Niceleme (PTQ) olmak üzere model nicelemesi arasındaki farkı anlamak faydalıdır:
- Eğitim Sonrası Niceleme (PTQ): Model normal şekilde FP32 ile eğitilir. Eğitim tamamlandıktan sonra ağırlıklar INT8'e dönüştürülür. Bu yöntem daha hızlıdır ve yeniden eğitim gerektirmez, ancak karmaşık mimarilerde doğruluk kaybının daha yüksek olmasına neden olabilir.
- Niceleme Farkındalıklı Eğitim (QAT): Niceleme süreci, ince ayar aşamasında taklit edilir. Model, düşük duyarlılığın neden olduğu gürültüyü karşılamak için dahili parametrelerini uyarlar ve bu genellikle PTQ'ya kıyasla daha iyi doğruluk sağlar.
Gerçek Dünya Uygulamaları#
QAT, uç donanım üzerinde gerçek zamanlı çıkarımın kritik olduğu sektörler için gereklidir.
- Otonom Dronlar: Yapay zekâ destekli drone operasyonlarında pil ömrü ve yerleşik işlem gücü ciddi ölçüde sınırlıdır. QAT ile optimize edilmiş modeller kullanan dronlar, INT8 hızlandırıcılarını kullanırken engelleri yüksek doğrulukla algılayabilir veya nesneleri izleyebilir; bu da FP32 modellerine kıyasla uçuş sürelerini önemli ölçüde uzatır.
- Akıllı Perakende Kameraları: Süpermarketler raf envanterini izlemek veya kasa kuyruklarını yönetmek için perakendede bilgisayarlı görü kullanır. Bu sistemler çoğu zaman düşük güç tüketimli uç ağ geçitlerinde çalışır. QAT, bu cihazlarda çalışan nesne algılama modellerinin pahalı bulut bağlantısı gerektirmeden benzer ürünleri ayırt etmek için gereken doğruluğu korumasını sağlar.
Ultralytics ile QAT Uygulama#
Ultralytics Platformu ve YOLO ekosistemi, modellerin nicelemeli biçimlere aktarılmasını destekler. QAT karmaşık bir eğitim prosedürü olsa da modern çerçeveler, modellerin nicelemeli çıkarıma hazırlanmasını kolaylaştırır.
Aşağıda, eğitilmiş bir YOLO26 modelini, verimli uç dağıtım için niceleme ilkelerinden yararlanan INT8 nicelemeli TFLite biçimine nasıl aktarabileceğine dair bir örnek verilmiştir.
from ultralytics import YOLO
# Load a trained YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format with INT8 quantization
# This prepares the model for efficient execution on edge devices
model.export(format="tflite", int8=True)Uç Ekosistemleriyle Entegrasyon#
Niceleme teknikleriyle optimize edilen modeller, özel çıkarım motorlarında çalışacak şekilde tasarlanır. QAT ile eğitilen modeller, platformlar arası uyumluluk için sıklıkla ONNX Runtime veya Intel donanımında optimizasyon için OpenVINO kullanılarak dağıtılır. Bu, hedefin bir Raspberry Pi veya özel bir Edge TPU olmasından bağımsız olarak modelin mümkün olan en yüksek verimlilik ve hızla çalışmasını sağlar.
QAT ile İlgili Temel Kavramlar#
QAT'ı tam olarak anlamak için ilgili birkaç makine öğrenimi kavramına aşina olmak faydalıdır:
- Duyarlılık: Sayıları temsil etmek için kullanılan ayrıntı düzeyini ifade eder. Yarım duyarlılık (FP16) ve INT8, niceleme için yaygın hedeflerdir.
- Kalibrasyon: Kayan noktalı sayıları etkili bir şekilde tam sayılara eşlemek için dinamik aktivasyon değerleri aralığını (min/maks.) belirleme sürecidir. Bu, nicelemeli YOLO modellerinin dağıtımında kritik bir adımdır.
- Çıkarım Gecikmesi: QAT'ın başlıca faydalarından biri, gerçek zamanlı sistemlerde daha hızlı karar almayı sağlayan çıkarım gecikmesini azaltmasıdır.
- İnce Ayar: QAT genellikle sıfırdan eğitim yerine önceden eğitilmiş bir model üzerinde bir ince ayar adımı olarak gerçekleştirilir ve böylece hesaplama kaynaklarından tasarruf edilir.
Geliştiriciler, Niceleme Farkındalıklı Eğitimi MLOps işlem hattına entegre ederek yüksek doğruluklu araştırma modelleri ile üretime hazır, yüksek verimlilikli uç yapay zekâ uygulamaları arasındaki boşluğu kapatabilir.









