Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Quantization-Aware Training (QAT)

Niceleme farkındalıklı eğitim (QAT), eğitim sırasında INT8 yuvarlamasını taklit eder; böylece ağırlıklar dışa aktarma öncesinde uyarlanır ve sıradan INT8 dönüştürmesinde kaybolan doğruluk korunur.

Nicemleme farkındalıklı eğitim (QAT), eğitim sırasında nicemlemeyi benzeterek modeli düşük kesinlikli çıkarıma hazırlayan bir eğitim tekniğidir. Modeller genellikle ağırlıkları 32 bit kayan noktalı sayılar (FP32) olarak eğitir ve saklar; model nicemleme ise dağıtım için bunları 8 bit tam sayılar (INT8) gibi biçimlere dönüştürür. Böylece ağırlıklar 4 kat küçülür ve CPU'lar, GPU'lar ile sinirsel işlem birimleri (NPU'lar) hızlı tam sayı aritmetiğinden yararlanabilir. Dönüştürme sırasında her değer yuvarlanır ve aykırı değerler kırpılır; bu da doğruluktan ödün verilmesine yol açar. QAT, model öğrenmeye devam ederken bu yuvarlamayı ileri geçişe ekler; böylece gradyan inişi, nicemlemeden sonra da işe yarayan ağırlıkları bulur. Genellikle önceden eğitilmiş bir model üzerinde kısa bir ince ayar aşaması olarak uygulanır. Google'ın mobil CPU'lar için geliştirdiği yalnızca tam sayı aritmetiği kullanan çıkarım şeması, INT8 çıkarımı bu tür bir eğitim prosedürüyle eşleştirmiştir; QAT o zamandan beri uç yapay zekâ dağıtımı için standart bir araca dönüşmüştür.

Nicemleme Farkındalıklı Eğitim Nasıl Çalışır#

QAT, modelin ağırlıklarına ve aktivasyonlarına nicemleme-sahte işlemleri (nicemle-ters nicemle, Q/DQ çiftleri olarak da bilinir) ekler. Her işlem bir kayan nokta değerini ölçek ve sıfır noktası kullanarak en yakın INT8 düzeyine eşler, ardından hemen yeniden kayan nokta biçimine dönüştürür. Böylece ağ kayan nokta işlemleri yapmaya devam ederken bir INT8 motorunun kullanacağı yuvarlatılmış değerleri görür. Ölçekler, birkaç veri yığınında her tensörün tipik aralığını kaydeden kalibrasyondan elde edilir; bazı yöntemlerde ölçekler eğitim sırasında da öğrenilir.

Yuvarlamanın hemen her yerde gradyanı sıfırdır; bu da öğrenmeyi durdurur. QAT, straight-through estimator (STE) kullanarak geri yayılım sırasında yuvarlama adımını özdeşlik fonksiyonu olarak ele alır; böylece gradyanlar alttaki FP32 ağırlıklarına ulaşır:

import torch

# FP32 weights that training keeps and updates
w = torch.tensor([0.3137, -0.7214, 0.0521, 1.1800], requires_grad=True)

# Symmetric INT8 fake quantization: snap each weight to one of 255 levels, then map back to float
scale = w.detach().abs().max().item() / 127
w_q = torch.fake_quantize_per_tensor_affine(w, scale, 0, -127, 127)
print(f"Fake-quantized: {[round(v, 4) for v in w_q.tolist()]}")

# The forward pass sees the rounded weights; the straight-through estimator still delivers gradients to w
x = torch.tensor([1.0, 2.0, 3.0, 4.0])
loss = (w_q * x).sum()
loss.backward()
print(f"Gradient on FP32 weights: {w.grad.tolist()}")

İleri geçişte 0.3159, −0.7247, 0.0557 ve 1.18 yuvarlatılmış ağırlıkları kullanılır; bu değerlerin her biri FP32 karşılığının en fazla yarım nicemleme adımı (0.0046) uzağındadır. Buna karşın FP32 ağırlıklarına ulaşan gradyan, hiç yuvarlama yapılmamışçasına, tam olarak giriş değerleri olan 1.0, 2.0, 3.0 ve 4.0'tür. Çok sayıda adım boyunca optimize edici, yuvarlama hatasının en az zarar verdiği konumlara ağırlıkları taşır ve eğitilmiş model öğrendiği ölçeklerle INT8 olarak dışa aktarılır.

QAT ve Eğitim Sonrası Nicemleme#

Eğitim sonrası nicemleme (PTQ), aralıkları belirlemek için birkaç yüz kalibrasyon görüntüsü kullanarak bitmiş bir FP32 modeli doğrudan dönüştürür. Dakikalar sürer ve eğitim iş akışı gerektirmez; ancak ağırlıkların yuvarlamaya uyum sağlama fırsatı olmaz, bu nedenle hassas modellerde doğruluk belirgin biçimde düşebilir. QAT, tam eğitim verileriyle bir ince ayar çalıştırması gerektirir; karşılığında ise bu kaybın büyük bölümünü telafi eder. Ekipler genellikle önce PTQ'yu dener ve yalnızca INT8 doğruluk kaybı çok büyük olduğunda QAT'a geçer:

Ultralytics YOLO, eğitim sırasında quantize=8 verildiğinde QAT uygular: NVIDIA Model Optimizer aracılığıyla INT8 sahte nicemlemesini kalibre eder, bunu eğitim döngüsüne ekleyerek ince ayar yapar ve ayrı kalibrasyon verisi gerektirmeden ONNX ile TensorRT dışa aktarımlarının Q/DQ düğümleri olarak yazdığı aralıkları kaydeder. COCO val2017 üzerinde TensorRT motorlarında PTQ, orta boy YOLO26 modelini 0.527'den 0.470 mAP50-95 değerine düşürürken QAT değeri 0.514'te tuttu; nano model PTQ ile yalnızca 0.010 kaybettiğinden QAT burada ek bir katkı sağlamadı.

from ultralytics import YOLO

# Eğitilmiş bir FP32 YOLO26 kontrol noktasından başla
model = YOLO("yolo26n.pt")

# Döngü içinde INT8 sahte nicemlemesi kullanarak düşük öğrenme oranıyla ince ayar yap
model.train(data="coco8.yaml", epochs=5, quantize=8, optimizer="AdamW", lr0=0.00001, cos_lr=True)

# ONNX'e aktar; öğrenilen INT8 aralıkları Q/DQ düğümlerine dönüşür, bu nedenle kalibrasyon verisi gerekmez
model.export(format="onnx", quantize=8)

QAT Nerelerde Kullanılır#

  • Uçta görme: Mobil telefonlardaki, akıllı kameralardaki, dronlardaki ve NPU'lardaki INT8 algılayıcılar; yalnızca tam sayı kullanan hızlandırıcılar kayan noktalı modelleri hiç çalıştıramaz.
  • Çıkarım sunucuları: TensorRT gibi GPU motorları daha yüksek verim için INT8 Tensor Core çekirdeklerini çalıştırır; QAT ise doğruluğu FP32'ye yakın tutar.
  • Dil modelleri: QAT artık 8 bitin altına iniyor. Google, belleğin çok daha azını kullanırken bfloat16'ya yakın kaliteyi koruyan 4 bit Q4_0 biçimindeki Gemma 3 QAT kontrol noktalarını yayımladı.

PyTorch'un torchao aracı, TensorFlow'un Model Optimization Toolkit'i ve OpenVINO için Intel'in NNCF aracı dâhil olmak üzere başlıca çerçeveler QAT araçları sunar.

  • Model nicemleme: Sayısal kesinliği düşürmeye yönelik genel terimdir. PTQ ve QAT, bu işlemin iki temel iş akışıdır.
  • Karışık kesinlikli eğitim: Bellek ve zamandan tasarruf etmek için FP16 veya BF16 ile eğitim yapar; modeli INT8 çıkarımı için hazırlamaz.
  • Yarı kesinlik: FP16 çıkarımı çoğu model yeniden eğitim olmadan tolere eder; bu nedenle genellikle QAT gerekmez.
  • Model budama: Ağırlıkları veya kanalları kaldırır; kesinliklerini düşürmez. İki sıkıştırma yöntemi birlikte uygulanabilir.
  • Bilgi damıtma: Küçük bir mimariyi daha büyük bir mimariyi taklit edecek şekilde eğitir. Genellikle QAT ile bir arada kullanılır; tam kesinlikli model, nicemlenmiş kendi kopyasının öğretmeni olur.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla