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 numeri in virgola mobile a 16 bit (FP16), numeri interi a 8 bit (INT8) o rappresentazioni a bit inferiori. Questo processo rende i modelli 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 la potenza di calcolo necessaria per l'inferenza, in quanto le operazioni sui numeri a bassa precisione (soprattutto gli interi) sono spesso più veloci ed efficienti dal punto di vista energetico sull'hardware moderno come le GPU e gli acceleratori specializzati come le TPU.

Vantaggi della quantizzazione del modello

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

  • Dimensioni ridotte del modello: La minore precisione richiede meno bit per parametro, riducendo drasticamente l'ingombro in memoria del modello. Questo è un vantaggio per gli aggiornamenti over-the-air e per i dispositivi con memoria limitata.
  • Velocità di inferenza maggiore: I calcoli con numeri a bassa precisione, in particolare l'aritmetica dei numeri interi, sono generalmente più veloci sull'hardware compatibile, con conseguente riduzione della latenza di inferenza.
  • Consumo energetico ridotto: L'accesso ridotto alla memoria e i calcoli più semplici si traducono in un minor consumo energetico, fondamentale per i dispositivi edge alimentati a batteria.
  • Migliore distribuibilità: Consente di distribuire modelli complessi e di grandi dimensioni come Ultralytics YOLO su hardware con risorse computazionali limitate, come i microcontrollori o le edge TPU.

Tecniche di quantizzazione

Esistono due approcci principali alla quantizzazione dei modelli:

  1. 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, ma a volte può portare a un calo notevole dell'accuratezza del modello. La calibrazione con un set di dati rappresentativo è spesso utilizzata per minimizzare questa perdita di accuratezza.
  2. Formazione consapevole della quantizzazione (QAT): Il QAT simula gli effetti della quantizzazione durante il processo di formazione. Il modello impara ad adattarsi alla minore precisione, ottenendo in genere un'accuratezza migliore rispetto al PTQ, anche se richiede l'accesso alla pipeline di formazione e ai dati originali.

Applicazioni del mondo reale

La quantizzazione dei modelli è ampiamente utilizzata in diversi ambiti:

  1. Mobile Computing: Consente di utilizzare sofisticate funzioni di intelligenza artificiale come il rilevamento di oggetti in tempo reale per i filtri della fotocamera, la classificazione delle immagini e l'elaborazione del linguaggio naturale direttamente sugli smartphone, senza dover ricorrere a calcoli in-the-cloud. Framework come TensorFlow Lite utilizzano pesantemente la quantizzazione.
  2. Veicoli autonomi: I modelli quantizzati consentono un'elaborazione più rapida dei dati dei sensori (telecamere, LiDAR) per attività come il rilevamento dei pedoni, il mantenimento della corsia e il riconoscimento dei segnali stradali, fondamentali per prendere decisioni in tempo reale nei sistemi di guida autonoma. Ultralytics offre diverse opzioni di implementazione dei modelli adatti a queste applicazioni.

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:

  • Potenziamento del modello: Rimuovere i pesi o le connessioni meno importanti per ridurre la complessità del modello.
  • Precisione mista: Utilizzo di una combinazione di FP16 e FP32 durante l'addestramento o l'inferenza per ottenere un equilibrio tra velocità/memoria e precisione.
  • Distillazione della conoscenza: Addestramento di un modello "studente" più piccolo per imitare l'output di un modello "insegnante" più grande e pre-addestrato.

Ultralytics supporta l'esportazione dei modelli in vari formati che facilitano la quantizzazione, tra cui ONNX, OpenVINO, TensorRT, CoreMLe TFLite, consentendo una distribuzione efficiente su diverse piattaforme hardware. Puoi gestire e distribuire i tuoi modelli, comprese le versioni quantizzate, utilizzando strumenti come Ultralytics HUB.

Leggi tutto