Scopri come il Quantization-Aware Training (QAT) ottimizza i modelli Ultralytics per l'implementazione edge. Scopri come mantenere un'elevata accuratezza con la precisione INT8.
Il Quantization-Aware Training (QAT) è una tecnica specializzata utilizzata durante la fase di addestramento dei modelli di machine learning per prepararli ad ambienti con precisione inferiore. Nei flussi di lavoro standard di deep learning, i modelli operano tipicamente utilizzando numeri in virgola mobile a 32 bit ad alta precisione (FP32). Sebbene questa precisione offra un'accuratezza eccellente, può essere computazionalmente costosa e richiedere molta memoria, specialmente sui dispositivi edge. Il QAT simula gli effetti della quantizzazione, riducendo la precisione a formati come gli interi a 8 bit (INT8), mentre il modello è ancora in fase di addestramento. Introducendo questi errori di quantizzazione durante il processo di apprendimento, il modello impara ad adattare i propri pesi e a recuperare efficacemente l'accuratezza che altrimenti potrebbe andare persa durante la conversione post-addestramento.
L'implementazione di modelli di visione artificiale su dispositivi con risorse limitate richiede spesso un compromesso tra velocità e prestazioni. I metodi di quantizzazione standard, noti come quantizzazione post-addestramento (PTQ), applicano la riduzione della precisione solo dopo che il modello è stato completamente addestrato. Sebbene la PTQ sia veloce, a volte può compromettere l'accuratezza dei modelli sensibili perché i pesi della rete neurale vengono alterati in modo significativo senza possibilità di regolazione.
QAT risolve questo problema consentendo al modello di "esercitarsi" nell'essere quantizzato. Durante il passaggio in avanti dell'addestramento, i pesi e le attivazioni vengono simulati come valori a bassa precisione. Ciò consente al processo di discesa del gradiente di aggiornare i parametri del modello in modo da ridurre al minimo la perdita specifica per lo stato quantizzato. Il risultato è un modello robusto che mantiene un'elevata precisione anche quando viene implementato su hardware come microcontrollori o processori mobili.
È utile distinguere il QAT dalla quantizzazione del modello, in particolare dalla quantizzazione post-addestramento (PTQ):
Il QAT è essenziale per i settori in cui l'inferenza in tempo reale sull'hardware edge è fondamentale.
La Ultralytics e YOLO supportano l'esportazione di modelli in formati quantizzati. Sebbene il QAT sia una procedura di addestramento complessa, i moderni framework facilitano la preparazione dei modelli per l'inferenza quantizzata.
Di seguito è riportato un esempio di come esportare un modello YOLO26 addestrato in un TFLite quantizzato INT8, che utilizza i principi della quantizzazione per un'efficiente distribuzione edge.
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)
I modelli ottimizzati tramite tecniche di quantizzazione sono progettati per funzionare su motori di inferenza specializzati. I modelli addestrati con QAT vengono spesso implementati utilizzando ONNX per la compatibilità multipiattaforma o OpenVINO per l'ottimizzazione su Intel . Ciò garantisce che, indipendentemente dal fatto che l'obiettivo sia un Raspberry Pi o un'Edge TPU dedicata , il modello funzioni con la massima efficienza e velocità possibili.
Per comprendere appieno il QAT, è utile avere familiarità con diversi concetti correlati al machine learning:
Integrando il Quantization-Aware Training nella pipeline MLOps, gli sviluppatori possono colmare il divario tra modelli di ricerca ad alta precisione e applicazioni di intelligenza artificiale edge altamente efficienti e pronte per la produzione.