Robocikowo>ROBOCIKOWO
Wnioskowanie

TTFT

AktywnyOpublikowano: 25 sierpnia 2026Aktualizacja: 25 sierpnia 2026Opublikowany
Metryka latencji LLM: czas od wysłania zapytania do pojawienia się pierwszego tokena odpowiedzi; zdominowana przez fazę prefill, kluczowa dla postrzeganej responsywności.
Kluczowa innowacja
Wyodrębnienie latencji pierwszego tokena jako osobnego celu (SLO), oddzielonego od przepustowości i czasu generacji kolejnych tokenów.
Kategoria
Wnioskowanie
Poziom abstrakcji
Primitive
Poziom operacji
InferencjaUdostępnianie
Zastosowania
Benchmarking i profilowanie serwerów inferencji LLMDefiniowanie SLO/SLA dla usług LLMOptymalizacja UX aplikacji strumieniowych i czatbotówAutoscaling i planowanie pojemności inferencjiPorównywanie sprzętu i silników inferencji (vLLM, TensorRT-LLM)Aplikacje głosowe i agentowe wrażliwe na opóźnienia

Jak działa

TTFT mierzy się jako różnicę czasu między wysłaniem żądania a odebraniem pierwszego niepustego tokena (wymaga trybu strumieniowego). Na łączny czas składają się: (1) kolejkowanie i wejście żądania do batcha, (2) faza prefill — równoległe przetworzenie wszystkich tokenów promptu przez wszystkie warstwy modelu wraz z zbudowaniem KV cache, (3) obliczenie logitów ostatniej pozycji i próbkowanie pierwszego tokena, (4) detokenizacja i transfer sieciowy. Faza prefill jest compute-bound (operacja macierz-macierz nasycająca GPU), więc TTFT rośnie z długością promptu i rozmiarem modelu. Typowe techniki obniżające TTFT: chunked-prefill, ponowne użycie prefiksu/KV cache (prefix caching), dezagregacja faz prefill i decode, równoległość tensorowa oraz mocniejszy sprzęt obliczeniowy.

Rozwiązany problem

Sama przepustowość (tokeny/s) i całkowita latencja nie oddają tego, jak szybko użytkownik widzi początek odpowiedzi. TTFT wyodrębnia opóźnienie startu generacji, które w interfejsach strumieniowych i konwersacyjnych decyduje o odczuwalnej responsywności, i pozwala optymalizować oraz kontraktować (SLO) fazę prefill niezależnie od fazy decode.

Komponenty

Kolejkowanie żądaniaWprowadza narzut zależny od obciążenia, wliczany do end-to-end TTFT.

Czas oczekiwania żądania na przyjęcie do bieżącego batcha przez scheduler serwera inferencji, zanim rozpocznie się obliczanie.

Faza prefill (przetwarzanie promptu)Dominuje w TTFT i rośnie z długością promptu oraz rozmiarem modelu.

Równoległe przetworzenie wszystkich tokenów promptu przez wszystkie warstwy modelu; główny, compute-bound składnik TTFT.

INB sekwencji promptu po n tokenów każda.
OUTZapełniony KV cache dla wszystkich warstw oraz logity ostatniej pozycji.
Populacja KV cacheEfekt uboczny prefill; determinuje zużycie pamięci i umożliwia prefix caching skracający TTFT.

Zapisanie kluczy i wartości (K, V) dla wszystkich tokenów promptu i warstw, wykorzystywane później w fazie decode.

Próbkowanie pierwszego tokenaZamyka pomiar TTFT — moment, w którym pierwszy token trafia do użytkownika.

Dekodowanie pierwszego tokena wyjściowego z logitów ostatniej pozycji (greedy, top-k, top-p, temperatura).

Implementacja

Pułapki implementacyjne
Pomiar TTFT bez trybu strumieniowegoWysoka

Bez streamingu serwer zwraca całą odpowiedź naraz, więc nie da się zmierzyć rzeczywistego czasu do pierwszego tokena.

Rozwiązanie:Zawsze mierz TTFT w trybie strumieniowym i rejestruj znacznik czasu pierwszego niepustego chunku.
Niejednoznaczność definicji: z kolejkowaniem vs bezŚrednia

TTFT czyste (od startu prefill) i end-to-end (z czasem kolejkowania) dają różne liczby, co utrudnia porównania.

Rozwiązanie:Jednoznacznie dokumentuj, czy TTFT obejmuje kolejkowanie, i porównuj metryki mierzone tak samo.
Cold start / rozgrzewkaŚrednia

Ładowanie wag, kompilacja grafu i alokacja pamięci zawyżają pierwszy pomiar TTFT.

Rozwiązanie:Wykonaj żądania rozgrzewkowe i pomijaj je w statystykach.
Pierwszy pusty/rolowy chunk zamiast pierwszego tokenaŚrednia

Niektóre API zwracają pusty lub metadanych pierwszy chunk (np. rola), co zaniża TTFT jeśli policzy się go jako token.

Rozwiązanie:Licz TTFT dopiero od pierwszego chunku zawierającego treść tokena.
Narzut tokenizacji i sieci po stronie klientaNiska

Opóźnienia sieci i detokenizacji wpływają na TTFT odczuwany przez klienta, choć bywają pomijane w pomiarach serwerowych.

Rozwiązanie:Mierz TTFT jak najbliżej klienta i raportuj lokalizację pomiaru.

Ewolucja

2023
Standaryzacja TTFT jako podstawowej metryki serwowania LLM

TTFT wraz z TPOT i przepustowością staje się standardowym zestawem metryk w inżynierii wydajności inferencji LLM (m.in. przewodniki Databricks, NVIDIA).

2023
Splitwise: rozdzielenie faz prefill i decode

Rozdzielenie fazy obliczania promptu i generacji tokenów na osobne maszyny, umożliwiające niezależne zarządzanie TTFT i przepustowością generacji.

2024
DistServe: dezagregacja prefill/decode dla osobnych SLO TTFT i TPOT
Punkt przełomowy

Dezagregacja faz prefill i decode na różne GPU pozwala niezależnie optymalizować TTFT (prefill) oraz czas na token (decode) zamiast godzić je kompromisem.

2024
Sarathi-Serve: chunked-prefill równoważący TTFT i przepustowość

Dzielenie prefill na kawałki i harmonogram bez przestojów pozwala utrzymać wysoką przepustowość, kontrolując wpływ batchingu na TTFT i latencję.

Hiperparametry (konfigurowalne osie)

Długość promptu (input length)Krytyczna

Liczba tokenów wejściowych; główny czynnik TTFT.

Rozmiar modeluWysoka

Liczba parametrów i warstw wpływa na koszt prefill na token.

Sprzęt obliczeniowy (FLOPS / tensor cores)Wysoka

Wydajność obliczeniowa akceleratora determinuje szybkość prefill.

Rozmiar batcha / współbieżnośćWysoka

Większe batche i obciążenie wydłużają kolejkowanie i mogą podnosić TTFT.

Ponowne użycie prefiksu / KV cacheWysoka

Buforowanie wspólnego prefiksu skraca prefill i TTFT.

Rozmiar chunku w chunked-prefillŚrednia

Dzielenie prefill na kawałki równoważy TTFT z przepustowością.

Równoległość tensorowa / potokowaŚrednia

Rozłożenie modelu na wiele GPU może skrócić prefill dużych modeli.

Złożoność obliczeniowa

Złożoność czasowa: O(n^2 * d). Złożoność przestrzenna: O(n * d * L).

Wąskie gardło obliczeniowe

Faza prefill (przetwarzanie promptu)

TTFT jest zdominowany przez compute-bound prefill — gęstą operację macierz-macierz nasycającą jednostki obliczeniowe akceleratora.

Zależy od
Długość promptuRozmiar modeluMoc obliczeniowa (FLOPS / tensor cores)Kolejkowanie i batching

Paradygmat wykonania

Tryb główny
Gęsty

TTFT mierzy koszt prefill — gęstej operacji macierz-macierz aktywującej wszystkie parametry modelu nad wszystkimi tokenami promptu.

Wzorzec aktywacji
Wszystkie ścieżki aktywne

Równoległość

Poziom równoległości
W pełni równoległy

Prefill przetwarza wszystkie tokeny promptu równolegle (macierz-macierz), w przeciwieństwie do sekwencyjnej fazy decode, której TTFT nie obejmuje.

Zakres
InferencjaPomiędzy tokenami

Wymagania sprzętowe

Podstawowe

Prefill jest compute-bound operacją macierz-macierz, która silnie korzysta z wysokiej wydajności FLOPS i tensor cores — skraca to TTFT.

Dobry fit

Akceleratory macierzowe (TPU) dobrze obsługują compute-bound prefill dla dużych promptów.

Ograniczony

Na CPU prefill długich promptów jest wolny, co prowadzi do wysokiego TTFT.