Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Inference Latency

La latenza di inferenza è il tempo impiegato da un modello per trasformare un input in una previsione. Da cosa dipende, come misurarla e qual è il compromesso con il throughput.

La latenza di inferenza è il tempo che un modello di machine learning addestrato impiega per trasformare un singolo input, come un fotogramma della videocamera o un prompt testuale, in una previsione. Di solito si misura in millisecondi (ms) e determina la rapidità di reazione di un sistema: una videocamera che opera a 30 fotogrammi al secondo acquisisce un nuovo fotogramma ogni 33,3 ms, quindi un rilevatore che impiega più tempo accumula ritardo rispetto al flusso e non può più supportare l'inferenza in tempo reale. La latenza viene indicata per il solo passaggio forward o da un estremo all'altro, dall'input grezzo all'output utilizzabile; nei sistemi di produzione si monitorano percentili come la mediana (p50) e il 99º percentile (p99), perché poche risposte lente possono contare quanto la media.

Fattori che contribuiscono alla latenza di inferenza#

Una singola previsione attraversa diverse fasi. Il preprocessing decodifica, ridimensiona e normalizza l'input. Il passaggio forward esegue la rete; il suo costo cresce con i FLOPs del modello, la risoluzione dell'input e la precisione numerica, mentre la velocità dipende dal processore: CPU, GPU o unità di elaborazione neurale (NPU). Il postprocessing trasforma gli output grezzi in risultati; per un rilevatore, decodifica i riquadri ed esegue la soppressione dei massimi non locali (NMS). Una API cloud aggiunge il tempo di andata e ritorno della rete e quello che la richiesta trascorre in coda, motivo per cui l'IA edge esegue i modelli sul dispositivo che acquisisce i dati. Anche la prima chiamata è più lenta delle successive, perché i framework allocano memoria, caricano i pesi nelle cache e selezionano i kernel al primo utilizzo.

L'hardware e il runtime modificano il passaggio forward di un ordine di grandezza o più: Ultralytics YOLO26 nano impiega in media 38,9 ms per immagine COCO da 640 pixel con ONNX su CPU e 1,7 ms con TensorRT su una GPU NVIDIA T4. Ultralytics YOLO registra i tempi per fase di ogni predizione nell'attributo speed del risultato, e la modalità benchmark ripete la misurazione per ogni formato di esportazione:

from ultralytics import YOLO

# Load the smallest YOLO26 detection model
model = YOLO("yolo26n.pt")

# Predict on one image
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]

# Per-image time in milliseconds for each stage of the pipeline
for stage, ms in result.speed.items():
    print(f"{stage}: {ms:.1f} ms")

Il ciclo stampa i tempi di preprocessing, inferenza e postprocessing; la loro somma corrisponde alla latenza del modello per quell'immagine sul dispositivo corrente.

Misurare la latenza con precisione#

I valori di latenza sono confrontabili solo se vengono misurati nello stesso modo. Per ottenere misurazioni affidabili, si scartano alcune esecuzioni di riscaldamento, si cronometra un numero elevato di esecuzioni e si riportano la mediana e un percentile di coda anziché il risultato di una singola esecuzione. Sulle GPU il timer deve attendere il dispositivo, ad esempio con torch.cuda.synchronize(), perché i kernel vengono avviati in modo asincrono e una lettura anticipata dell'orologio interrompe la misurazione prima che il lavoro sia terminato. Dimensione dell'input, dimensione del batch, precisione e dispositivo devono corrispondere all'ambiente di distribuzione, perché la latenza di un modello su una GPU di un data center dice poco sulla sua latenza su un telefono. I FLOPs stimano il costo senza considerare l'hardware, ma modelli con lo stesso numero di FLOPs possono avere velocità molto diverse sullo stesso dispositivo.

Latenza di inferenza e throughput#

Il throughput è il numero di input elaborati da un sistema per unità di tempo, ad esempio immagini al secondo o token al secondo, e spesso varia in senso opposto alla latenza. Un batch più grande tiene l'hardware più occupato e aumenta il throughput, ma ogni input del batch deve attendere che l'intero batch venga elaborato, quindi aumenta anche il tempo necessario per rispondere a ogni richiesta:

import time

import torch
import torchvision

# A ResNet-18 image classifier in inference mode on the CPU
model = torchvision.models.resnet18().eval()

for batch in [1, 2, 4, 8]:
    x = torch.randn(batch, 3, 224, 224)
    with torch.inference_mode():
        model(x)  # warmup run, not timed
        times = []
        for _ in range(20):
            start = time.perf_counter()
            model(x)
            times.append(time.perf_counter() - start)
    latency = sorted(times)[len(times) // 2]  # median seconds per batch
    print(f"batch {batch}: {latency * 1e3:5.1f} ms per batch, {batch / latency:4.0f} images/s")

Su una CPU portatile, passando da un batch di dimensione 1 a uno di dimensione 8, il throughput è aumentato da 168 a 220 immagini al secondo, mentre il tempo per restituire un batch è passato da 6 ms a 36 ms. I sistemi interattivi, come l'assistenza alla guida e gli assistenti vocali, usano quindi batch di dimensione 1, mentre i processi offline, come l'indicizzazione di un archivio video, elaborano batch molto grandi. I server LLM usano il batching continuo, che aggiunge e rimuove richieste da un batch in esecuzione per mantenere alto il throughput senza far attendere ciascun utente per l'elaborazione di un batch intero.

Ridurre la latenza di inferenza#

I miglioramenti maggiori derivano in genere dalla riduzione dei calcoli: una variante di modello più piccola, una risoluzione di input più bassa o meno pesi grazie al pruning del modello. La quantizzazione del modello a FP16 o INT8 rende meno costosa ogni operazione rimanente sull'hardware dotato di unità rapide a bassa precisione. Esportare il modello in un motore di inferenza ottimizzato, come TensorRT, OpenVINO o ONNX Runtime, fonde i livelli e seleziona i kernel più veloci per il dispositivo. Eseguire il modello direttamente sul dispositivo elimina il tempo di andata e ritorno della rete, che con una connessione mobile spesso costa decine di millisecondi.

Dove conta la latenza#

  • Modelli linguistici di grandi dimensioni (LLM): i servizi di chat monitorano il tempo al primo token, percepito dagli utenti come reattività, e il tempo per token di output, che determina la velocità di streaming. La decodifica speculativa riduce il secondo verificando diversi token proposti in un unico passaggio forward.
  • Ispezione industriale: una videocamera sopra un nastro trasportatore deve classificare ogni pezzo prima che raggiunga il punto di scarto, quindi la latenza determina la velocità massima della linea.
  • Veicoli autonomi: percezione, pianificazione e controllo condividono un budget ristretto; a 100 km/h un'auto percorre 2,8 metri durante ogni ritardo di 100 ms.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning