# SGLang

[SGLang](https://docs.sglang.ai) é um motor de inferência de baixa latência e alto throughput para modelos de linguagem grandes (LLMs). Ele também inclui uma linguagem de frontend para a construção de fluxos de trabalho agênticos.

Defina `model_impl="transformers"` para carregar um backend de modelagem do Transformers.

```py
import sglang as sgl

llm = sgl.Engine("meta-llama/Llama-3.2-1B-Instruct", model_impl="transformers")
print(llm.generate(["The capital of France is"], {"max_new_tokens": 20})[0])
```

Passe `--model-impl transformers` para o comando `sglang.launch_server` para o serviço online.

```bash
python3 -m sglang.launch_server \
  --model-path meta-llama/Llama-3.2-1B-Instruct \
  --model-impl transformers \
  --host 0.0.0.0 \
  --port 30000
```

## Integração com Transformers

Definir `model_impl="transformers"` instrui o SGLang a ignorar o correspondimento nativo de modelos e usar diretamente o modelo do Transformers.

1. [PreTrainedConfig.from_pretrained()](/docs/transformers/main/pt/main_classes/configuration#transformers.PreTrainedConfig.from_pretrained) carrega o `config.json` do modelo do Hub ou do seu cache do Hugging Face.
2. [AutoModel.from_config()](/docs/transformers/main/pt/model_doc/auto#transformers.AutoModel.from_config) resolve a classe do modelo com base na configuração.
3. Durante o carregamento, `_attn_implementation` é definido como `"sglang"`. Isso direciona as chamadas de atenção pelos kernels RadixAttention do SGLang.
4. A classe de linear paralelo do SGLang substitui as camadas lineares para suportar o paralelismo de tensor.
5. A função [load_weights](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/models/transformers.py#L277) preenche o modelo com pesos a partir de arquivos safetensors.

O modelo se beneficia de todas as otimizações do SGLang, ao mesmo tempo em que utiliza a estrutura do modelo do Transformers.

> [!WARNING]
> Os modelos compatíveis exigem `_supports_attention_backend=True` para que o SGLang possa controlar a execução da atenção. Consulte o guia [Building a compatible model backend for inference](./transformers_as_backend#model-implementation) para mais detalhes.

## Recursos

- [Documentação do SGLang](https://docs.sglang.ai/supported_models/transformers_fallback.html) tem mais exemplos de uso e dicas para usar o Transformers como backend.
- O post no blog [Transformers backend integration in SGLang](https://huggingface.co/blog/transformers-backend-sglang) explica o que essa integração habilita.

