Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Dosaggio continuo

Scopri come il batching continuo ottimizza GPU e riduce la latenza. Scopri come utilizzare Ultralytics per massimizzare l'efficienza nelle attività di ML in produzione.

Il batching continuo è una tecnica avanzata di ottimizzazione della pianificazione e dell'inferenza utilizzata nell' apprendimento automatico (ML) per massimizzare l'utilizzo dell'hardware e il throughput. Nel batching statico tradizionale, un motore di inferenza attende che si accumuli un numero predeterminato di richieste prima di elaborarle simultaneamente. Ciò spesso porta a inefficienze perché il sistema deve attendere il completamento della richiesta più lunga nel batch prima di rilasciare le risorse. Il batching continuo, 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 il tempo di inattività delle GPU e migliorando l'efficienza complessiva.

Distinguere i concetti correlati

Per comprendere meglio come vengono elaborati i dati durante l'implementazione del modello, è utile distinguere il batching continuo da altri termini correlati presenti nel glossario:

  • Dimensione del batch: si riferisce al numero fisso di campioni elaborati simultaneamente durante l'addestramento o l'inferenza. I tradizionali flussi di lavoro di elaborazione batch si basano su dimensioni statiche, mentre il batching continuo consente alla dimensione effettiva del batch di fluttuare dinamicamente in base al traffico in entrata.
  • Inferenza in tempo reale: questo concetto si concentra sulla riduzione al minimo della latenza dell'inferenza per previsioni immediate, elaborando i singoli input man mano che arrivano. Il batching continuo colma il divario tra il batching statico ad alta produttività e l'inferenza in tempo reale a bassa latenza, mantenendo un'elevata produttività senza costringere le richieste veloci ad attendere quelle più lente .

Applicazioni nel mondo reale

Il batching continuo è fondamentale per i sistemi di produzione che gestiscono volumi elevati di richieste imprevedibili. Ecco due esempi concreti della sua applicazione:

  1. Generazione di testo ad alta produttività: quando si utilizzano modelli linguistici di grandi dimensioni (LLM), la generazione di risposte per diversi utenti richiede tempi variabili a seconda della lunghezza dell'output. I framework che sfruttano il batching continuo, come vLLM su Ray Serve, possono trasmettere in streaming in modo continuo 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 notevolmente la produttività della generazione di testo.
  2. Analisi video asincrona: nelle attività di comprensione video, come il tracciamento dei veicoli attraverso la rete di telecamere del traffico di una città, i fotogrammi arrivano a intervalli diversi. Il batching continuo consente ai modelli di tracciamento degli oggetti di elaborare dinamicamente i fotogrammi video in arrivo nel millisecondo in cui le risorse si liberano, ottimizzando le pipeline di accelerazione hardware per i dashboard delle smart city.

Elaborazione continua nelle attività di visione

Quando si gestiscono pratiche di implementazione 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 Python mostra come utilizzare il modello generatore con l' API di previsione del modello 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 della pianificazione delle risorse a livello di sistema richiede un equilibrio tra velocità pura e costi operativi. I team che implementano modelli di visione artificiale (CV) e linguistici su larga scala si affidano sempre più spesso a framework di servizio avanzati per gestire questi batch dinamici. Per i team aziendali che desiderano ottimizzare la propria infrastruttura, la Ultralytics offre strumenti affidabili per la formazione, il monitoraggio e l'esportazione di modelli in ambienti di produzione altamente ottimizzati.

Potenziamento con Ultralytics YOLO

Ottieni una visione AI avanzata per i tuoi progetti. Trova oggi stesso la licenza giusta per i tuoi obiettivi.

Esplora le opzioni di licenza