Model Quantization
Scopri come la quantizzazione del modello ottimizza Ultralytics YOLO26 per l'edge AI. Scopri come ridurre la memoria, abbassare la latenza ed esportare modelli INT8 per un'inferenza più rapida.
La quantizzazione dei modelli è una tecnica sofisticata di ottimizzazione dei modelli utilizzata per ridurre i costi computazionali e di memoria legati all'esecuzione di modelli di deep learning. Nei flussi di lavoro di addestramento standard, le reti neurali memorizzano tipicamente 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 risulta superflua per l'inferenza. La quantizzazione converte questi valori in formati a precisione inferiore, come la virgola mobile a 16 bit (FP16) o interi a 8 bit (INT8), riducendo efficacemente le dimensioni del modello e accelerando la velocità di esecuzione senza compromettere significativamente l'accuratezza.
Perché la quantizzazione è importante#
Il fattore principale che spinge verso la quantizzazione è la necessità di distribuire intelligenza artificiale potente su hardware con risorse limitate. Man mano che i modelli di visione artificiale come YOLO26 diventano più complessi, le loro richieste computazionali aumentano. La quantizzazione affronta tre colli di bottiglia critici:
- Ingombro di memoria: Riducendo la larghezza di bit dei pesi (ad esempio, da 32 bit a 8 bit), il requisito di archiviazione del modello viene ridotto fino a 4 volte. Questo è fondamentale per le app mobili dove le dimensioni dell'applicazione sono limitate.
- Latenza di inferenza: Le operazioni a precisione inferiore sono computazionalmente meno costose. I processori moderni, in particolare 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 una minore quantità di 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 differenziare la quantizzazione da altre tecniche di ottimizzazione, poiché modificano il modello in modi distinti:
- Quantizzazione vs. Pruning: Mentre la quantizzazione riduce la dimensione del file diminuendo la larghezza di bit dei parametri, il pruning dei modelli comporta la rimozione completa delle connessioni non necessarie (pesi) per creare una rete sparsa. Il pruning altera la struttura del modello, mentre la quantizzazione altera la rappresentazione dei dati.
- Quantizzazione vs. Knowledge Distillation: La knowledge distillation è una tecnica di addestramento in cui un modello "studente" di piccole dimensioni 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 di edge AI.
Applicazioni nel mondo reale#
La quantizzazione abilita la computer vision e l'IA in vari settori in cui l'efficienza è fondamentale.
-
Sistemi autonomi: Nell'industria automobilistica, le auto a guida autonoma devono elaborare dati visivi da telecamere e LiDAR in tempo reale. I modelli quantizzati distribuiti su 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 di rilevamento oggetti quantizzati per identificare malattie delle colture o monitorare le fasi di crescita. Eseguire questi modelli localmente sui sistemi embedded del drone elimina la necessità di connessioni cellulari inaffidabili in campi remoti.
Implementazione della quantizzazione con Ultralytics#
La libreria Ultralytics semplifica il processo di esportazione, consentendo agli sviluppatori di convertire modelli come l'innovativo YOLO26 in formati quantizzati. La Ultralytics Platform fornisce inoltre strumenti per gestire queste distribuzioni in modo trasparente.
Il seguente esempio 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 la gamma dinamica 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 frequentemente distribuiti utilizzando standard interoperabili come ONNX o motori di inferenza ad alte prestazioni come OpenVINO, garantendo un'ampia compatibilità tra diversi ecosistemi hardware.






