RadixAttention
Sposób SGLang na ponowne wykorzystanie KV cache między żądaniami: każdy widziany prefiks trzymany jest w drzewie radix, zamiast wyrzucać cache po zakończeniu żądania.
Idea opiera się na obserwacji prawdziwego ruchu: żądania niemal zawsze mają wspólny początek. Ten sam prompt systemowy, te same przykłady few-shot, ten sam dokument, ta sama historia rozmowy sprzed jednej tury. Klasyczne systemy serwujące przeliczają tę część za każdym razem. Tutaj zapamiętane tensory kluczy i wartości indeksuje się w drzewie radix, w którym każda krawędź to sekwencja tokenów, więc nowe żądanie dopasowuje najdłuższy wspólny prefiks i liczy tylko resztę. Gdy brakuje pamięci, drzewo jest czyszczone metodą LRU, a scheduler o nim wie — grupuje żądania ze wspólnym prefiksem, żeby węzeł nie wypadł tuż przed następnym trafieniem. Przy obciążeniach z dużym współdzieleniem prefiksów, takich jak pętle agentów i structured output, efektem jest kilkukrotnie wyższa przepustowość, a nie kilka procent.