Ciągłe dozowanie
Ciągłe przetwarzanie wsadowe to technika udostępniania, która dodaje i usuwa żądania z działającej partii token po tokenie, zamiast czekać na zakończenie całej ustalonej partii.
Przegląd
It keeps the GPU constantly busy and sharply increases how many users an AI model can serve at once.
Głębokie nurkowanie
Procesory graficzne są najszybsze, gdy przetwarzają wiele żądań jednocześnie wsadowo. Naiwne podejście, statyczne wsadowanie, grupuje ustalony zestaw żądań, uruchamia je wszystkie do końca, a następnie rozpoczyna następną partię. Problem: dane wyjściowe modelu językowego różnią się znacznie długością, więc krótkie żądania kończą się wcześniej, a ich gniazda pozostają bezczynne, podczas gdy partia czeka na najdłuższy, marnując cykle GPU i opóźniając nowe nadejścia. Ciągłe przetwarzanie wsadowe (zwane także przetwarzaniem wsadowym w locie lub na poziomie iteracji, spopularyzowane przez artykuł Orca i stosowane w vLLM, TensorRT-LLM i TGI) działa z dokładnością pojedynczego etapu dekodowania. Po wygenerowaniu każdego tokena gotowe sekwencje opuszczają partię, a świeżo otrzymane żądania są natychmiast umieszczane w partiach. Dzięki temu partia jest pełna, a procesor graficzny nasycony, często kilkakrotnie zwiększając przepustowość i zmniejszając opóźnienia dla oczekujących użytkowników.
Wgląd techniczny
Kluczowa zmiana polega na przejściu od grupowania całych żądań do grupowania pojedynczych iteracji. Na każdym etapie dekodowania program planujący tworzy aktywny zestaw: uruchamia jedno przejście w przód przez wszystkie sekwencje w locie, emituje po jednym toenie, eksmituje te, które osiągnęły limit tokenu końca sekwencji lub limitu długości, i akceptuje oczekujące w kolejce żądania wypełnienia zwolnionych miejsc. W połączeniu z elastyczną pamięcią KV PagedAttention sprawia, że wstawianie i usuwanie sekwencji w trakcie lotu jest tanie, ponieważ pamięć podręczna każdej sekwencji żyje w niezależnych blokach.
Wpływ strategiczny
Koszt i budżet
Decyzje dotyczące architektury wpływają na wydajność i koszty operacyjne przez lata.
Jaśniejsze decyzje
Edukacja techniczna pomaga zespołom wybrać odpowiedni stos, a nie tylko najnowszy.
Kontrola jakości
Lepsze wybory inżynieryjne zmniejszają liczbę incydentów związanych z niezawodnością w produkcji.
Przyszłość ciągłego dozowania
Ciągłe dozowanie jest obecnie standardem w produkcji LLM. Przyszłe prace udoskonalają harmonogram: oddzielanie fazy wstępnego wypełniania wymagającej dużej mocy obliczeniowej od lżejszej fazy dekodowania (dezagregacja), wstępne wypełnianie fragmentaryczne w celu uniknięcia opóźnień w dekodowaniu, zasady priorytetów i uczciwości dla mieszanych obciążeń oraz ściślejsze połączenie z dekodowaniem spekulatywnym, dzięki czemu wiele tokenów wersji roboczej jest sprawdzanych na każdym kroku. Celem jest wyciśnięcie maksymalnej liczby tokenów na sekundę na procesor graficzny przy jednoczesnym utrzymaniu niskiego i przewidywalnego opóźnienia indywidualnej reakcji.
Implementacja w świecie rzeczywistym
Interfejs API czatu, który natychmiast przyjmuje nowo otrzymane wiadomości użytkowników do działającej partii, zamiast umieszczać je w kolejce do następnej partii
Eksmitowanie krótkiej, zakończonej odpowiedzi w połowie partii i zapełnianie jej gniazda, aby procesor graficzny nigdy nie pozostawał bezczynny w oczekiwaniu na długą generację
Łączenie ciągłego przetwarzania wsadowego z funkcją PagedAttention vLLM w celu taniego wstawiania i usuwania sekwencji na każdym etapie dekodowania
Usługa uzupełniania kodu utrzymująca wysoką liczbę tokenów na sekundę w przypadku intensywnego ruchu o zmiennej długości, dzięki utrzymywaniu pełnej partii
Zagrożenia i poręcze
Optymalizacja jednego testu porównawczego może ukryć szersze słabości systemu.
Koszty infrastruktury i utrzymania są często niedoszacowane.
W miarę jak systemy stają się coraz bardziej złożone, luki w bezpieczeństwie i obserwowalności mogą się zwiększać.
Plan wdrożenia
Przed wdrożeniem zdefiniuj docelowe opóźnienia, jakość i koszty.
Test porównawczy w realistycznych warunkach obciążenia i danych.
Monitorowanie przyrządu pod kątem błędów, dryftu i wpływu użytkownika.
Przed skalowaniem przygotuj ścieżki wycofywania zmian i reakcji na incydenty.
Odkrywaj dalej
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Continuous Batching quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Następny poradnik
Kubernetes dla obciążeń ML
Często zadawane pytania
What is Continuous Batching?
Ciągłe przetwarzanie wsadowe to technika udostępniania, która dodaje i usuwa żądania z działającej partii token po tokenie, zamiast czekać na zakończenie całej ustalonej partii. Dzięki temu procesor graficzny jest stale zajęty i znacznie zwiększa liczbę użytkowników, których model AI może jednocześnie obsługiwać.
Jaka jest główna słabość statycznego (stałego) dozowania w przypadku obsługi LLM?
Ponieważ długości wyjściowe są różne, ukończone sekwencje pozostają bezczynne do czasu zakończenia najwolniejszej, marnując cykle procesora graficznego i opóźniając nowe żądania.
Z jaką szczegółowością ciągłe przetwarzanie wsadowe dodaje i usuwa żądania?
Ciągłe (na poziomie iteracji) przetwarzanie wsadowe aktualizuje aktywny zestaw po każdym pojedynczym kroku dekodowania, więc działa token po tokenie, a nie na całe żądanie.
Kiedy sekwencja kończy się w połowie partii w ramach ciągłego dozowania, co dzieje się z jej szczeliną?
Ukończone sekwencje są usuwane, a oczekujące żądania są natychmiast umieszczane w partiach, dzięki czemu partia jest pełna, a procesor graficzny zajęty.
Która technika łączy się naturalnie z ciągłym dozowaniem, aby sekwencje wstawiania/usuwania były tanie?
PagedAttention przechowuje pamięć podręczną KV każdej sekwencji w niezależnych blokach, więc dodanie lub usunięcie sekwencji w trakcie transmisji nie zakłóca pamięci innych osób.
Jakiemu artykułowi badawczemu powszechnie przypisuje się spopularyzowanie (ciągłego) przetwarzania wsadowego na poziomie iteracji?
W artykule Orca wprowadzono planowanie na poziomie iteracji, a pomysł został przyjęty w obsługujących systemach takich jak vLLM, TGI i TensorRT-LLM.