1. Model pobiera cały (lub cały zmieniony) kontekst wejściowy. 2. Wykonuje pełny przebieg w przód przez wszystkie warstwy, licząc od nowa klucze (K) i wartości (V) dla każdego tokena i każdej głowicy uwagi. 3. Nowo policzone stany zapełniają KV cache. 4. Model generuje pierwszy token i przechodzi do fazy dekodowania korzystającej z odtworzonego cache. Ponieważ jest to pełny prefill, koszt uwagi rośnie kwadratowo z długością kontekstu, a całość jest wykonywana za każdym razem, gdy dotychczasowy cache został unieważniony.
Gdy pamięć KV staje się nieaktualna lub niedostępna (eksmisja z pamięci, edycja kontekstu, zmiana prefiksu, przełączenie modelu), dekodowanie nie może kontynuować w oparciu o błędny lub brakujący cache. Re-prefill zapewnia poprawność, odtwarzając stany KV od zera — kosztem czasu i mocy obliczeniowej.
Każda edycja kontekstu lub eksmisja cache wymusza pełny re-prefill, co znacząco podnosi czas do pierwszego tokena (TTFT).
Koszt uwagi w prefill rośnie jak O(n²), więc re-prefill długiego kontekstu jest szczególnie kosztowny.
Wykazano, że można pominąć re-prefill po przełączeniu modelu, przenosząc pamięć KV między modelami rodziny — 2,7–25× szybciej niż ponowny prefill.
Złożoność czasowa: O(n² · d). Złożoność przestrzenna: O(n · d · L).
Prefill to gęste obliczenie: wszystkie tokeny kontekstu przechodzą przez wszystkie warstwy w jednym przebiegu.
W odróżnieniu od sekwencyjnego dekodowania, prefill (a więc i re-prefill) przetwarza wszystkie tokeny kontekstu równolegle w jednym przebiegu w przód.
Re-prefill jest ograniczony obliczeniowo i zdominowany mnożeniami macierzy (GEMM), co idealnie pasuje do rdzeni tensorowych GPU.