Ottimizza i modelli di intelligenza artificiale per i dispositivi edge con il Quantization-Aware Training (QAT), garantendo un'elevata precisione ed efficienza in ambienti con risorse limitate.
Il Quantization-Aware Training (QAT) è una potente tecnica utilizzata per ottimizzare i modelli di deep learning (DL), come ad esempio Ultralytics YOLO di Ulralytics, per essere utilizzati su dispositivi con risorse computazionali limitate, come i telefoni cellulari o i sistemi embedded. I modelli standard utilizzano spesso numeri ad alta precisione (come quelli in virgola mobile a 32 bit o FP32) per i calcoli, che richiedono una notevole potenza di elaborazione e memoria. QAT mira a ridurre questa richiesta preparando il modello durante la fase di addestramento per ottenere buone prestazioni anche quando utilizza numeri a bassa precisione (ad esempio, numeri interi a 8 bit o INT8), colmando così il divario tra l'alta precisione e le prestazioni efficienti sui dispositivi edge. Questa ottimizzazione è fondamentale per consentire l'esecuzione di complesse attività di intelligenza artificiale direttamente su hardware come smartphone o sensori IoT.
A differenza dei metodi che quantizzano un modello dopo che è stato completamente addestrato, QAT integra la simulazione degli effetti della quantizzazione direttamente nel processo di addestramento. Durante l'addestramento, infatti, introduce nell'architettura del modello delle operazioni chiamate nodi di "quantizzazione fittizia". Questi nodi simulano l'effetto di una precisione inferiore (ad esempio, precisione INT8) sui pesi e sulle attivazioni del modello durante il passaggio in avanti, arrotondando i valori come farebbero in un modello realmente quantizzato. Tuttavia, durante il passaggio all'indietro (in cui il modello apprende per retropropagazione), i gradienti vengono tipicamente calcolati e gli aggiornamenti applicati utilizzando numeri in virgola mobile ad alta precisione. In questo modo i parametri del modello si adattano e imparano a essere robusti alla perdita di precisione che si verificherà durante l'inferenza quantizzata. "Vedendo" gli effetti della quantizzazione durante l'addestramento, il modello riduce al minimo il calo di precisione spesso associato all'utilizzo di modelli in formati a bassa precisione, un aspetto chiave discusso nelle strategie di ottimizzazione dei modelli. Framework come TensorFlow Lite e PyTorch forniscono strumenti per implementare QAT.
La differenza principale sta nel momento in cui viene applicata la quantizzazione. La quantizzazione del modello, spesso indicata con il termine Post-Training Quantization (PTQ), converte un modello pre-addestrato a precisione piena in un formato a precisione inferiore al termine dell'addestramento. La PTQ è generalmente più semplice da implementare perché non richiede una riqualificazione o l'accesso al set di dati di formazione originale. Tuttavia, a volte può portare a una notevole diminuzione dell'accuratezza del modello, soprattutto per i modelli complessi che svolgono attività come il rilevamento di oggetti o la segmentazione di immagini. Il QAT, invece, simula la quantizzazione durante l'addestramento, rendendo il modello intrinsecamente più robusto alla riduzione della precisione. Questo comporta spesso un'accuratezza maggiore per il modello quantizzato finale rispetto al PTQ, anche se richiede più risorse computazionali e accesso ai dati di addestramento. Per modelli come YOLO, che incorpora blocchi che favoriscono la quantizzazione, la QAT può offrire vantaggi significativi in termini di prestazioni con una perdita di precisione minima.
Sebbene entrambe le tecniche prevedano la precisione numerica, i loro obiettivi differiscono. L'addestramento a precisione mista mira principalmente a velocizzare il processo di addestramento stesso e a ridurre l'utilizzo della memoria durante l'addestramento, utilizzando una combinazione di formati a bassa precisione (ad esempio, float a 16 bit o FP16) e a precisione standard (float a 32 bit) per i calcoli e la memorizzazione. QAT si concentra in particolare sull'ottimizzazione del modello per un'inferenza efficiente utilizzando formati interi a bassa precisione (come INT8) dopo la distribuzione del modello. Mentre la precisione mista è utile durante l'addestramento, QAT assicura che il modello finale funzioni bene sotto i vincoli dell'hardware di inferenza quantizzato, come le NPU (Neural Processing Unit) o le TPU.
L'addestramento consapevole della quantizzazione è fondamentale per implementare sofisticati modelli di intelligenza artificiale in ambienti con risorse limitate, dove l'efficienza è fondamentale.
Ultralytics supporta l'esportazione dei modelli in vari formati, come ad esempio ONNX, TensorRTe TFLite, che sono compatibili con i flussi di lavoro QAT e consentono una distribuzione efficiente su hardware diversi. Puoi gestire e distribuire i tuoi modelli ottimizzati per QAT utilizzando piattaforme come Ultralytics HUB. Valutare le prestazioni del modello utilizzando le metriche pertinenti dopo QAT è essenziale per garantire il rispetto dei requisiti di accuratezza.