RadixAttention
O jeito do SGLang de reaproveitar o KV cache entre requisições, guardando todo prefixo já visto numa árvore radix em vez de jogar o cache fora quando a requisição termina.
A ideia parte de uma observação sobre tráfego real: as requisições quase sempre compartilham o começo. Mesmo prompt de sistema, mesmos exemplos few-shot, mesmo documento, mesmo histórico de conversa até um turno atrás. Sistemas de serving clássicos recalculam essa parte toda vez. Aqui, os tensores de chave e valor em cache são indexados numa árvore radix em que cada aresta é uma sequência de tokens, de modo que uma nova requisição encontra o maior prefixo em comum e só calcula o resto. A árvore é despejada por LRU quando a memória acaba, e o scheduler sabe disso — ele agrupa requisições que compartilham prefixo para que um nó não seja descartado logo antes do próximo acerto. Em cargas com muito compartilhamento de prefixo, como loops de agentes e saída estruturada, o efeito é várias vezes mais vazão, e não alguns pontos percentuais.