Ultrafast (warstwa inferencji)
Jak działa
Warstwa przechwytuje przychodzące żądania i łączy je w locie (ciągły batching), dołączając nowe sekwencje do bieżącego batcha zamiast czekać na zakończenie poprzednich. Stan uwagi jest przechowywany w KV-cache, często zarządzanym stronicowo (PagedAttention), co ogranicza fragmentację pamięci. Dekodowanie spekulatywne używa małego modelu-szkicownika do zaproponowania kilku tokenów naraz, które duży model weryfikuje równolegle. Kwantyzacja (np. do 8 lub 4 bitów) zmniejsza zużycie pamięci i przepustowości. Zoptymalizowane jądra uwagi minimalizują ruch danych między pamięcią HBM a rejestrami. Całość działa na GPU z rdzeniami tensorowymi lub dedykowanych akceleratorach, często z równoległością tensorową i potokową między urządzeniami.
Rozwiązany problem
Naiwna inferencja LLM jest wolna i kosztowna: generowanie autoregresyjne przetwarza jeden token na raz, pamięć KV rośnie liniowo z długością kontekstu, a statyczne grupowanie żądań marnuje moc GPU przy zmiennych długościach sekwencji. Ultraszybka warstwa inferencji rozwiązuje problem wysokiego opóźnienia i niskiego wykorzystania sprzętu podczas serwowania modeli w produkcji.
Komponenty
Dynamiczne dołączanie i usuwanie sekwencji z bieżącego batcha w trakcie generowania, bez czekania na zakończenie wszystkich żądań.
Oficjalna
Przechowywanie i ponowne wykorzystanie tensorów klucz-wartość z poprzednich kroków dekodowania; często zarządzane stronicowo (PagedAttention) dla ograniczenia fragmentacji pamięci.
Oficjalna
Mały model-szkicownik proponuje kilka tokenów naraz, które duży model weryfikuje jednym przebiegiem, akceptując poprawne prefiksy.
Oficjalna
Reprezentacja wag i/lub aktywacji w niższej precyzji (np. INT8, FP8, INT4) w celu zmniejszenia zużycia pamięci i przepustowości.
Oficjalna
Jądra uwagi świadome operacji wejścia-wyjścia (np. FlashAttention), minimalizujące ruch danych między pamięcią HBM a rejestrami.
Oficjalna
Wykorzystanie GPU z rdzeniami tensorowymi lub dedykowanych akceleratorów inferencji, często z równoległością tensorową i potokową między urządzeniami.
Oficjalna
Implementacja
Zwiększanie rozmiaru batcha podnosi przepustowość, ale może zwiększyć opóźnienie pojedynczego żądania.
Długie konteksty i wiele równoczesnych sekwencji mogą wyczerpać pamięć GPU.
Agresywna kwantyzacja (np. INT4) może obniżyć jakość odpowiedzi modelu.
Słabe dopasowanie modelu-szkicownika do modelu docelowego ogranicza zysk szybkości lub go niweluje.
Ewolucja
Zoptymalizowane, dokładne jądra uwagi redukujące ruch pamięci, fundament szybkiej inferencji na GPU.
Przyspieszenie generowania autoregresyjnego przez równoległą weryfikację tokenów proponowanych przez mały model.
Stronicowe zarządzanie KV-cache i ciągły batching w otwartym silniku serwującym, popularyzacja wysokoprzepustowego serwowania LLM.
Hiperparametry (konfigurowalne osie)
Maksymalna liczba sekwencji obsługiwanych równocześnie; kompromis między przepustowością a opóźnieniem.
Precyzja liczbowa wag/aktywacji (np. FP16, FP8, INT8, INT4).
Maksymalna długość kontekstu; wprost determinuje zużycie pamięci przez KV-cache.
Liczba tokenów proponowanych na raz przez model-szkicownik; wpływa na zysk z weryfikacji równoległej.
Równoległość
Równoległość między żądaniami (batching) i między urządzeniami (tensor/pipeline parallelism); autoregresyjne dekodowanie pozostaje sekwencyjne per sekwencja, częściowo łagodzone dekodowaniem spekulatywnym.
Wymagania sprzętowe
Rdzenie tensorowe i wysoka przepustowość HBM są kluczowe dla mnożeń macierzy i obsługi KV-cache przy niskim opóźnieniu.
Układy TPU dobrze obsługują gęste operacje macierzowe inferencji przy odpowiednim oprogramowaniu serwującym.
Możliwe dla małych modeli lub silników takich jak llama.cpp, ale przepustowość i opóźnienie są gorsze niż na akceleratorach.