Czym jest ciągłe grupowanie i jak jest realizowane w vLLM/TGI?
sobes.tech AI
Odpowiedź od AI
Ciągłe batchowanie to technika obsługi zapytań do modelu uczenia maszynowego, w której przychodzące zapytania inferencyjne są zbierane w partie w sposób ciągły i dynamiczny, aby maksymalnie efektywnie wykorzystać zasoby obliczeniowe i zmniejszyć opóźnienia. Zamiast czekać na ustalony czas lub określoną liczbę zapytań, system nieustannie tworzy partie z nadchodzących zapytań i je uruchamia.
W vLLM i TGI (Text Generation Inference) ciągłe batchowanie realizowane jest przez asynchroniczne oczekiwanie i dynamiczne tworzenie partii. Na przykład, gdy przychodzi zapytanie, jest ono umieszczane w kolejce, a silnik próbuje utworzyć partię z kilku zapytań, nie opóźniając zbytnio pierwszego z nich. Jeśli nie ma nowych zapytań, partia jest uruchamiana z tym, co jest. Pozwala to jednocześnie przetwarzać wiele zapytań, efektywnie korzystając z GPU i minimalizując opóźnienia dla każdego z nich.
Przybliżony schemat wygląda tak:
- Zapytania trafiają do kolejki.
- System czeka na osiągnięcie maksymalnego rozmiaru partii lub upływ czasu oczekiwania.
- Tworzona jest partia i wysyłana do modelu.
- Wyniki są rozdzielane z powrotem do zapytań.
Takie podejście jest szczególnie przydatne dla transformerów, gdzie przetwarzanie w partiach jest znacznie bardziej efektywne w porównaniu do pojedynczych zapytań.