Plik z wagami jest martwy. Nie ma w nim pętli, warunków ani niczego, co samo się uruchomi. Między nim a odpowiedzią stoi program — i to on jest odpowiedzialny za prawie wszystko, co odczuwasz jako zachowanie modelu.
Czym jest runtime inferencyjny
Runtime inferencyjny to oprogramowanie wykonujące wytrenowany model: wczytuje wagi, kompiluje graf obliczeniowy pod konkretną architekturę sprzętu, rezerwuje pamięć na wagi, bufory robocze i pamięć podręczną kontekstu, a następnie wykonuje pętlę generowania token po tokenie. Najpopularniejsze implementacje to llama.cpp, vLLM, ONNX Runtime i TensorRT-LLM.
Cztery zadania runtime’u
Wczytanie wag — zwykle przez mapowanie pliku, nie kopiowanie. Dlatego pierwsze uruchomienie po restarcie maszyny trwa, a kolejne są natychmiastowe.
Kompilacja planu — przepisanie grafu na jądra obliczeniowe napisane pod konkretną architekturę. Tu następuje fuzja operatorów i tu powstaje większość różnicy w prędkości między implementacjami.
Alokacja pamięci — z góry, całej, zanim padnie pierwszy token.
Wykonanie pętli — wraz z samplingiem, warunkami zatrzymania i strumieniowaniem wyniku.
Czego runtime robi więcej, niż się wydaje
Temperatura nie jest zapisana w wagach. Model zwraca rozkład prawdopodobieństwa nad całym słownikiem — to runtime losuje z tego rozkładu jeden token, według reguł, które mu ustawisz. To samo dotyczy sekwencji zatrzymujących, kary za powtórzenia, limitu długości odpowiedzi i tego, czy wynik przychodzi w całości, czy strumieniem.
Zmieniając temperaturę, nie zmieniasz modelu. Zmieniasz ustawienie programu, który model odczytuje.
Dlaczego nazwa modelu nie wystarcza
Kiedy dostawca deklaruje, że serwuje konkretny model, podaje jedną informację z czterech. Nie wiesz, w jakiej precyzji trzyma wagi, jakim runtime’em je wykonuje, jak agresywnie fuzjuje operacje ani na jakim sprzęcie to stoi.
Te same wagi obsłużone przez dwie różne maszynerie dają odpowiedzi tej samej jakości w czasie różniącym się o rząd wielkości. Porównywanie dostawców po nazwie modelu jest jak porównywanie restauracji po tym, że obie mają w karcie to samo danie.