Glossario

Quantizzazione del modello

Ottimizza le prestazioni dell'intelligenza artificiale con la quantizzazione dei modelli. Riduci le dimensioni, aumenta la velocità e migliora l'efficienza energetica per le implementazioni reali.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

La quantizzazione del modello è una tecnica cruciale di ottimizzazione del modello utilizzata nel deep learning (DL) per ridurre i costi computazionali e di memoria dei modelli. Questo avviene convertendo la precisione numerica dei parametri del modello(pesi e attivazioni) da rappresentazioni a più alta precisione, tipicamente numeri in virgola mobile a 32 bit(FP32), a formati a più bassa precisione, come i numeri in virgola mobile a 16 bit (FP16), i numeri interi a 8 bit(INT8) o anche rappresentazioni a bit inferiori. Questo processo rende i modelli di apprendimento automatico più piccoli, più veloci e più efficienti dal punto di vista energetico, il che è particolarmente importante per l'implementazione di modelli complessi in ambienti con risorse limitate come i dispositivi mobili o i sistemi di intelligenza artificiale edge.

Come funziona la quantizzazione del modello

Di base, la quantizzazione del modello comporta la mappatura della gamma di valori presenti nei tensori ad alta precisione (come i pesi e le attivazioni in FP32) in una gamma più piccola rappresentabile da tipi di dati a bassa precisione (come INT8). Questa conversione riduce in modo significativo la memoria necessaria per memorizzare il modello e le risorse computazionali necessarie per l'inferenza, poiché le operazioni sui numeri a bassa precisione (in particolare gli interi) sono spesso più veloci ed efficienti dal punto di vista energetico sull'hardware moderno come le GPU, le CPU e gli acceleratori specializzati come le TPU o le NPU. L'obiettivo è ottenere questi guadagni di efficienza con un impatto minimo sulle prestazioni predittive del modello.

Vantaggi della quantizzazione del modello

L'applicazione della quantizzazione ai modelli di deep learning offre diversi vantaggi chiave:

  • Dimensioni ridotte del modello: I tipi di dati a bassa precisione richiedono meno spazio di archiviazione, rendendo i modelli più facili da archiviare e distribuire, soprattutto per la distribuzione su dispositivo.
  • Velocità di inferenza maggiore: I calcoli con numeri a bassa precisione (in particolare i numeri interi) vengono eseguiti più velocemente su hardware compatibile, riducendo la latenza di inferenza. Questo è fondamentale per le applicazioni in tempo reale.
  • Migliore efficienza energetica: I calcoli più veloci e la riduzione degli accessi alla memoria comportano un minor consumo energetico, prolungando la durata della batteria sui dispositivi mobili e edge.
  • Compatibilità hardware migliorata: Molti acceleratori hardware specializzati(Edge TPUs, NPUs su processori ARM) sono ottimizzati per l'aritmetica intera a bassa precisione, consentendo un significativo aumento delle prestazioni per i modelli quantizzati.

Tecniche di quantizzazione

Esistono due approcci principali alla quantizzazione dei modelli:

  • Quantizzazione post-addestramento (PTQ): Questo metodo consiste nel quantizzare un modello già addestrato utilizzando una precisione standard in virgola mobile. È più semplice da implementare perché non richiede una riqualificazione o l'accesso ai dati di addestramento originali. Tuttavia, a volte può portare a un notevole calo dell'accuratezza del modello. Strumenti come TensorFlow Model Optimization Toolkit offrono funzionalità di PTQ.
  • Quantization-Aware Training (QAT): Questa tecnica simula gli effetti della quantizzazione durante il processo di formazione del modello. Rendendo il modello "consapevole" dell'imminente riduzione della precisione, la QAT spesso raggiunge un'accuratezza migliore rispetto alla PTQ, soprattutto per i modelli sensibili alla quantizzazione, anche se richiede modifiche al flusso di lavoro di formazione e l'accesso ai dati di formazione. PyTorch offre il supporto QAT.

Applicazioni del mondo reale

La quantizzazione dei modelli è ampiamente utilizzata in diversi ambiti:

  • Applicazioni di visione mobile: Consentire attività di computer vision sofisticate come il rilevamento di oggetti in tempo reale (ad esempio, utilizzando un modello Ultralytics YOLO quantizzato) o la segmentazione delle immagini direttamente sugli smartphone per applicazioni come la realtà aumentata, il fotoritocco o la ricerca visiva. La quantizzazione rende questi modelli impegnativi realizzabili su hardware mobile.
  • Veicoli autonomi e robotica: L'impiego di modelli di percezione (per il rilevamento di pedoni, veicoli, ostacoli) nelle automobili o nei droni, dove la bassa latenza e l'efficienza energetica sono fondamentali per la sicurezza e la durata operativa. I modelli quantizzati aiutano a soddisfare questi severi requisiti di elaborazione in tempo reale.
  • Dispositivi Edge AI: Esecuzione di modelli AI per attività come il rilevamento di difetti industriali, l'automazione di case intelligenti o il monitoraggio della salute degli indossatori su microcontrollori a basso consumo o processori edge specializzati.

Considerazioni e concetti correlati

Sebbene sia molto vantaggiosa, la quantizzazione può potenzialmente avere un impatto sull'accuratezza del modello. Dopo la quantizzazione è essenziale un'attenta valutazione con l'utilizzo di metriche di performance pertinenti. Tecniche come l'utilizzo di architetture del modello favorevoli alla quantizzazione (ad esempio, la sostituzione di alcune funzioni di attivazione come quelle viste in YOLO) possono aiutare a mitigare la degradazione dell'accuratezza, come discusso nell'implementazione di modelli YOLOv8 quantizzati.

La quantizzazione del modello è una delle tante tecniche di ottimizzazione del modello. Altre includono:

  • Model Pruning: Rimozione delle connessioni (pesi) ridondanti o non importanti nella rete neurale.
  • Precisione mista: Utilizzo di una combinazione di precisioni numeriche diverse (ad esempio, FP16 e FP32) durante l'addestramento o l'inferenza.
  • Distillazione della conoscenza: Addestrare un modello "studente" più piccolo a imitare il comportamento di un modello "insegnante" più grande e pre-addestrato.

Ultralytics supporta l'esportazione dei modelli in vari formati che facilitano la quantizzazione e la distribuzione, tra cui ONNX, OpenVINO (ottimizzato per l'hardwareIntel ), TensorRT (per le GPUNVIDIA ), CoreML (per i dispositivi Apple) e TFLite, che consentono una distribuzione efficiente dei modelli su diverse piattaforme hardware. Puoi gestire e distribuire i tuoi modelli, comprese le versioni quantizzate, utilizzando strumenti come Ultralytics HUB. Integrazioni come Neural Magic sfruttano la quantizzazione per ottimizzare la CPU .

Leggi tutto