Model Quantization
Scopri come la quantizzazione dei modelli ottimizza Ultralytics YOLO26 per l'edge AI. Scopri come ridurre la memoria, diminuire la latenza ed esportare modelli INT8 per un'inferenza più rapida.
La quantizzazione dei modelli è una sofisticata tecnica di ottimizzazione dei modelli utilizzata per ridurre i costi computazionali e di memoria associati all'esecuzione dei modelli di deep learning. Nei flussi di lavoro di addestramento standard, le reti neurali archiviano in genere i parametri (pesi e bias) e le mappe di attivazione utilizzando numeri in virgola mobile a 32 bit (FP32). Sebbene questa elevata precisione garantisca calcoli accurati durante l'addestramento, spesso non è necessaria per l'inferenza. La quantizzazione converte questi valori in formati a precisione inferiore, come i numeri in virgola mobile a 16 bit (FP16) o gli interi a 8 bit (INT8), riducendo efficacemente le dimensioni del modello e accelerando la velocità di esecuzione senza compromettere significativamente la precisione.
Perché la quantizzazione è importante#
Il principale motivo alla base della quantizzazione è la necessità di implementare sistemi di AI avanzati su hardware con risorse limitate. Man mano che i modelli di computer vision, come YOLO26, diventano più complessi, aumentano anche le loro esigenze computazionali. La quantizzazione affronta tre colli di bottiglia fondamentali:
- Ingombro in memoria: Riducendo la larghezza in bit dei pesi (ad esempio, da 32 bit a 8 bit), il requisito di archiviazione del modello si riduce fino a 4 volte. Questo è fondamentale per le app mobili, in cui le dimensioni dell'applicazione sono limitate.
- Latenza di inferenza: Le operazioni a precisione inferiore hanno un costo computazionale più basso. I processori moderni, soprattutto quelli dotati di unità di elaborazione neurale (NPU) specializzate, possono eseguire operazioni INT8 molto più velocemente rispetto a FP32, riducendo significativamente la latenza di inferenza.
- Consumo energetico: Spostare meno dati attraverso la memoria ed eseguire operazioni aritmetiche più semplici consuma meno energia, prolungando la durata della batteria nei dispositivi portatili e nei veicoli autonomi.
Confronto con concetti correlati#
È importante distinguere la quantizzazione dalle altre tecniche di ottimizzazione, poiché modificano il modello in modi diversi:
- Quantizzazione e pruning: Mentre la quantizzazione riduce le dimensioni del file diminuendo la larghezza in bit dei parametri, il pruning dei modelli comporta la rimozione completa delle connessioni non necessarie (pesi) per creare una rete sparsa. Il pruning modifica la struttura del modello, mentre la quantizzazione modifica la rappresentazione dei dati.
- Quantizzazione e distillazione della conoscenza: La distillazione della conoscenza è una tecnica di addestramento in cui un piccolo modello "studente" impara a imitare un modello "insegnante" di grandi dimensioni. La quantizzazione viene spesso applicata al modello studente dopo la distillazione per migliorare ulteriormente le prestazioni dell'AI edge.
Applicazioni nel mondo reale#
La quantizzazione abilita la computer vision e l'AI in diversi settori in cui l'efficienza è fondamentale.
-
Sistemi autonomi: Nel settore automobilistico, le auto a guida autonoma devono elaborare in tempo reale i dati visivi provenienti da telecamere e LiDAR. I modelli quantizzati implementati sui motori NVIDIA TensorRT consentono a questi veicoli di rilevare pedoni e ostacoli con una latenza dell'ordine dei millisecondi, garantendo la sicurezza dei passeggeri.
-
Agricoltura intelligente: I droni dotati di telecamere multispettrali utilizzano modelli quantizzati di rilevamento degli oggetti per identificare le malattie delle colture o monitorare le fasi di crescita. L'esecuzione locale di questi modelli sui sistemi embedded del drone elimina la necessità di connessioni cellulari inaffidabili nei campi remoti.
Implementazione della quantizzazione con Ultralytics#
La libreria Ultralytics semplifica il processo di esportazione, consentendo agli sviluppatori di convertire modelli come il rivoluzionario YOLO26 in formati quantizzati. La Ultralytics Platform offre inoltre strumenti per gestire queste implementazioni senza problemi.
L'esempio seguente mostra come esportare un modello in TFLite con la quantizzazione INT8 abilitata. Questo processo prevede una fase di calibrazione in cui il modello osserva dati di esempio per determinare l'intervallo dinamico ottimale per i valori quantizzati.
from ultralytics import YOLO
# Load a standard YOLO26 model
model = YOLO("yolo26n.pt")
# Export to TFLite format with INT8 quantization
# The 'int8' argument triggers Post-Training Quantization
# 'data' provides the calibration dataset needed for mapping values
model.export(format="tflite", int8=True, data="coco8.yaml")I modelli ottimizzati vengono spesso implementati utilizzando standard interoperabili come ONNX o motori di inferenza ad alte prestazioni come OpenVINO, garantendo un'ampia compatibilità tra diversi ecosistemi hardware.









