FLOPs
Scopri come i FLOP misurano la complessità computazionale dei modelli AI. Scopri come calcolare i FLOP per Ultralytics YOLO26 e ottimizzare le prestazioni per l'Edge AI.
I FLOPs, o Floating Point Operations, sono una metrica standard utilizzata per misurare la complessità computazionale di un modello di machine learning. Contano specificamente il numero di calcoli matematici — principalmente addizioni e moltiplicazioni che coinvolgono numeri decimali — che una neural network deve eseguire per elaborare un singolo input, come un'immagine o una frase. Nel mondo del deep learning, i FLOPs fungono da punto di riferimento teorico per stimare quanto un modello sia "pesante" o computazionalmente costoso. Un conteggio di FLOPs più elevato suggerisce generalmente che un modello sia più complesso e richieda più potenza di calcolo ed energia per essere eseguito, mentre un conteggio inferiore indica un'architettura leggera progettata per l'efficienza.
Link to this sectionIl ruolo dei FLOPs nella selezione del modello#
Quando sviluppi applicazioni di artificial intelligence, spesso ti trovi di fronte a un compromesso tra precisione e velocità. I FLOPs agiscono come un proxy indipendente dall'hardware per la inference latency, permettendoti di confrontare diverse architetture senza doverle testare su ogni possibile dispositivo. Questa metrica è essenziale per scegliere il modello giusto per scenari di distribuzione specifici. Ad esempio, un ricercatore che esegue esperimenti su potenti server di cloud computing potrebbe dare priorità alla precisione rispetto all'efficienza, utilizzando modelli con FLOPs elevati. Al contrario, un ingegnere che lavora su dispositivi di edge AI deve dare priorità a FLOPs bassi per garantire che l'applicazione funzioni senza intoppi entro rigorosi limiti di potenza e temperatura.
Link to this sectionApplicazioni nel mondo reale#
Le implicazioni pratiche dei FLOPs sono evidenti in vari settori in cui le risorse computazionali rappresentano un fattore critico.
- Droni autonomi: In settori come la agricultural robotics, i droni dotati di telecamere analizzano la salute delle colture in tempo reale. Poiché le batterie dei droni sono limitate, ogni bit di consumo energetico conta. Gli ingegneri scelgono specificamente modelli con FLOPs bassi, come le varianti Nano di YOLO26, per ridurre al minimo il carico sul processore di bordo, massimizzando così il tempo di volo e il raggio operativo.
- Realtà aumentata mobile: Le applicazioni per smartphone che utilizzano il facial recognition per la sicurezza o applicano filtri AR si basano fortemente su un'elaborazione efficiente. Queste app devono funzionare senza causare il surriscaldamento o il rallentamento del dispositivo. Gli sviluppatori utilizzano le stime dei FLOPs per selezionare modelli leggeri che si adattino comodamente alle capacità dei chipset mobili come la serie Snapdragon o i chip A-series chips di Apple.
Link to this sectionFLOPs vs. FLOPS (Floating Point Operations Per Second)#
È importante distinguere tra "FLOPs" (plurale di FLOP) e "FLOPS" (tutto in maiuscolo). Sebbene sembrino quasi identici, misurano cose diverse. I FLOPs (con la 's' minuscola) si riferiscono alla quantità totale di operazioni richieste da un modello: è una misura statica della complessità. I FLOPS (con la 'S' maiuscola) sta per Floating Point Operations Per Second e misura la velocità o la capacità di prestazione dell'hardware, come una GPU. Puoi pensare ai FLOPs come alla distanza che un'auto deve percorrere (il lavoro da svolgere), mentre i FLOPS sono la velocità massima dell'auto (la capacità dell'hardware di svolgere il lavoro).
Link to this sectionMisurare i FLOPs con Python#
Puoi calcolare facilmente il costo computazionale di un modello Ultralytics utilizzando Python. Questo è particolarmente utile durante la fase di model optimization per assicurarti che la tua neural network rientri nel tuo budget hardware. L'esempio seguente mostra come caricare un modello YOLO26 e determinarne i FLOPs.
from ultralytics import YOLO
from ultralytics.utils.torch_utils import get_flops
# Load a lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Calculate and print the model's FLOPs (Billions of operations)
# This gives you a hardware-independent complexity metric
flops = get_flops(model)
print(f"Model FLOPs: {flops:.2f} Billion")Link to this sectionRidurre i FLOPs per l'efficienza#
Per rendere i modelli più distribuibili, i ricercatori utilizzano diverse tecniche per ridurre i FLOPs senza sacrificare significativamente la precisione. Il model pruning comporta la rimozione di connessioni meno importanti nella neural network, snellendola efficacemente. Un'altra tecnica è la quantization, che riduce la precisione dei numeri utilizzati nei calcoli (ad esempio, da virgola mobile a 32 bit a interi a 8 bit). Gli strumenti disponibili sulla Ultralytics Platform aiutano a semplificare questi processi di ottimizzazione, rendendo più facile distribuire modelli efficienti su target come TensorRT o OpenVINO. Comprendendo e ottimizzando i FLOPs, puoi costruire sistemi AI che siano al contempo potenti e sostenibili.






