Quantization-Aware Training (QAT)
Nicemleme Farkındalıklı Eğitimin (QAT) Ultralytics YOLO26 modellerini uç dağıtım için nasıl optimize ettiğini öğren. INT8 hassasiyetiyle yüksek doğruluğu nasıl koruyacağını keşfet.
Quantization-Aware Training (QAT), makine öğrenimi modellerinin eğitim aşamasında onları daha düşük hassasiyetli ortamlara hazırlamak için kullanılan özel bir tekniktir. Standart deep learning iş akışlarında modeller tipik olarak yüksek hassasiyetli 32-bit kayan noktalı sayıları (FP32) kullanarak çalışır. Bu hassasiyet mükemmel bir doğruluk sunarken, özellikle uç cihazlarda hesaplama açısından maliyetli ve bellek yoğun olabilir. QAT, model hâlâ eğitilirken niceleme etkilerini—yani hassasiyeti 8-bit tamsayılar (INT8) gibi formatlara düşürmeyi—simüle eder. Öğrenme sürecine bu niceleme hatalarını dahil ederek model, ağırlıklarını uyarlamayı öğrenir ve aksi takdirde eğitim sonrası dönüştürme sırasında kaybolabilecek doğruluğu etkili bir şekilde geri kazanır.
QAT Uç Cihazda Dağıtım İçin Neden Önemlidir?#
computer vision models modellerini kaynak kısıtlı cihazlara dağıtmak genellikle hız ve performans arasında bir denge gerektirir. Eğitim Sonrası Niceleme (PTQ) olarak bilinen standart niceleme yöntemleri, hassasiyet azaltmayı yalnızca model tamamen eğitildikten sonra uygular. PTQ hızlı olsa da, neural network ağırlıkları ayarlanma şansı olmaksızın önemli ölçüde değiştirildiğinden, bazen hassas modellerin doğruluğunu düşürebilir.
QAT, modelin nicelenmiş olmayı "pratik yapmasına" izin vererek bunu çözer. Eğitimin ileri geçişi sırasında, ağırlıklar ve aktivasyonlar düşük hassasiyetli değerler olarak simüle edilir. Bu, gradient descent sürecinin model parametrelerini özellikle nicelenmiş durum için kaybı en aza indirecek şekilde güncellemesine olanak tanır. Sonuç, microcontrollers veya mobil işlemciler gibi donanımlara dağıtıldığında bile yüksek doğruluğu koruyan güçlü bir modeldir.
QAT ile Eğitim Sonrası Nicelik Belirleme (PTQ) Arasındaki Farklar#
QAT'yi model quantization işleminden, özellikle de Eğitim Sonrası Nicelemeden (PTQ) ayırt etmek faydalıdır:
- Eğitim Sonrası Nicelik Belirleme (PTQ): Model FP32 ile normal şekilde eğitilir. Eğitim tamamlandıktan sonra ağırlıklar INT8'e dönüştürülür. Bu daha hızlıdır ve yeniden eğitim gerektirmez ancak karmaşık mimariler için daha yüksek doğruluk kaybına neden olabilir.
- Quantization-Aware Training (QAT): Niceleme süreci ince ayar aşamasında emüle edilir. Model, daha düşük hassasiyetin getirdiği gürültüyü barındırmak için dahili parametrelerini ayarlar ve tipik olarak PTQ'dan daha iyi bir accuracy sağlar.
Gerçek Dünya Uygulamaları#
QAT, uç donanımda gerçek zamanlı çıkarımın kritik olduğu endüstriler için vazgeçilmezdir.
- Otonom İHA'lar: AI drone operations süreçlerinde pil ömrü ve yerleşik işlem gücü son derece sınırlıdır. QAT aracılığıyla optimize edilmiş modelleri kullanan İHA'lar, INT8 hızlandırıcıları kullanırken engelleri yüksek hassasiyetle tespit edebilir veya nesneleri takip edebilir ve FP32 modellerine kıyasla uçuş sürelerini önemli ölçüde uzatabilir.
- Akıllı Perakende Kameraları: Süpermarketler, raf envanterini izlemek veya ödeme kasalarını yönetmek için computer vision in retail kullanır. Bu sistemler genellikle düşük güç tüketen uç ağ geçitlerinde çalışır. QAT, bu cihazlarda çalışan object detection modellerinin, pahalı bulut bağlantısına ihtiyaç duymadan benzer ürünleri birbirinden ayırmak için gereken doğruluğu korumasını sağlar.
Ultralytics ile QAT Uygulama#
Ultralytics Platform ve YOLO ekosistemi, modellerin nicelenmiş formatlara dışarı aktarılmasını destekler. QAT karmaşık bir eğitim prosedürü olsa da modern çerçeveler, modellerin nicelenmiş çıkarım için hazırlanmasını kolaylaştırır.
Aşağıda, eğitilmiş bir YOLO26 modelini verimli uç dağıtımı için niceleme ilkelerini kullanan INT8 nicelemeli TFLite formatına nasıl dışarı aktarabileceğinize 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ç Ekosistemlerle Entegrasyon#
Niceleme teknikleriyle optimize edilmiş modeller, özel çıkarım motorlarında çalışacak şekilde tasarlanmıştır. QAT ile eğitilmiş modeller, platformlar arası uyumluluk için genellikle ONNX Runtime veya Intel donanımında optimizasyon için OpenVINO kullanılarak dağıtılır. Bu, hedefin bir Raspberry Pi veya adanmış bir Edge TPU olup olmadığına bakılmaksızın modelin mümkün olan en yüksek verimlilik ve hızla çalışmasını sağlar.
QAT ile İlgili Temel Kavramlar#
QAT'yi tam olarak anlamak için ilgili birkaç makine öğrenimi kavramına aşina olmak faydalıdır:
- Hassasiyet (Precision): Sayıları temsil etmek için kullanılan ayrıntı düzeyini ifade eder. Half-precision (FP16) ve INT8, niceleme için yaygın hedeflerdir.
- Kalibrasyon: Kayan noktalı sayıları tamsayılara etkili bir şekilde eşlemek için dinamik aktivasyon değerlerinin aralığını (min/max) belirleme süreci. Bu, deploying quantized YOLO models sürecinde çok önemli bir adımdır.
- Çıkarım Gecikmesi (Inference Latency): QAT'nin temel faydalarından biri inference latency değerini düşürerek gerçek zamanlı sistemlerde daha hızlı karar almayı sağlamasıdır.
- İnce Ayar (Fine-Tuning): QAT, sıfırdan eğitmek yerine önceden eğitilmiş bir model üzerinde genellikle bir fine-tuning adımı olarak gerçekleştirilir ve bu da hesaplama kaynaklarından tasarruf sağlar.
Quantization-Aware Training sürecini MLOps boru hattına entegre ederek geliştiriciler, yüksek doğruluklu araştırma modelleri ile son derece verimli, üretime hazır uç AI uygulamaları arasındaki boşluğu doldurabilir.






