Grupowanie zadań AI w domu zwiększa całkowitą przepustowość dzięki łączeniu kompatybilnych operacji, ale każda prośba może czekać dłużej lub dzielić wolniejsze iteracje z innymi użytkownikami.
Pojedynczy prompt może natychmiast trafić do nieużywanego akceleratora, podczas gdy serwer rodzinny często obsługuje jednocześnie czaty, prompty dotyczące dokumentów, żądania głosowe i zadania działające w tle. Środowisko uruchomieniowe może przez chwilę przetrzymać żądanie, aby utworzyć pakiet, dodawać nowe sekwencje między iteracjami dekodowania albo dzielić długie fazy prefill na mniejsze fragmenty. Takie decyzje pozwalają lepiej wykorzystać akcelerator, ale zmieniają też czas do uzyskania pierwszego tokena, opóźnienie między tokenami i sprawiedliwość obsługi. Poniższe sekcje wyjaśniają, kiedy grupowanie pomaga oraz kiedy wzrost przepustowości przestaje poprawiać interaktywne korzystanie z systemu.
Grupowanie zamienia wolne zasoby akceleratora we wspólną pracę
Pojedyncze żądanie może nie wykorzystywać efektywnie wszystkich równoległych torów wykonywania, zwłaszcza podczas małych operacji macierzowych lub obsługi krótkich sekwencji. Połączenie kilku żądań tworzy większe operacje tensorowe, które mogą skuteczniej wykorzystywać akcelerator.
Orca wprowadziła planowanie na poziomie iteracji, pozwalając żądaniom dołączać do grupy i opuszczać ją między iteracjami generowania, zamiast wymuszać pozostawanie jednej stałej grupy razem do zakończenia wszystkich sekwencji.
Zysk mierzy się liczbą ukończonych tokenów lub żądań w jednostce czasu. Nie gwarantuje to, że którykolwiek użytkownik szybciej otrzyma token.
Okno grupowania dodaje czas oczekiwania przed rozpoczęciem obliczeń
Środowisko uruchomieniowe, które czeka na kolejne żądania, może utworzyć większą i wydajniejszą grupę, ale pierwsze żądanie ponosi koszt tego oczekiwania, nawet gdy akcelerator był dostępny.
kompromis między przepustowością a opóźnieniem staje się widoczny, gdy większe grupy poprawiają wydajność urządzenia, jednocześnie wydłużając czas kolejkowania lub iteracji.
Interaktywne AI w domu zwykle wymaga krótkiego lub adaptacyjnego okna grupowania. Osadzanie w tle może tolerować dłuższe oczekiwanie, ponieważ jego celem jest wykonanie pracy, a nie szybka odpowiedź w rozmowie.
Długie fazy prefill mogą blokować krótkie zadania dekodowania
Przetwarzanie promptu wykonuje intensywną obliczeniowo fazę prefill, podczas gdy aktywne rozmowy wielokrotnie wracają do ograniczonych przepustowością pamięci kroków dekodowania. Połączenie ich w jednej grupie może sprawić, że krótkie interaktywne dekodowanie będzie czekać za długim promptem dotyczącym dokumentu.
DistServe izoluje zakłócenia między fazami prefill i dekodowania, ponieważ obie fazy mają inne charakterystyki zasobów i opóźnień.
Prefill porcjowany jest rozwiązaniem kompromisowym: dzieli długi prompt, aby żądania dekodowania mogły działać między kolejnymi fragmentami, ale dokument potrzebuje większej liczby rund planowania, by zakończyć przetwarzanie.
Najlepsze ustawienie zależy od tego, czy serwer ma priorytetowo obsłużyć jedno długie zadanie analityczne, czy kilku użytkowników, którzy już otrzymują strumieniowane odpowiedzi.
Różne długości sekwencji sprawiają, że każda grupa jest nierówna
Żądania różnią się długością promptu, długością odpowiedzi, warunkami zatrzymania i funkcjami modelu. Niektóre kończą się szybko, podczas gdy inne pozostają aktywne, dlatego skład grupy stale się zmienia.
vLLM korzysta z ciągłego grupowania oraz stronicowanej pamięci podręcznej KV, aby przyjmować nowe żądania, gdy tylko zwolni się miejsce, zamiast czekać na ustaloną granicę grupy.
Nawet przy wydajnym zarządzaniu pamięcią jedna bardzo długa odpowiedź zużywa sloty dekodowania i pamięć podręczną KV przez wiele iteracji. Dlatego rozmiar grupy należy określać na podstawie budżetów tokenów i pamięci, a nie tylko liczby żądań.
Większe grupy mogą obniżyć szybkość tokenów dla pojedynczego użytkownika
Całkowita liczba tokenów na sekundę może wzrosnąć, podczas gdy każdy użytkownik otrzymuje mniejszą część iteracji dekodowania. Panel pokazujący wyższą łączną przepustowość może współistnieć z wolniejszym widocznym strumieniowaniem odpowiedzi.
Przewodnik ZimaSpace dotyczący równoczesnej pracy rodziny wyjaśnia, dlaczego testy z jednym użytkownikiem nie przewidują opóźnień przy kilku nakładających się rozmowach.
Oprócz łącznej przepustowości mierz czas do uzyskania pierwszego tokena, czas między tokenami oraz czas ukończenia każdego żądania. W przeciwnym razie grupowanie może być dostrajane pod kątem metryki, której użytkownicy bezpośrednio nie odczuwają.
Ustal różne zasady grupowania dla pracy interaktywnej i zadań w tle
Dla głosu i czatu zarezerwuj krótkie okna kolejkowania, ograniczoną współbieżność i wyższy priorytet. Dla osadzania, indeksowania, tworzenia podsumowań i transformacji offline pozwól na większe grupy oraz niższy priorytet.
Badania nad sprawiedliwą obsługą LLM wykorzystują sprawiedliwość uwzględniającą tokeny, aby długi tekst wejściowy lub wyjściowy jednego żądania nie zajmował przez długi czas nieproporcjonalnej części zasobów.
Testuj system przy reprezentatywnym obciążeniu rodzinnym, a nie tylko przy maksymalnym rozmiarze grupy. Użyteczna konfiguracja zapewnia najwyższą przepustowość, która nadal spełnia wymagania dotyczące czasu do pierwszego tokena i opóźnienia strumieniowania na ścieżce interaktywnej.
Gdy jeden akcelerator nie może obsłużyć obu klas zadań, prostszym rozwiązaniem niż jedna uniwersalna polityka grupowania może być rozdzielenie procesów roboczych lub harmonogramów.
FAQ
Czy grupowanie zawsze zwiększa opóźnienie?
Nie. Wydajne grupowanie może skrócić czas opróżniania kolejki i zapobiegać przeciążeniom, ale oczekiwanie na utworzenie grupy oraz dzielenie dłuższych iteracji może zwiększyć opóźnienie pojedynczego żądania.
Czy rozmiar grupy oznacza liczbę użytkowników?
Nie dokładnie. Środowiska uruchomieniowe mogą ustalać budżet na podstawie aktywnych sekwencji, tokenów, bloków KV lub całkowitego nakładu pracy, a jeden użytkownik może generować kilka równoczesnych żądań.
Czy żądania głosowe należy grupować z zadaniami osadzania?
Zwykle nie w ramach tej samej polityki opóźnień. Głos jest interaktywny, podczas gdy zadania osadzania mogą czekać i wykorzystywać większe grupy, gdy pozostają wolne zasoby.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Dlaczego przewidywania dotyczące inteligentnego domu stają się mniej trafne po sezonowych zmianach rutyny?
Sezonowe rutyny zmieniają zależność między czasem, czujnikami, obecnością domowników a pożądanymi działaniami, przez co model wytrenowany na podstawie wcześniejszych nawyków staje się nieaktualny.

Dlaczego domowy rejestrator NVR pomija krótkie zdarzenia, gdy włączone jest śledzenie obiektów?
Śledzenie wymaga wystarczającej liczby detekcji, aby rozpocząć i potwierdzić trajektorię, dlatego obiekt obecny przez krótki czas może zniknąć, zanim rejestrator NVR utworzy prawidłowe zdarzenie.

Dlaczego etykiety zdjęć generowane przez AI zmieniają się po aktualizacji modelu?
Aktualizacja modelu zmienia sposób reprezentacji i ustalania rankingu używanych do przypisywania etykiet, dlatego to samo zdjęcie może przekroczyć inne granice semantyczne lub poziomy pewności.

