Quantization-aware training
forkortelse for QAT
Quantization-aware training (QAT) er en træningsteknik, hvor kvantiseringseffekter simuleres under træningen for at opnå høj nøjagtighed efter efterfølgende kvantisering.
Kort fortalt
En metode til at træne en AI-model, så den bevarer præcisionen, selv når den gøres mindre og hurtigere ved at arbejde med mindre præcise tal.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /ˈkwɒntɪzeɪʃən ˈeər trˈeɪnɪŋ/
Betydninger
1- 1
En træningsmetode, der simulerer kvantisering under fremadrettet passage for at gøre modellen robust over for kvantiseringsfejl, typisk ved at fastholde fuld præcision i vægte og aktiviteter under opdateringer, men kvantisere dem i forward pass.
- Ved at anvende quantization-aware training opnåede vi en top-1 nøjagtighed på 70,2% efter 8-bit kvantisering, kun 0,5% lavere end det fuldpræcise baseline. — Eksempel baseret på praksis
- QAT anvender en straight-through estimator (STE) til at approksimere gradienterne gennem kvantiseringsfunktionen. — Jacob et al., 2018
Hvornår bruges det
QAT bruges til at optimere deep learning-modeller til implementering på ressourcebegrænsede enheder som mobiltelefoner eller edge-enheder. Det er især relevant for inferens i integer-aritmetik, fx med 8-bit heltal. Teknikken inkorporerer kvantiseringsoperationer i træningsgrafen og bruger en straight-through estimator til at håndtere den ikke-differentiable kvantiseringsfunktion.
Kodeeksempel
# TensorFlow eksempel på QAT
import tensorflow as tf
from tensorflow import keras
import tensorflow_model_optimization as tfmot
model = keras.Sequential([...]) # original model
qat_model = tfmot.quantization.keras.quantize_model(model)
# Træn med QAT (simuleret kvantisering)
qat_model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
qat_model.fit(train_images, train_labels, epochs=5)
# Efter træning konverteres til heltalsrepræsentation
converter = tf.lite.TFLiteConverter.from_keras_model(qat_model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()TensorFlow-kode, der illustrerer, hvordan et eksisterende Keras-modell pakkes ind med `quantize_model` for at udføre quantization-aware training, og derefter konverteres til TFLite med heltalsoptimering.
Oprindelse
Sammensat af 'quantization' (kvantisering) og 'aware' (bevidst) og 'training' (træning).
Afledte ord
2Kilder
3- Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference (Jacob et al., 2018)
- TensorFlow Model Optimization Toolkit – Quantization Aware Training
- PyTorch Quantization – Quantization Aware Training