Continuous Batching
Impara come il continuous batching ottimizza il throughput della GPU e riduce la latenza. Scopri come usare Ultralytics YOLO26 per massimizzare l'efficienza nelle attività di ML in produzione.
Il continuous batching è una tecnica avanzata di scheduling 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 che si accumuli un numero predeterminato di richieste prima di elaborarle simultaneamente. Questo spesso causa inefficienze poiché il sistema deve attendere il completamento della richiesta più lunga nel batch prima di liberare le risorse. Il continuous batching, noto anche come batching dinamico o a livello di iterazione, risolve il problema iniettando nuove richieste nel batch di calcolo non appena una richiesta attiva viene completata, riducendo significativamente i tempi di inattività sulle GPUs e migliorando l'efficienza complessiva.
Link to this sectionDistinguere concetti correlati#
Per comprendere meglio come i dati vengono elaborati 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 l'addestramento o l'inferenza. I flussi di lavoro di elaborazione batch tradizionali si basano su dimensioni statiche, mentre il continuous batching consente alla dimensione effettiva del batch di variare dinamicamente in base al traffico in entrata.
- Real-Time Inference: questo concetto si concentra sulla riduzione al minimo della latenza di inferenza per predizioni immediate, elaborando singoli input non appena arrivano. Il continuous batching colma il divario tra l'elevato throughput del batching statico 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 si servono 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 completate con nuovi prompt. Questo metodo, originariamente reso popolare dalla ricerca sullo scheduling a livello di iterazione, migliora drasticamente il throughput di generazione del testo.
-
Analisi video asincrona: nelle attività di video understanding, come il tracciamento dei veicoli attraverso una rete di telecamere stradali, i fotogrammi arrivano a intervalli diversi. Il continuous batching consente ai modelli di object tracking di elaborare dinamicamente i fotogrammi 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 pratiche di deployment di modelli ad alto traffico, lo streaming iterativo delle inferenze può 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 in modo efficiente un flusso continuo di immagini.
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 dello scheduling delle risorse a livello di sistema richiede un equilibrio tra velocità pura e costi operativi. I team che implementano modelli massicci di computer vision (CV) e linguaggio si affidano sempre più a framework di serving avanzati per gestire questi batch dinamici. Per i team aziendali che cercano di semplificare la propria infrastruttura, la Ultralytics Platform offre strumenti robusti per l'addestramento, il monitoraggio e l'esportazione di modelli in ambienti di produzione altamente ottimizzati.






