Glossario

FLOP

Capire i FLOP nell'apprendimento automatico! Scoprite come misura la complessità del modello, come influisce sull'efficienza e come aiuta la selezione dell'hardware.

Le FLOP, o Floating-Point Operations, sono una metrica fondamentale utilizzata nel Machine Learning (ML) per misurare la complessità computazionale di un modello. Un'operazione in virgola mobile è un calcolo matematico come l'addizione, la sottrazione, la moltiplicazione o la divisione che coinvolge numeri con punti decimali, che sono standard nelle reti neurali. Sebbene il termine possa tecnicamente riferirsi alle operazioni al secondo, nel contesto del deep learning, i FLOP quantificano in genere il numero totale di queste operazioni necessarie per un singolo passaggio in avanti di un modello. Questa metrica fornisce un modo indipendente dall'hardware per stimare l'intensità computazionale di un modello durante l'inferenza. I numeri sono spesso così grandi da essere espressi in GigaFLOP (GFLOP), ovvero miliardi di operazioni, o TeraFLOP (TFLOP), trilioni di operazioni.

Perché i FLOP sono importanti nell'apprendimento automatico?

I FLOP sono un indicatore critico dell'efficienza di un modello. Un numero inferiore di FLOP indica generalmente che un modello è più veloce e richiede meno potenza di calcolo per essere eseguito. Questo è particolarmente importante per le applicazioni in cui le risorse sono limitate, come nell'IA di frontiera e sui dispositivi mobili. Analizzando i FLOP, gli sviluppatori possono:

  • Confronto delle architetture dei modelli: Quando si sceglie tra diversi modelli, come quelli presenti nelle nostre pagine di confronto dei modelli, i FLOP offrono un modo standardizzato per valutare l'efficienza computazionale e l'accuratezza.
  • Ottimizzazione per la distribuzione: Per la distribuzione del modello su hardware come Raspberry Pi o NVIDIA Jetson, la scelta di un modello con un numero di FLOP appropriato è essenziale per ottenere i livelli di prestazioni desiderati.
  • Guida alla progettazione del modello: I ricercatori che sviluppano nuove architetture, come quelle della serie Ultralytics YOLO, spesso considerano la minimizzazione dei FLOP come un vincolo progettuale fondamentale. Le tecniche esplorate in modelli come EfficientNet si concentrano sulla riduzione del costo computazionale senza sacrificare le prestazioni.

Applicazioni del mondo reale

I FLOP sono una metrica pratica utilizzata quotidianamente nello sviluppo e nell'implementazione di soluzioni di intelligenza artificiale.

  1. Applicazioni di visione mobile: Uno sviluppatore che crea una funzione di rilevamento degli oggetti in tempo reale per un'applicazione per smartphone deve scegliere un modello in grado di funzionare rapidamente senza scaricare la batteria. Confrontando i FLOP di modelli leggeri come la piccola variante Ultralytics YOLO11 con altri, è possibile scegliere un modello che offra un buon equilibrio tra velocità e precisione per la CPU o la GPU del dispositivo.

  2. Veicoli autonomi: Nella guida autonoma, i modelli di percezione devono elaborare i feed delle telecamere con una latenza estremamente bassa. Gli ingegneri che progettano questi sistemi analizzano i FLOP dei vari modelli per assicurarsi che l'architettura scelta possa funzionare sull'hardware specializzato del veicolo. Un modello come YOLO11 potrebbe essere preferito a uno più complesso se i suoi FLOP più bassi gli consentono di soddisfare i severi requisiti di temporizzazione per un funzionamento sicuro.

FLOP e metriche correlate

È importante distinguere i FLOP da altri parametri comuni:

  • Parametri vs. FLOP: Il numero di pesi del modello (parametri) indica la dimensione di un modello in termini di memoria. I FLOP, invece, misurano il lavoro di calcolo. Un modello può avere un numero ridotto di parametri ma un elevato numero di FLOP se tali parametri vengono riutilizzati molte volte in operazioni computazionalmente intensive.
  • MAC e FLOP: Le MAC, o operazioni di moltiplicazione-accumulazione, sono operazioni comuni nelle reti neurali. Un singolo MAC è spesso considerato equivalente a due FLOP (una moltiplicazione e un'addizione). Alcuni documenti di ricerca e framework possono riportare il costo computazionale in MAC, che è circa la metà del valore dei FLOP. È possibile vedere questa distinzione in risorse come Papers with Code.
  • Latenza vs. FLOP: la latenza di inferenza è il tempo effettivo di wall-clock necessario a un modello per fare una previsione. Sebbene i FLOP forniscano una buona stima teorica, la latenza nel mondo reale è influenzata da fattori che i FLOP non catturano, come la larghezza di banda della memoria, il parallelismo hardware e l'efficienza di librerie software come PyTorch.

Limitazioni

Pur essendo utili, i FLOP hanno dei limiti:

  • Non tengono conto dei costi di accesso alla memoria, che possono rappresentare un collo di bottiglia significativo.
  • Non colgono il grado di parallelismo possibile nelle operazioni.
  • Le prestazioni effettive dipendono fortemente dalle ottimizzazioni specifiche dell'hardware e dall'efficienza delle librerie software sottostanti(cuDNN, Intel MKL).
  • Alcune operazioni (ad esempio, le funzioni di attivazione come ReLU) hanno un basso numero di FLOP ma possono comunque avere un impatto sulla latenza.

Pertanto, i FLOP devono essere considerati insieme ad altre metriche di prestazione, parametri e benchmark del mondo reale per ottenere un quadro completo dell'efficienza del modello. Strumenti come Ultralytics HUB possono aiutare a gestire i modelli e a monitorare i vari aspetti delle prestazioni durante lo sviluppo e la distribuzione.

Unitevi alla comunità di Ultralytics

Entrate a far parte del futuro dell'IA. Connettetevi, collaborate e crescete con gli innovatori globali.

Iscriviti ora
Link copiato negli appunti