Ir para o conteúdo principal
Zubnet AIAprenderWiki › SGLang
Ferramentas

SGLang

Também conhecido como: SGLang Runtime, SRT
SGLang é um motor de serving de código aberto para grandes modelos de linguagem, construído para executar inferência de forma rápida e barata em escala de produção. Foi lançado em 2024 por pesquisadores com raízes na UC Berkeley e na equipe LMSYS, e sua ideia assinatura é o RadixAttention, uma técnica que reutiliza computação em cache entre requisições que compartilham prefixos de prompt. É uma das duas stacks dominantes de serving de LLM de código aberto, ao lado do vLLM.

Por que isso importa

Inferência é onde vai a maior parte do dinheiro ao rodar LLMs em produção, e o motor de serving decide quanta GPU você queima por requisição. A reutilização de prefixos e a decodificação estruturada rápida do SGLang podem cortar custo e latência drasticamente em cargas de trabalho com prompts de sistema compartilhados, conversas multiturno ou saída em JSON. Ele também se tornou uma escolha comum para servir modelos abertos muito grandes, incluindo implantações de mistura de especialistas em escala DeepSeek, onde o serving ingênuo não dá conta.

Em profundidade

Para entender o SGLang, ajuda entender o problema que todo motor de inferência enfrenta. A decodificação autorregressiva gera um token por vez, e cada token precisa ler todos os pesos do modelo mais o KV cache de tudo o que foi gerado até ali, o que torna a decodificação limitada por largura de banda de memória, e não por computação. A alavanca que importa, portanto, não são FLOPs brutos, mas quantas requisições você consegue agrupar em batch e quão pouco trabalho redundante você faz. O SGLang ataca os dois lados: ele agrupa e agenda requisições de forma eficiente como qualquer motor moderno, e vai além ao reconhecer que o tráfego de produção real é cheio de estrutura compartilhada — o mesmo prompt de sistema, os mesmos exemplos few-shot, o mesmo histórico de conversa — que motores ingênuos recalculam do zero em cada requisição.

RadixAttention e a Reutilização de Prefixos

O RadixAttention é a contribuição definidora do SGLang. O motor mantém o KV cache em uma árvore radix indexada por sequências de tokens, então quando chega uma nova requisição cujo prompt compartilha um prefixo com algo recentemente computado — um prompt de sistema, um documento, um turno anterior da conversa — o motor reutiliza as entradas de cache existentes em vez de recalculá-las. O SGLang combina isso com um agendamento ciente de cache que prefere executar requisições com prefixos sobrepostos na mesma réplica, elevando as taxas de acerto de cache. Em cargas de trabalho com prompts longos compartilhados ou tráfego multiturno intenso, isso pode cortar a latência e aumentar o throughput substancialmente em comparação com serving sem estado. A ideia é aparentada ao que os provedores de API vendem como cache de prompt, mas aqui acontece automaticamente dentro do motor, e outros motores, incluindo o vLLM, adotaram desde então seus próprios mecanismos de reutilização de prefixos.

Saída Estruturada em Alta Velocidade

A outra característica de destaque do SGLang é a saída estruturada rápida. A decodificação restrita força o modelo a seguir uma gramática ou esquema JSON mascarando tokens ilegais a cada passo, e implementações ingênuas adicionam uma sobrecarga perceptível por token. O SGLang otimiza isso com uma máquina de estados finitos comprimida para a gramática e uma técnica que salta adiante pelos trechos determinísticos da saída — chaves fixas, colchetes, espaços em branco — emitindo vários tokens de uma vez em vez de um por vez. Isso importa mais do que pode parecer: pipelines de agentes, chamada de função e trabalhos de extração de dados geram volumes enormes de JSON, e uma aceleração de 2–5x nessa decodificação se traduz diretamente em agentes mais baratos e responsivos.

SGLang vs vLLM

A comparação óbvia é o vLLM, o outro motor dominante de serving de modelo de código aberto. Ambos são baseados em Python, ambos fazem batching contínuo, paralelismo de tensores entre GPUs, quantização e decodificação especulativa, e ambos expõem uma API compatível com a da OpenAI. O vLLM é o projeto mais antigo, com o ecossistema maior, e é construído em torno do PagedAttention, sua abordagem baseada em blocos para gerenciamento de memória do KV cache; o SGLang frequentemente sai na frente em tráfego pesado de prefixos e saída estruturada graças ao RadixAttention e à sua stack de decodificação restrita. Os benchmarks entre os dois oscilam a cada lançamento, a cada família de modelos e a cada geração de hardware, então a resposta do praticante é entediante, mas verdadeira: coloque os dois na lista e meça na sua própria carga de trabalho. Muitas plataformas de inferência suportam discretamente ambos os back-ends exatamente por esse motivo.

Mais Rápido Não Significa Mais Inteligente

Um equívoco comum é que trocar de motor de serving muda o que o modelo consegue fazer. Não muda. O SGLang é uma camada de serving, não um modelo e não um framework de treinamento — os mesmos pesos servidos pelo SGLang, pelo vLLM ou por qualquer outro motor produzem essencialmente as mesmas respostas. Quando alguém relata que um modelo ficou 'melhor' ou 'pior' depois de trocar de motor, o culpado real costuma ser configurações diferentes de quantização, uma janela de contexto truncada ou padrões de amostragem alterados, como a temperatura. O que um bom motor compra para você é eficiência: mais requisições por GPU, menor tempo até o primeiro token, mais tokens por segundo. É uma história de custo e latência de produto, não de capacidade, e é por isso que a escolha do motor é uma decisão de infraestrutura, e não de qualidade de modelo.

O Efeito DeepSeek

O perfil do SGLang subiu drasticamente com a chegada de modelos de mistura de especialistas muito grandes, especialmente os V3 e R1 da DeepSeek, que são castigadores de servir: centenas de bilhões de parâmetros totais, paralelismo de especialistas entre muitas GPUs e um design de atenção que quebra suposições embutidas em stacks de serving mais antigas. O SGLang investiu cedo e pesado em suportar bem esses modelos, e tornou-se um motor de referência para implantações em escala DeepSeek tanto na comunidade aberta quanto em provedores de inferência. Essa reputação pegou: quando um novo modelo grande de pesos abertos é lançado, suporte de primeiro dia no SGLang é agora algo que os praticantes procuram ativamente, da mesma forma que acompanham o suporte no vLLM. As origens do projeto no ecossistema LMSYS — a mesma comunidade por trás do Chatbot Arena — também lhe deram credibilidade com o público de pesquisa desde o primeiro dia.

← Todos os termos
ESC