Cos'è il batching continuo e come viene implementato in vLLM/TGI?
sobes.tech AI
Risposta dell'AI
Il batch continuo è una tecnica di elaborazione delle richieste a un modello di machine learning, in cui le richieste di inferenza in arrivo vengono raccolte in batch in modo continuo e dinamico, per utilizzare al massimo le risorse computazionali e ridurre la latenza. Invece di aspettare un tempo fisso o un numero fisso di richieste, il sistema forma costantemente batch dalle richieste in arrivo e le elabora.
In vLLM e TGI (Text Generation Inference), il batch continuo viene realizzato tramite attesa asincrona e formazione dinamica di batch. Ad esempio, quando arriva una richiesta, viene inserita in una coda, e il motore cerca di formare un batch con più richieste, senza ritardare troppo la prima richiesta. Se non ci sono nuove richieste, il batch viene avviato con quello che si ha. Questo permette di elaborare più richieste contemporaneamente, utilizzando efficacemente la GPU e minimizzando la latenza per ogni richiesta.
Approssimativamente, funziona così:
- Le richieste arrivano in coda.
- Il sistema aspetta fino a raggiungere la dimensione massima del batch o che scada il timeout.
- Viene formato un batch e inviato al modello.
- I risultati vengono distribuiti nuovamente alle richieste.
Questo approccio è particolarmente utile per i trasformatori, dove l'elaborazione in batch è molto più efficiente rispetto alle richieste singole.