Transformers documentation
Otimizações de servidor
Otimizações de servidor
transformers serve inclui otimizações para melhorar a taxa de transferência e reduzir o uso de memória.
Loteamento contínuo
O Continuous batching agrupa e intercala dinamicamente as solicitações para compartilhar as passadas de forward na GPU. Novas solicitações entram no lote conforme as outras avançam na etapa de prefill. As solicitações concluídas saem após a decodificação. Isso aumenta a utilização da GPU e o throughput sem comprometer a latência.
Adicione --continuous-batching para ativá-lo.
transformers serve \
--continuous-batching \
--attn-implementation "sdpa"Quantização
Quantização reduz o uso de memória mapeando os pesos para uma precisão menor. O transformers serve é compatível com todos os métodos de quantização do Transformers. Ele suporta modelos pré-quantizados e quantização em tempo de execução.
Modelos pré-quantizados não exigem nenhuma alteração. Eles oferecem o melhor equilíbrio entre desempenho e precisão. Instale a biblioteca de quantização apropriada. Em seguida, passe o modelo pré-quantizado do Hub para o argumento model.
curl http://localhost:8000/v1/responses \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen3-8B-GGUF",
"stream": true,
"input": "Tell me a three sentence bedtime story about a unicorn."
}'Use --quantization para quantizar um modelo em tempo de execução. Isso é útil para novos checkpoints ou finetunes sem pesos pré-quantizados. Apenas a quantização de 4 bits e 8 bits do bitsandbytes é suportada.
transformers serve \ --quantization bnb-4bit
Backend de atenção
Um backend de atenção otimizado melhora a eficiência de memória e acelera a inferência.
transformers serve \
--continuous-batching \
--attn-implementation "flash_attention_2"Apple Silicon (atenção flash Metal)
Com --continuous-batching no MPS, instale kernels para alternar para kernels-community/metal-flash-sdpa. Ele executa 1,66x mais rápido que o SDPA com generate_batch (gsm8k, Qwen2.5-0.5B-Instruct, fp16) e corresponde a ele token por token sob decodificação gulosa.
pip install kernels transformers serve --continuous-batching
Sem o loteamento contínuo, os modelos mantêm a atenção padrão (SDPA). Passe --attn-implementation para tentar outra, como kernels-community/metal-flash-sdpa.
Compilar
torch.compile rastreia e compila o loop de decodificação para uma inferência mais rápida.
Compile é incompatível com continuous batching.
transformers serve \ --compile
Tipo de dados
Os tipos de dados "bfloat16" ou "float16" economizam memória e aumentam a taxa de transferência.
transformers serve \
--continuous-batching \
--dtype "bfloat16"