rozgrzewka modelu

Pierwsze wywołania modelu po uruchomieniu procesu, w trakcie których runtime kompiluje jądra obliczeniowe i dobiera optymalne warianty dla danego kształtu danych. Potrafią trwać wielokrotnie dłużej niż wywołania późniejsze — dlatego każdy benchmark bez rozgrzewki zawyża czas.

W Polsce nazywane też:

rozgrzewka modelurozgrzewaniepierwszy przebiegzimny start modelu

Pierwsze wywołanie modelu po uruchomieniu procesu potrafi trwać kilka razy dłużej niż setne. Nie jest to awaria ani przypadek — to koszt pracy, którą runtime wykonuje raz.

Czym jest rozgrzewka

Rozgrzewka to początkowa faza działania procesu inferencyjnego, w której runtime kompiluje jądra obliczeniowe pod konkretną architekturę sprzętu, dobiera ich warianty dla występujących kształtów danych, alokuje bufory i zapełnia pamięć podręczną systemu plikami wag. Część runtime’ów wykonuje tę pracę w całości przy starcie, część dopiero przy pierwszym faktycznym użyciu danej ścieżki wykonania.

Co się w tym czasie dzieje

Kompilacja grafu na jądra obliczeniowe, z uwzględnieniem fuzji operatorów.

Dobór wariantów jąder przez pomiar — dla danego rozmiaru macierzy i danej karty runtime sprawdza kilka implementacji i zapamiętuje najszybszą.

Wczytanie wag z dysku do pamięci systemu, które przy drugim uruchomieniu jest natychmiastowe, bo plik siedzi już w pamięci podręcznej systemu operacyjnego.

Konsekwencja dla pomiarów

Każdy benchmark bez rozgrzewki zawyża czas i jest nieporównywalny z wynikami innych. Standardem jest odrzucenie pierwszych kilku wywołań i dopiero potem rozpoczęcie pomiaru.

Konsekwencja dla produkcji

Instancja dopiero co uruchomiona obsługuje ruch gorzej niż instancja działająca od godziny. Przy skalowaniu automatycznym oznacza to, że nagły wzrost ruchu pogarsza opóźnienie podwójnie: raz przez kolejkę, raz przez nierozgrzane instancje, które ten ruch przejmują.

Ten sam mechanizm działa po stronie dostawcy API i jest jedną z przyczyn pojedynczych odpowiedzi wolniejszych bez wyraźnego powodu.

czas do pierwszego tokenaMetryka mierząca czas od wysłania żądania do otrzymania pierwszego tokenu odpowiedzi. Obejmuje sieć, bramę, kolejkę i prefill. Jest niezależna od liczby tokenów na sekundę i bywa z nią sprzeczna, bo optymalizacje poprawiające przepustowość systemu pogarszają czas oczekiwania.fuzja operatorówOptymalizacja polegająca na wykonaniu kilku sąsiadujących operacji grafu za jednym podejściem, bez odkładania wyników pośrednich do pamięci głównej. Nie zmienia wyniku liczbowego — zmienia liczbę odczytów i zapisów, a ponieważ to one są wąskim gardłem, daje wielokrotne przyspieszenie.graf obliczeniowyZapisany w pliku modelu opis kolejności operacji: co przez co pomnożyć, co dodać, co znormalizować. Mówi, co ma wyjść, ale nie mówi, jak to policzyć — dopisanie tej drugiej warstwy jest zadaniem runtime'u i to w niej powstaje większość różnicy w wydajności.silnik wnioskowaniaProgram, który wczytuje plik z wagami, kompiluje graf obliczeniowy pod konkretny sprzęt, rezerwuje pamięć i wykonuje pętlę generowania. Ten sam model uruchomiony przez dwa różne runtime'y daje tę samą odpowiedź w czasie różniącym się wielokrotnie.Agent bezserwerowyAgent AI wdrożony na platformie serverless — AWS Lambda, Azure Functions, Cloudflare Workers — skalujący do zera przy braku ruchu i automatycznie przy obciążeniu. Idealny dla event-triggered agentów i nieciągłego ruchu. Ograniczenia: cold start, timeout, stateless by design.