Prędkość generowania (TPS / TTFT / Latencja)
Kluczowe wskaźniki wydajności modeli językowych: Time to First Token (czas reakcji na kontekst wejściowy) oraz Tokens Per Second (prędkość strumieniowego generowania tekstu wyjściowego).
1. Przegląd koncepcji i problem systemowy
W dyskusjach inżynierskich wydajność modeli często sprowadza się do nieprecyzyjnych określeń „szybki” lub „wolny”. Takie amatorskie podejście prowadzi do awarii systemów czasu rzeczywistego: interfejs voice bota zawiesza się na kilka sekund przed odpowiedzią, autouzupełnianie kodu w IDE irytuje opóźnieniem pojawiania się znaków, a procesy agentowe działające w tle blokują się w wielogodzinnych kolejkach.
Rzeczywisty inference dużych modeli językowych podlega prawom fizyki półprzewodników i dzieli się na dwie całkowicie odrębne fazy sprzętowe:
- Faza Prefill (Prefill / Context Phase): równoległe przetwarzanie wejściowego promptu.
- Faza Decode (Decode / Generation Phase): sekwencyjne generowanie znaków wyjściowych token po tokenie.
Metryki TTFT (Time to First Token) oraz TPS (Tokens Per Second) stanowią systemowy kompas inżyniera, określający architekturę kolejek, dobór sprzętu oraz doświadczenie użytkownika (UX) w aplikacjach interaktywnych.
2. Taksonomia architektury i model mentalny
Metryki opóźnień i przepustowości klasyfikowane są według etapów cyklu życia zapytania:
┌─────────────────────────────────────────────────────────────┐
│ KLASYFIKACJA OPÓŹNIEŃ WNIOSKOWANIA │
├─────────────────────────────────────────────────────────────┤
│ 1. Czas w kolejce (Oczekiwanie na wolne zasoby GPU) │
├─────────────────────────────────────────────────────────────┤
│ 2. Faza Prefill ➔ TTFT (Time to First Token) │
│ • Obliczeniowo ograniczony (TFLOPS Tensor Cores) │
│ • Bezpośrednie obliczanie cache KV dla całego tekstu wejściowego │
├─────────────────────────────────────────────────────────────┤
│ 3. Faza Decode ➔ TPS / ITL (Inter-Token Latency) │
│ • Ograniczony przepustowością pamięci (GB/s magistrali VRAM) │
│ • Sekwencyjne odczytywanie wag dla każdego tokenu │
├─────────────────────────────────────────────────────────────┤
│ 4. Całkowita opóźnienie E2E = TTFT + (N_generated_tokens * ITL) │
└─────────────────────────────────────────────────────────────┘
- TTFT (Time to First Token – czas do pierwszego tokenu):
- Liczba milisekund od momentu wysłania zapytania HTTP przez klienta do otrzymania pierwszego bajta strumieniowej odpowiedzi. Składa się z opóźnienia sieciowego, czasu oczekiwania w kolejce oraz czasu obliczenia prefilla.
- TPS (Tokens Per Second – szybkość generowania):
- Liczba tokenów emitowanych przez system w ciągu jednej sekundy. Dla pojedynczego streamu wynosi $1 / \text{ITL}$. Dla całego serwera (Aggregate Throughput) jest to łączna liczba tokenów wygenerowana przez wszystkich klientów jednocześnie.
- ITL (Inter-Token Latency – opóźnienie międzytokenowe):
- Czas między pojawieniem się sąsiednich tokenów podczas streaming. Dla ludzkiego oka komfortowy wskaźnik wynosi mniej niż 30 ms na token (co odpowiada >33 TPS).
- Speculative Decoding:
- Trik algorytmiczny, który przekształca część operacji fazy Decode na równoległą weryfikację, zwiększając czysty TPS o 2–3 razy bez utraty dokładności.
3. Pipeline techniczny i mechanika wewnętrzna
Cykl życia inference pod mikroskopem timingów:
- Odbiór zapytania i dodanie do batcha: Zapytanie zawierające 4000 tokenów kodu trafia do silnika inference (np. vLLM).
- Prefill (Faza Prefill): GPU ładuje macierze wag i równolegle mnoży wszystkie 4000 tokenów na rdzeniach Tensor Cores. Obliczane są wektory Q, K, V oraz inicjalizowana pamięć KV-cache.
- Emisja pierwszego tokenu (Ustalenie TTFT): Pierwszy token jest wysyłany do klienta przez Server-Sent Events. Jeśli prompt jest buforowany (Prompt Caching), ten etap zajmuje 50 ms; w przeciwnym razie od 500 ms do 3 sekund.
- Sekwencyjna pętla dekodowania (Decode Loop):
- Do wygenerowania jednego tokenu karta graficzna musi odczytać wszystkie 70 miliardów parametrów modelu z VRAM do cache procesora.
- Przy pamięci o przepustowości 1000 GB/s (RTX 4090) odczyt 35 GB skwantowanego modelu zajmuje: $$35 \text{ GB} / 1000 \text{ GB/s} = 35 \text{ ms na token} \approx 28 \text{ TPS}$$
- Zakończenie zapytania: Generowanie kończy się po osiągnięciu tokenu `
FAQ: Prędkość generowania (TPS / TTFT / Latencja)
Powiązane pojęcia
Gemini Flash & Pro (Google Gemini)
Rodzina multimodalnych modeli od Google DeepMind, łącząca rekordowe okno kontekstowe (do 2 mln tokenów), ekstremalną szybkość generacji (ponad 150 tokenów/s) oraz natywne przetwarzanie wideo i audio.
vLLM (Wysokowydajny silnik inferencyjny)
Wiodący open-source'owy serwer i silnik inferencyjny dla modeli LLM, który zrewolucjonizował przepustowość dzięki algorytmowi wirtualizacji pamięci PagedAttention oraz ciągłemu batchowaniu.
Parametry próbkowania (Temperatura, Top-p, Min-p)
Matematyczne hiperparametry dekodowania stochastycznego (Temperatura, Top-P, Min-P, kary), które sterują rozkładem prawdopodobieństwa wyboru następnego tokenu, określając poziom determinizmu, precyzji i kreatywności modelu.
MoE (Mixture of Experts – Mieszanka Ekspertów)
Podejście architektoniczne w głębokim uczeniu, w którym ciężkie warstwy fully-connected transformera są dzielone na dziesiątki wyspecjalizowanych podsieci („ekspertów”), a dynamiczny router aktywuje tylko niewielką ich część dla każdego pojedynczego tokenu.