Domowy serwer AI potrzebuje oddzielnych kolejek zadań, ponieważ żądania interaktywne i zadania działające w tle mają różne wymagania dotyczące opóźnień, pamięci, ponawiania prób i zakończenia.
Jedna maszyna może obsługiwać czat, sterowanie głosowe, import dokumentów, embeddingi, analizę zdjęć, pobieranie modeli, przepływy pracy agentów i zaplanowane podsumowania. Pojedyncza kolejka FIFO traktuje te zadania jako równoważne, mimo że pięciosekundowe opóźnienie jest akceptowalne przy indeksowaniu, ale uciążliwe w przypadku polecenia głosowego. Długie zadania mogą również zarezerwować pamięć lub przepustowość pamięci masowej, zanim nadejdą krótkie żądania. Oddzielne kolejki uwidaczniają klasy obciążeń, dzięki czemu zasady przyjmowania zadań, priorytetów, współbieżności i odzyskiwania mogą chronić funkcje domowe, które muszą odpowiadać w pierwszej kolejności.
Jedna kolejka FIFO powoduje blokowanie na początku kolejki
Długi prompt, żądanie obrazu, ładowanie modelu lub partia embeddingów znajdujące się na początku jednej kolejki mogą opóźnić wiele krótkich żądań znajdujących się za nimi.
FastServe rozwiązuje problem blokowania na początku kolejki za pomocą planowania z wywłaszczaniem i wielu poziomów priorytetów zamiast obsługi do pełnego zakończenia zadania.
Domowy serwer nie potrzebuje takiej samej rozproszonej architektury, aby zastosować tę zasadę. Krótkie zadania interaktywne nie powinny czekać za żądaniem działającym przez nieznany czas tylko dlatego, że nadeszły później.
Zadania interaktywne i działające w tle wymagają różnych celów obsługi
Sterowanie głosowe, czat i wywołania automatyzacji zależą od czasu oczekiwania w kolejce oraz czasu do wygenerowania pierwszego tokena. Embeddingi, indeksowanie i nocne podsumowania wymagają przede wszystkim wysokiej przepustowości i ostatecznego zakończenia.
JITServe analizuje różne cele opóźnień dla żądań, których kompleksowe przepływy pracy i terminy nie są równoważne.
Umieść zadania interaktywne w kolejce o niskich opóźnieniach i ograniczonej współbieżności. Zadania zbiorcze umieść w kolejce nastawionej na przepustowość, która może wstrzymywać, grupować lub ustępować miejsca, gdy rośnie zapotrzebowanie domowników.
Priorytet powinien uwzględniać starzenie, aby stale zajęta usługa czatu nie zagłodziła na zawsze zadań konserwacyjnych.
Prefill, dekodowanie i przygotowanie modeli mogą wzajemnie się blokować
Długi etap prefill wykorzystuje moc obliczeniową inaczej niż dekodowanie tokenów, a ładowanie modeli i przygotowywanie pamięci podręcznej może oczekiwać na transfery danych z pamięci masowej i do pamięci operacyjnej.
DistServe rozdziela prefill i dekodowanie, ponieważ ich współlokowanie może pogorszyć opóźnienia, nawet gdy zagregowane wykorzystanie zasobów wygląda na wysokie.
Oddzielne kolejki pozwalają aktywnym rozmowom nadal otrzymywać czas na dekodowanie, podczas gdy duże prompty dokumentów trafiają kontrolowaną ścieżką prefill.
Kolejka ładowania modeli może również ograniczyć liczbę zimnych modeli, które jednocześnie konkurują o przepustowość dysku i pamięć akceleratora.
Gotowe zadania nie powinny czekać za zadaniami przygotowawczymi
Niektóre żądania można wykonać od razu, ponieważ ich model i stan pamięci podręcznej są już dostępne. Inne wymagają najpierw przywrócenia danych z wolniejszej pamięci masowej lub załadowania modelu.
Bidaw wykorzystuje dwie kolejki żądań, aby gotowe zadania nie czekały za żądaniami, których stan trzeba najpierw przygotować.
Domowym odpowiednikiem jest unikanie zajmowania kolejki interaktywnej żądaniem, którego nie można wykonać, dopóki nie zakończy się pobieranie modelu o rozmiarze dziesięciu gigabajtów lub przywracanie pamięci podręcznej.
Kolejki pamięci masowej i procesora również wymagają rozdzielenia
Zadania AI konkurują nie tylko o zasoby akceleratora. OCR, parsowanie plików PDF, tokenizacja, zapisywanie wektorów, tworzenie miniatur, kopie zapasowe i odczyty modeli mogą przeciążyć kolejki procesora i pamięci masowej.
Analiza ZimaSpace dotycząca rywalizacji o kolejkę pamięci masowej pokazuje, dlaczego długotrwałe zadania zbiorcze mogą opóźniać interaktywne aplikacje hostowane samodzielnie, jeszcze zanim uwzględni się planowanie GPU.
Ogranicz głębokość operacji wejścia-wyjścia w tle, w miarę możliwości rozdziel ścieżki modeli i baz danych oraz wstrzymuj skanowanie całej biblioteki w godzinach szczytowego użytkowania przez domowników.
Polityka kolejek, która chroni czas GPU, ale pozwala procesom OCR w tle wykorzystać wszystkie rdzenie CPU, nadal nie zapewnia niskich opóźnień pobierania danych dla czatu.
Polityki kolejek wymagają kontroli przyjmowania, limitów i obserwowalności
Samo nadanie kolejkom oddzielnych nazw nie zapewnia izolacji. Każda kolejka potrzebuje limitu współbieżności, budżetu pamięci, priorytetu, zasad ponawiania prób, limitu czasu oraz reguły pożyczania niewykorzystanych zasobów.
Agentix traktuje zależności przepływu pracy jako informację przy planowaniu, dzięki czemu krótkie wywołanie odblokowujące kolejne etapy może otrzymać odpowiednią obsługę.
Mierz głębokość kolejki, czas oczekiwania najstarszego zadania, uruchomione zadania, zarezerwowaną pamięć, wywłaszczenia, liczbę ponowień oraz opóźnienia według klas obciążeń. Alerty powinny wskazywać, która kolejka nie osiąga wyznaczonego celu.
Praktyczna konstrukcja powinna wykorzystywać zasoby w sposób ciągły: kolejki zadań w tle korzystają z wolnych zasobów, ale zadania interaktywne mogą je odzyskać bez destabilizowania już uruchomionych zadań.
FAQ
Czy domowy serwer AI potrzebuje osobnej fizycznej maszyny dla każdej kolejki?
Nie. Kolejki są granicami planowania. Mogą współdzielić jedną maszynę, jednocześnie egzekwując różne priorytety, limity współbieżności i budżety zasobów.
Czy zadania działające w tle powinny zawsze zatrzymywać się po rozpoczęciu rozmowy?
Niekoniecznie. Mogą działać przy ograniczonej współbieżności, jeśli pozostaje wystarczający zapas procesora, pamięci, pamięci masowej i zasobów akceleratora.
Czy kontenery mogą zastąpić oddzielne kolejki?
Kontenery izolują procesy, ale nie zapewniają automatycznie sprawiedliwego planowania ani kontroli przyjmowania zadań dla wielu obciążeń AI.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Jakie funkcje umożliwiają utworzenie domowej granicy zaufania AI wokół wrażliwych plików?
Domowa granica zaufania dla AI łączy szyfrowanie danych w spoczynku, uprawnienia zgodne z zasadą najmniejszych przywilejów, sandboxing w czasie działania oraz zakresowe pobieranie danych...

Co powoduje, że prywatne wyniki wyszukiwania faworyzują często edytowane pliki?
Często edytowane pliki zyskują przewagę w rankingu, gdy każda aktualizacja dodaje sygnały świeżości, fragmentów, wersji lub interakcji bez normalizacji względem źródła.

Co powoduje, że modele obecności w inteligentnym domu mylą gości z mieszkańcami?
Goście mogą wyglądać jak domownicy, gdy system obserwuje wzorce aktywności gospodarstwa domowego, ale nie ma stabilnego sygnału tożsamości osoby, która je generuje.

