Transformers documentation
Optimisations du serveur
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"