Continuous Batching
Scopri come la continuous batching ottimizza il throughput della GPU e riduce la latenza. Scopri come usare Ultralytics YOLO26 per massimizzare l'efficienza nei compiti di ML in produzione.
Il continuous batching è una tecnica avanzata di pianificazione e ottimizzazione dell'inferenza utilizzata nel machine learning (ML) per massimizzare l'utilizzo dell'hardware e il throughput. Nel batching statico tradizionale, un inference engine attende l'accumulo di un numero predeterminato di richieste prima di elaborarle simultaneamente. Ciò porta spesso a inefficienze, poiché il sistema deve attendere il completamento della richiesta più lunga nel batch prima di rilasciare le risorse. Il continuous batching, noto anche come batching dinamico o a livello di iterazione, risolve questo problema inserendo nuove richieste nel batch di calcolo non appena una richiesta attiva viene completata, riducendo significativamente i tempi di inattività su GPUs e migliorando l'efficienza complessiva.
Link to this sectionDistinguere concetti correlati#
Per comprendere meglio come vengono elaborati i dati durante il deployment del modello, è utile distinguere il continuous batching da altri termini correlati nel glossario:
- Batch Size: si riferisce al numero fisso di campioni elaborati simultaneamente durante il training o l'inferenza. I batch processing workflows tradizionali si basano su dimensioni statiche, mentre il continuous batching consente alla batch size effettiva di fluttuare dinamicamente in base al traffico in arrivo.
- Real-Time Inference: questo concetto si concentra sulla minimizzazione della inference latency per previsioni immediate, elaborando singoli input non appena arrivano. Il continuous batching colma il divario tra il batching statico ad alto throughput e l'inferenza real-time a bassa latenza, mantenendo un throughput elevato senza costringere le richieste veloci ad attendere quelle più lente.
Link to this sectionApplicazioni nel mondo reale#
Il continuous batching è fondamentale per i sistemi di produzione che gestiscono volumi elevati di richieste imprevedibili. Ecco due esempi concreti della sua applicazione:
-
Generazione di testo ad alto throughput: quando servi Large Language Models (LLMs), la generazione di risposte per utenti diversi richiede tempi variabili a seconda della lunghezza dell'output. I framework che sfruttano il continuous batching, come vLLM su Ray Serve, possono trasmettere continuamente i token appena generati e sostituire immediatamente le conversazioni terminate con nuovi prompt. Questo metodo, originariamente reso popolare dalla ricerca sulla pianificazione a livello di iterazione, migliora drasticamente il throughput di generazione del testo.
-
Analisi video asincrona: nelle attività di video understanding, come il monitoraggio dei veicoli attraverso la rete di telecamere stradali di una città, i frame arrivano a intervalli diversi. Il continuous batching consente ai modelli di object tracking di elaborare dinamicamente i frame video in arrivo nel millisecondo in cui le risorse si liberano, ottimizzando le pipeline di hardware acceleration per i dashboard delle smart city.
Link to this sectionElaborazione continua nelle attività di visione#
Quando gestisci model deployment practices ad alto traffico, le inferenze in streaming in modo iterativo possono simulare i vantaggi del batching dinamico garantendo che la memoria venga liberata progressivamente anziché bloccata. Il seguente esempio in Python mostra come utilizzare il pattern generatore con la model prediction API per gestire un flusso continuo di immagini in modo efficiente.
from ultralytics import YOLO
# Load the latest Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")
# Using stream=True acts as a generator, iteratively processing inputs
# to keep memory usage low and throughput high
results = model.predict(source=["img1.jpg", "img2.jpg", "img3.jpg"], stream=True)
# Process each result as soon as it completes
for result in results:
print(f"Detected {len(result.boxes)} objects in this frame.")La gestione del resource scheduling a livello di sistema richiede un equilibrio tra velocità pura e costi operativi. I team che distribuiscono enormi modelli di computer vision (CV) e di linguaggio fanno sempre più affidamento su framework di serving avanzati per gestire questi batch dinamici. Per i team aziendali che desiderano ottimizzare la propria infrastruttura, la Ultralytics Platform offre strumenti robusti per il training, il monitoraggio e l'esportazione di modelli in ambienti di produzione altamente ottimizzati.






