PRZEWODNIK techniczny

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.

2 minuty czytaniaOstatnia aktualizacja

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

1

Przed wdrożeniem zdefiniuj docelowe opóźnienia, jakość i koszty.

2

Test porównawczy w realistycznych warunkach obciążenia i danych.

3

Monitorowanie przyrządu pod kątem błędów, dryftu i wpływu użytkownika.

4

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.

Rozpocznij quiz

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.