Domowy serwer AI może wydawać się szybki dla jednego użytkownika, ale wolny dla rodziny, ponieważ współbieżne żądania dzielą zasoby obliczeniowe, pamięć i czas planowania.
Różnica pojawia się, gdy jedna osoba wysyła krótki prompt czatu podczas okresu bezczynności, a następnie kilku członków rodziny zaczyna długie rozmowy, streszczenia dokumentów, analizę obrazów, zadania głosowe lub przepływy pracy agentów jednocześnie. Test pojedynczego użytkownika ujawnia głównie opóźnienie modelu rozgrzanego; użycie rodzinne dodaje kolejkowanie, mieszane długości promptów, oddzielne pamięci podręczne rozmów, konkurujące fazy prefill i dekodowania oraz nieprzewidywalne długości wyjścia. Poniższe sekcje wyjaśniają, jak warstwa serwująca przekształca te różnice w wolniejsze pierwsze tokeny, nierównomierną generację i większe obciążenie pamięci.
Scheduler jest warstwą kontrolną stojącą za żądaniami rodzinnymi
Lokalny model nie odpowiada każdemu użytkownikowi niezależnie z nowej kopii sprzętu. Jeden proces serwujący odbiera żądania, decyduje, kiedy każdy prompt może wejść do modelu, grupuje kompatybilne zadania i przydziela ograniczony czas akceleratora oraz pamięć aktywnym rozmowom.
Nowoczesne systemy używają planowania żądań do równoważenia heterogenicznych promptów, migracji pracy i rozróżniania priorytetów opóźnień. Na domowym serwerze z jednym GPU lub współdzieloną pamięcią systemową ten scheduler nie może tworzyć nowej pojemności; decyduje tylko, jak istniejąca pojemność jest dzielona.
Dlatego dwa interfejsy podłączone do tego samego modelu mogą działać inaczej nawet w tej samej sieci. Żądanie, które trafia do pustej kolejki, zaczyna się szybko, podczas gdy równie krótkie żądanie może czekać za długim promptem, dużym obrazem lub rozbudowaną odpowiedzią innego użytkownika.
Dlaczego jeden użytkownik może sprawiać, że serwer wydaje się szybszy niż jest w rzeczywistości
Test pojedynczego użytkownika zwykle odbywa się w korzystnych warunkach: model jest już załadowany, akcelerator jest bezczynny, żadna inna zawartość nie zajmuje pamięci podręcznej, a żądanie rozpoczyna się bez kolejkowania. Widocznym efektem jest krótki czas do pierwszego tokena i stabilna generacja tokenów.
Serwowanie LLM ma udokumentowany kompromis między przepustowością a opóźnieniem. Grupowanie zadań może poprawić całkowitą wykonaną pracę, ale zwiększenie obciążenia może również wydłużyć opóźnienie doświadczane przez pojedyncze żądanie, zwłaszcza gdy serwer miesza przetwarzanie promptów z trwającą generacją.
Benchmark odpowiada więc na pytanie „Jak responsywny jest ten model, gdy prawie wszystkie zasoby należą do jednego żądania?” Nie odpowiada na pytanie „Ile żądań rodziny może spełnić ten sam cel czasu odpowiedzi?”
Przydatny test pojemności musi stopniowo dodawać użytkowników i mierzyć opóźnienie pierwszego tokena, czas między tokenami, czas oczekiwania w kolejce, użycie pamięci oraz wskaźnik ukończenia, zamiast podawać jedną najlepszą wartość tokenów na sekundę.
Wstępne wypełnienie i dekodowanie konkurują na różne sposoby
Każde żądanie zaczyna się od wstępnego wypełnienia, które przetwarza podpowiedź wejściową i buduje stan potrzebny do generowania. Dekodowanie następnie produkuje tokeny wyjściowe pojedynczo. Długi dokument lub rozmowa mogą sprawić, że wstępne wypełnienie będzie obciążające obliczeniowo, podczas gdy kilka aktywnych odpowiedzi wielokrotnie wraca do dekodowania.
Badania nad wstępnym wypełnieniem i dekodowaniem pokazują, że współlokalizacja obu faz może powodować interferencje i powiązać ich opóźnienia. W domu jedna osoba wklejająca długi dokument może opóźnić inną osobę, która już otrzymuje odpowiedź, mimo że ich żądania mają różne kształty.
Rodzina doświadcza dwóch objawów. Nowi użytkownicy mogą dłużej czekać na pierwszy token, podczas gdy aktywni użytkownicy mogą zauważyć nierówne przerwy między kolejnymi tokenami. Średnia przepustowość może pozostać akceptowalna, nawet gdy interaktywne doświadczenie staje się niestabilne.
Każda rozmowa zużywa własną pojemność pamięci podręcznej KV
Po wstępnym wypełnieniu serwer przechowuje tensory kluczy i wartości reprezentujące wcześniejsze tokeny, dzięki czemu nie musi ponownie obliczać całej rozmowy dla każdego nowego tokena wyjściowego. Dłuższe rozmowy i większa liczba jednoczesnych użytkowników powiększają ten zestaw roboczy.
Oryginalne badania vLLM wskazują pamięć podręczną KV jako główne ograniczenie rozmiaru partii i równoczesnej obsługi. Efektywne stronicowanie zmniejsza marnotrawstwo, ale każdy aktywny kontekst nadal wymaga rzeczywistej pamięci gdzieś na ścieżce inferencji.
Gdy dostępna pamięć GPU, współdzielona RAM lub pamięć akceleratora staje się ograniczona, serwer może przyjmować mniej żądań, przerywać pracę, skracać limity kontekstu, zrzucać stan pamięci podręcznej lub usuwać inny model. Te działania awaryjne mogą zamienić płynną pojedynczą rozmowę w skoki opóźnień obejmujące całą rodzinę.
Powiązane wyjaśnienie ZimaSpace dotyczące usuwania modeli opisuje jeden poważny przypadek: aktywne obciążenia wypierają model rezydentny, więc kolejne żądanie musi zapłacić koszt przeładowania i rozgrzania, zanim generowanie wróci do normy.
Obciążenia rodzinne są nierówne, nie tylko liczniejsze
Dwóch użytkowników niekoniecznie oznacza dokładne zmniejszenie wydajności o połowę. Jeden może zadać krótkie pytanie faktograficzne, podczas gdy drugi przesyła długi plik PDF, żąda dużej odpowiedzi, uruchamia rozpoznawanie obrazów lub startuje agenta wykonującego wielokrotne wywołania modelu.
Harmonogramy LLM muszą radzić sobie z nierównymi kosztami żądań, ponieważ długości promptów i wyników zmieniają się nieprzewidywalnie. Bez limitów lub sprawiedliwego harmonogramowania jedna ciężka sesja może zajmować zasoby kolejki, obliczeń i pamięci podręcznej znacznie dłużej niż kilka lekkich czatów.
Poniższa tabela pokazuje, dlaczego sama liczba użytkowników to niepełny wskaźnik pojemności.
| Aktywność rodziny | Główne współdzielone zasoby | Prawdopodobny widoczny efekt |
|---|---|---|
| Kilka krótkich czatów | Sloty dekodowania i czas planisty | Mniejsza liczba tokenów na sekundę na użytkownika |
| Jeden długi dokument plus aktywne czaty | Obliczenia wstępne i opóźnienia dekodowania | Wolny pierwszy token i nierównomierne przesyłanie strumieniowe |
| Kilka długich rozmów | Pamięć podręczna KV | Kolejkowanie, preempcja lub krótsze limity kontekstu |
| Zadania tekstowe, obrazowe i głosowe razem | GPU, CPU, RAM i rezydencja modelu | Konflikty między obciążeniami i skoki opóźnień |
| Różne modele dla różnych użytkowników | Pamięć wag i czas ładowania | Zmiany modeli lub opóźnienia w usuwaniu modeli |
Test rodzinny powinien zatem odzwierciedlać rzeczywiste połączenie czatu, wyszukiwania, wizji, głosu i automatyzacji. Pięć identycznych krótkich zapytań może wyglądać dobrze, podczas gdy jedno długie zapytanie z kontekstem plus dwie aktywne rozmowy ujawniają prawdziwe ograniczenia.
Co może poprawić responsywność rodziny?
Zacznij od utrzymania jednego odpowiedniego modelu w pamięci, zmniejszenia niepotrzebnej maksymalnej długości kontekstu, ograniczenia długich wyjść i przypisania uczciwych zasad współbieżności lub kolejkowania. Mniejszy model czasem może lepiej obsłużyć rodzinę niż większy, który prawie nie zostawia pamięci na aktywne konteksty.
Granica wdrożenia ZimaSpace dla wielu jednoczesnych użytkowników AI to ta sama zasada na większą skalę: wagi modelu, aktywne konteksty, rozmiar partii i strategia obsługi muszą razem pasować do sprzętu. Przechowywanie może trzymać punkt kontrolny, ale szybkie interaktywne wnioskowanie zależy od tego, gdzie podczas użycia znajdują się wagi i aktywny stan.
Ciągłe grupowanie, ponowne użycie prefiksu, stronicowana pamięć podręczna KV, priorytety żądań i oddzielne repliki pracowników mogą poprawić wykorzystanie lub sprawiedliwość. Ich korzyść jest warunkowa: ustawienie nastawione na przepustowość może sprawić, że serwer wygeneruje więcej tokenów, pozwalając jednocześnie jednemu użytkownikowi czekać dłużej.
Sprzęt nadal wyznacza górną granicę. Jeśli obciążenie rodziny wyczerpie pamięć akceleratora, przepustowość obliczeń, wstępne przetwarzanie CPU lub dostępne repliki modelu, planowanie może rozdzielić niedobór bardziej sprawiedliwie, ale go nie usunie.
FAQ
Czy dwóch użytkowników zawsze spowalnia domowy serwer AI dwukrotnie?
Nie. Wynik zależy od długości promptu, długości wyjścia, grupowania, rozmiaru modelu, użycia pamięci podręcznej i tego, czy żądania się nakładają. Dwa krótkie żądania mogą być efektywnie grupowane, podczas gdy jedno długie może zakłócać kilka lżejszych sesji.
Czy każdy członek rodziny potrzebuje osobnej instancji modelu?
Zazwyczaj nie. Jeden proces obsługi wielu użytkowników może współdzielić wagi modelu i planować oddzielne żądania. Oddzielne instancje mogą poprawić izolację, ale także duplikują lub dzielą pamięć i mogą zmniejszyć całkowitą pojemność na małym sprzęcie.
Czy szybsza sieć rozwiąże problem opóźnień AI przy wielu użytkownikach?
Tylko gdy wąskim gardłem jest transfer danych, zdalne przechowywanie lub łączność klienta. Większość lokalnych spowolnień generowania tekstu pod obciążeniem rodzinnym wynika z kolejkowania, obliczeń, pamięci modelu i obciążenia pamięci podręcznej KV.
Czy mniejszy model jest lepszy do użytku rodzinnego?
Może tak być. Mniejszy model może zostawić więcej pamięci na jednoczesne konteksty i generować szybciej, ale kompromis jakości musi nadal odpowiadać zadaniom rodziny.
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.

