Transformers documentation

Optimisations du serveur

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

and get access to the augmented documentation experience

to get started

Optimisations du serveur

transformers serve intègre des optimisations pour améliorer le débit et réduire l’utilisation de la mémoire.

Batching continu

Continuous batching regroupe et entrelace dynamiquement les requêtes afin de partager les passes avant sur le GPU. Les nouvelles requêtes rejoignent le lot au fur et à mesure que les autres progressent dans la phase de préremplissage. Les requêtes terminées sont retirées après le décodage. Cela augmente l'utilisation du GPU et le débit sans compromettre la latence.

Ajoutez --continuous-batching pour l'activer.

transformers serve \
  --continuous-batching \
  --attn-implementation "sdpa"

Quantification

La quantification réduit l'utilisation de la mémoire en affectant les poids à une précision inférieure. transformers serve est compatible avec toutes les méthodes de quantification de Transformers. Il prend en charge les modèles pré-quantifiés et la quantification à l'exécution.

Les modèles pré-quantifiés ne nécessitent aucune modification. Ils offrent le meilleur équilibre entre performance et précision. Installez la bibliothèque de quantification appropriée. Puis passez le modèle pré-quantifié du Hub à l'argument 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."
  }'

Utilisez --quantization pour quantiser un modèle à l'exécution. Cette option est utile pour les nouveaux points de contrôle ou les finetunes ne disposant pas de poids pré-quantisés. Seules les quantisations 4 bits et 8 bits de bitsandbytes sont prises en charge.

transformers serve \
  --quantization bnb-4bit

Backend d'attention

Un backend d'attention optimisé améliore l'efficacité mémoire et accélère l'inférence.

transformers serve \
  --continuous-batching \
  --attn-implementation "flash_attention_2"

Apple Silicon (Metal flash attention)

Avec --continuous-batching sur MPS, installez kernels pour passer à kernels-community/metal-flash-sdpa. Il est 1,66 fois plus rapide que SDPA avec generate_batch (gsm8k, Qwen2.5-0.5B-Instruct, fp16) et correspond à SDPA jeton par jeton en décodage glouton.

pip install kernels
transformers serve --continuous-batching

Sans le lotissement continu, les modèles conservent leur attention par défaut (SDPA). Passez --attn-implementation pour en essayer une autre, comme kernels-community/metal-flash-sdpa.

Compiler

torch.compile trace et compile la boucle de décodage pour une inférence plus rapide.

Compile est incompatible avec le lotissement continu.

transformers serve \
  --compile

Type de données

Les types de données "bfloat16" ou "float16" économisent de la mémoire et augmentent le débit.

transformers serve \
  --continuous-batching \
  --dtype "bfloat16"
Update on GitHub