Transformers documentation
Optimizaciones del servidor
Optimizaciones del servidor
transformers serve incluye optimizaciones para mejorar el rendimiento y reducir el uso de memoria.
Loteo continuo
Continuous batching agrupa e intercala dinámicamente las solicitudes para compartir las pasadas hacia adelante en la GPU. Las nuevas solicitudes se unen al lote mientras otras avanzan en la fase de prefill. Las solicitudes completadas se retiran después de la decodificación. Esto aumenta la utilización de la GPU y el rendimiento sin comprometer la latencia.
Agrega --continuous-batching para habilitarlo.
transformers serve \
--continuous-batching \
--attn-implementation "sdpa"Cuantización
Cuantización reduce el uso de memoria al mapear los pesos a una precisión inferior. transformers serve es compatible con todos los métodos de cuantización de Transformers. Admite modelos precuantizados y cuantización en tiempo de ejecución.
Los modelos pre-cuantizados no requieren ningún cambio. Ofrecen el mejor equilibrio entre rendimiento y precisión. Instale la biblioteca de cuantización adecuada. Luego, pase el modelo pre-cuantizado del Hub al 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 cuantizar un modelo en tiempo de ejecución. Esto es útil para nuevos puntos de control o ajustes finos sin pesos precuantizados. Solo se admiten la cuantización de 4 bits y 8 bits de bitsandbytes.
transformers serve \ --quantization bnb-4bit
Backend de atención
Un backend de atención optimizado mejora la eficiencia de memoria y acelera la inferencia.
transformers serve \
--continuous-batching \
--attn-implementation "flash_attention_2"Apple Silicon (atención flash de Metal)
Con --continuous-batching en MPS, instale kernels para cambiar a kernels-community/metal-flash-sdpa. Se ejecuta 1,66 veces más rápido que SDPA con generate_batch (gsm8k, Qwen2.5-0.5B-Instruct, fp16) y coincide token por token con la decodificación codiciosa.
pip install kernels transformers serve --continuous-batching
Sin el loteo continuo, los modelos mantienen su atención predeterminada (SDPA). Pasa --attn-implementation para probar otra, como kernels-community/metal-flash-sdpa.
Compilar
torch.compile traza y compila el bucle de decodificación para una inferencia más rápida.
Compile no es compatible con el loteo continuo.
transformers serve \ --compile
Tipo de datos
Los tipos de datos "bfloat16" o "float16" ahorran memoria y aumentan el rendimiento.
transformers serve \
--continuous-batching \
--dtype "bfloat16"