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.
Nicelik Farkındalıklı Eğitim (QAT), makine öğrenimi modellerini düşük hassasiyetli ortamlara hazırlamak için eğitim aşamasında kullanılan özel bir tekniktir. Standart derin öğrenme 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 sunsa da, özellikle uç cihazlarda hesaplama açısından maliyetli ve bellek yoğunluklu olabilir. QAT, model henüz eğitim aşamasındayken nicelik belirleme etkilerini—hassasiyeti 8-bit tamsayılar (INT8) gibi formatlara düşürerek—simüle eder. Öğrenme sürecinde bu nicelik belirleme hatalarını dahil ederek, model ağırlıklarını uyarlamayı öğrenir ve eğitim sonrası dönüştürme sırasında kaybedilebilecek doğruluğu etkili bir şekilde geri kazanır.
Link to this sectionQAT Uç Cihazda Dağıtım İçin Neden Önemlidir?#
Bilgisayarlı görü modellerini kaynak kısıtlı cihazlara dağıtmak genellikle hız ve performans arasında bir denge gerektirir. Eğitim Sonrası Nicelik Belirleme (PTQ) olarak bilinen standart nicelik belirleme yöntemleri, hassasiyet azaltmayı yalnızca model tamamen eğitildikten sonra uygular. PTQ hızlı olsa da, sinir ağı ağırlıkları ayarlama şansı olmadan önemli ölçüde değiştirildiğinden, bazen hassas modellerin doğruluğunu düşürebilir.
QAT, modelin nicelleştirilmiş olma "pratiği" yapmasına izin vererek bu sorunu çözer. Eğitim sırasında ileri geçişte, ağırlıklar ve aktivasyonlar düşük hassasiyetli değerler olarak simüle edilir. Bu, gradyan inişi sürecinin model parametrelerini özellikle nicelleştirilmiş durum için kaybı en aza indirecek şekilde güncellemesine olanak tanır. Sonuç, mikrodenetleyiciler veya mobil işlemciler gibi donanımlarda dağıtıldığında bile yüksek doğruluğu koruyan sağlam bir modeldir.
Link to this sectionQAT ile Eğitim Sonrası Nicelik Belirleme (PTQ) Arasındaki Farklar#
QAT'yi model nicelik belirlemeden, özellikle de Eğitim Sonrası Nicelik Belirlemeden (PTQ) ayırmak 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.
- Nicelik Farkındalıklı Eğitim (QAT): Nicelik belirleme süreci ince ayar aşamasında taklit edilir. Model, düşük hassasiyetin getirdiği gürültüyü telafi etmek için iç parametrelerini ayarlar ve genellikle PTQ'dan daha iyi doğruluk sağlar.
Link to this sectionGerçek Dünya Uygulamaları#
QAT, uç donanımda gerçek zamanlı çıkarımın kritik olduğu endüstriler için vazgeçilmezdir.
- Otonom Drone'lar: Yapay zeka drone operasyonlarında, pil ömrü ve yerleşik işlem gücü ciddi şekilde sınırlıdır. QAT ile optimize edilmiş modelleri kullanan drone'lar, INT8 hızlandırıcılarını kullanırken engelleri tespit edebilir veya nesneleri yüksek hassasiyetle izleyebilir, böylece FP32 modellerine kıyasla uçuş sürelerini önemli ölçüde uzatabilir.
- Akıllı Perakende Kameraları: Süpermarketler, raf envanterini izlemek veya kasa kuyruklarını yönetmek için perakende sektöründe bilgisayarlı görü kullanır. Bu sistemler genellikle düşük güçlü uç ağ geçitlerinde çalışır. QAT, bu cihazlarda çalışan nesne algılama modellerinin, pahalı bulut bağlantılarına ihtiyaç duymadan benzer ürünleri birbirinden ayırmak için gereken doğruluğu korumasını sağlar.
Link to this sectionUltralytics ile QAT Uygulama#
Ultralytics Platform ve YOLO ekosistemi, modellerin nicelleştirilmiş formatlara dışa aktarılmasını destekler. QAT karmaşık bir eğitim prosedürü olsa da, modern çerçeveler modellerin nicelleştirilmiş çıkarım için hazırlanmasını kolaylaştırır.
Aşağıda, eğitimli bir YOLO26 modelini, verimli uç dağıtımı için nicelik belirleme ilkelerini kullanan INT8 nicelleştirilmiş TFLite formatına nasıl dışa 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)Link to this sectionUç Ekosistemlerle Entegrasyon#
Models optimized via quantization techniques are designed to run on specialized inference engines. QAT-trained models are frequently deployed using ONNX Runtime for cross-platform compatibility or OpenVINO for optimization on Intel hardware. This ensures that whether the target is a Raspberry Pi or a dedicated Edge TPU, the model operates with the highest possible efficiency and speed.
Link to this sectionQAT ile İlgili Temel Kavramlar#
QAT'yi tam olarak anlamak için ilgili birkaç makine öğrenimi kavramına aşina olmak faydalıdır:
- Hassasiyet: Sayıları temsil etmek için kullanılan detay düzeyini ifade eder. Yarı hassasiyet (FP16) ve INT8, nicelik belirleme için yaygın hedeflerdir.
- Kalibrasyon: Kayan noktalı sayıları tamsayılarla etkili bir şekilde eşlemek için dinamik aktivasyon değerlerinin (min/maks) aralığını belirleme sürecidir. Bu, nicelleştirilmiş YOLO modellerini dağıtmada çok önemli bir adımdır.
- Çıkarım Gecikmesi: QAT'nin temel faydalarından biri çıkarım gecikmesini azaltarak gerçek zamanlı sistemlerde daha hızlı karar vermeye olanak tanımasıdır.
- İnce Ayar: QAT genellikle sıfırdan eğitmek yerine önceden eğitilmiş bir model üzerinde bir ince ayar adımı olarak gerçekleştirilir, bu da hesaplama kaynaklarından tasarruf sağlar.
Geliştiriciler, Nicelik Farkındalıklı Eğitimi MLOps hattına entegre ederek, yüksek doğruluklu araştırma modelleri ile son derece verimli, üretime hazır uç yapay zeka uygulamaları arasındaki boşluğu kapatabilirler.






