Co je to kontinuální batchování a jak je implementováno v vLLM/TGI?
sobes.tech AI
Odpověď od AI
Nepřetržité dávkování je technika zpracování požadavků na model strojového učení, při které jsou příchozí požadavky na inference shromažďovány kontinuálně a dynamicky do dávky, aby bylo možné maximálně využít výpočetní zdroje a snížit zpoždění. Namísto čekání na pevný čas nebo pevný počet požadavků systém neustále vytváří dávky z přicházejících požadavků a spouští je.
V vLLM a TGI (Text Generation Inference) je nepřetržité dávkování realizováno prostřednictvím asynchronního čekání a dynamického vytváření dávky. Například, když přijde požadavek, je zařazen do fronty a motor se snaží vytvořit dávku z několika požadavků, aniž by příliš zdržoval první. Pokud nejsou žádné nové požadavky, dávka se spustí s tím, co je. To umožňuje současně zpracovávat několik požadavků, efektivně využívat GPU a minimalizovat zpoždění pro každý požadavek.
Přibližně to vypadá takto:
- Požadavky přicházejí do fronty.
- Systém čeká, dokud nedosáhne maximální velikosti dávky nebo nevyprší časový limit.
- Dávka je vytvořena a odeslána modelu.
- Výsledky jsou rozděleny zpět na požadavky.
Tento přístup je obzvláště užitečný pro transformátory, kde je zpracování dávky mnohem efektivnější ve srovnání s jednotlivými požadavky.