Transformers documentation

Otimizações de servidor

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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"
Update on GitHub