Wat is continue batching en hoe wordt het geïmplementeerd in vLLM/TGI?
sobes.tech AI
Antwoord van AI
Continu batching is een techniek voor het verwerken van verzoeken naar een machine learning-model, waarbij inkomende inferentieverzoeken continu en dynamisch worden verzameld in batches, om de rekenbronnen optimaal te benutten en de vertraging te verminderen. In plaats van te wachten op een vaste tijd of een vast aantal verzoeken, vormt het systeem voortdurend batches van de binnenkomende verzoeken en verwerkt ze.
In vLLM en TGI (Text Generation Inference) wordt continu batching gerealiseerd door middel van asynchroon wachten en dynamische batchvorming. Bijvoorbeeld, wanneer een verzoek binnenkomt, wordt het in een wachtrij geplaatst, en probeert de motor een batch te vormen uit meerdere verzoeken, zonder de eerste te lang te vertragen. Als er geen nieuwe verzoeken zijn, wordt de batch gestart met wat er is. Dit maakt het mogelijk om meerdere verzoeken gelijktijdig te verwerken, de GPU efficiënt te gebruiken en de vertraging voor elk verzoek te minimaliseren.
Dit ziet er ongeveer zo uit:
- Verzoeken komen in de wachtrij.
- Het systeem wacht tot de maximale batchgrootte is bereikt of de timeout is verlopen.
- Er wordt een batch gevormd en naar het model gestuurd.
- De resultaten worden terug verdeeld over de verzoeken.
Deze aanpak is vooral nuttig voor transformers, waar batchverwerking veel efficiënter is dan individuele verzoeken.