El backend de transformers en vLLM: rendimiento nativo para modelos grandes
vLLM ahora puede ejecutar modelos definidos en transformers con velocidad comparable a implementaciones nativas optimizadas. Esto reduce la necesidad de portar código y acelera la puesta en producción de LLM y VLM.
Resumen
El backend de transformers para vLLM alcanzó una meta ambiciosa: ejecutar modelos definidos en la librería transformers con rendimiento igual o superior al de implementaciones nativas hechas a medida en vLLM. Esto significa que autores de modelos pueden aprovechar el código de transformers y obtener inferencia ultra rápida en vLLM sin reescribir ni portar la implementación.
A nivel práctico, activar esta vía es tan simple como añadir un flag al comando de vllm: --model-impl transformers. La integración respeta las opciones habituales de paralelismo, por lo que no hay que cambiar la configuración de servicio.
Por qué esto importa
Transformers es la librería de referencia para implementar arquitecturas de Machine Learning: centraliza cientos de modelos con APIs coherentes y hace que el código de un modelo sea fácil de leer y reutilizar. Eso facilita que equipos, investigadores y proveedores de infraestructura adopten y evalúen nuevos modelos rápidamente.
Antes de esta mejora, obtener el máximo rendimiento en inferencia requería que los autores hicieran una implementación específica para vLLM, optimizada manualmente para aspectos como paralelismo, kernels fusionados y compilación. Ahora, muchas de esas optimizaciones se aplican dinámicamente a implementaciones de transformers en tiempo de ejecución, entregando rendimiento de primera sin trabajo adicional del autor.
Para equipos en América Latina esto reduce la barrera técnica: menos ingeniería dedicada a porting, despliegues más rápidos y la posibilidad de sacar valor comercial y operativo con menos inversión en optimizaciones específicas.
Evidencia y casos de prueba
El equipo puso a prueba el backend de transformers frente a las implementaciones nativas de vLLM usando tres variantes del modelo Qwen3:
- Qwen3-4B (modelo denso, ejecución en una GPU)
- Qwen3-32B (modelo denso con paralelismo tensorial)
- Qwen3-235B-A22B-FP8 (Mixture-of-Experts con paralelismo de datos y de expertos, en un nodo de 8×H100)
Resultado: el backend de transformers igualó o superó la tasa de procesamiento nativa en todos los casos probados. Las pruebas se compararon en condiciones idénticas variando solamente la ruta de ejecución: nativa vLLM, transformers antes de los cambios, y transformers tras las mejoras. El runner reproducible para los benchmarks está disponible como gist junto a la publicación original.
Cómo usarlo (ejemplos)
Ejemplos de comandos para servir modelos con el backend de transformers:
- Qwen3-4B en una GPU:
vllm serve Qwen/Qwen3-4B --model-impl transformers
- Qwen3-32B con paralelismo tensorial en 2 GPUs:
vllm serve Qwen/Qwen3-32B --model-impl transformers --tensor-parallel-size 2
- Qwen3-235B-A22B-FP8 con paralelismo de datos y expertos en 8 GPUs:
vllm serve Qwen/Qwen3-235B-A22B-FP8 --model-impl transformers --data-parallel-size 8 --enable-expert-parallel
Si el nodo tiene memoria limitada, agregar --max-model-len 8192 puede ayudar. Nota: los modelos que usan atención lineal todavía no son compatibles y los repositorios con código personalizado en el Hub podrían no funcionar si no siguen los patrones esperados.
¿Qué cambios técnicos permitieron esto?
La clave está en aplicar optimizaciones de inferencia a implementaciones de transformers en tiempo de ejecución, sin modificar el modelo original. Los pasos principales son:
- Análisis estático con torch.fx: se inspecciona el grafo del modelo para detectar patrones de operaciones que puedan fusionarse.
- Reescritura del código fuente con ast: una vez identificados los patrones, el código se manipula para reemplazar o agrupar operaciones en bloque que puedan mapearse a kernels altamente optimizados de vLLM.
Con esto se obtienen bloques fusionados como MergedColumnParallelLinear y QKVParallelLinear de vLLM, además de mecanismos optimizados para paralelismo de expertos en modelos MoE. Los modelos resultantes siguen siendo compatibles con herramientas de compilación como torch.compile y con CUDA Graphs, igual que una implementación nativa.
Un beneficio adicional es que las implementaciones de transformers continúan siendo utilizables en entrenamiento, eval y rollouts de RL, por lo que no hay que mantener un código separado sólo para inferencia.
Limitaciones y compatibilidad
- No todos los modelos son compatibles aún. En particular, aquellos que emplean mecanismos de atención lineal quedan fuera por ahora.
- Repositorios con implementaciones muy personalizadas en el Hub podrían no ajustarse a los patrones que el backend reconoce y, por lo tanto, no beneficiarse automáticamente.
- Las optimizaciones aplicadas dependen de que la estructura del bloque de decodificador sea identificable para poder inferir planes de pipeline-parallel (PP) y tensor-parallel (TP).
Estas limitaciones se están abordando progresivamente, y el equipo prometió documentación técnica más profunda sobre las transformaciones y el pipeline de optimización.
Implicaciones para equipos y proveedores en América Latina
Para empresas y centros de investigación en la región, la posibilidad de ejecutar modelos de transformers con rendimiento nativo en vLLM implica:
- Menor tiempo de ingeniería para portar y optimizar modelos, acelerando pilotos y Proofs of Concept.
- Más opciones para aprovechar infraestructura existente: desde nodos con GPU hasta servicios gestionados que soporten vLLM.
- Mayor capacidad para evaluar modelos del Hub con costos operativos más bajos en optimización.
Esto puede ser especialmente relevante para startups y grupos académicos que no cuentan con equipos grandes de SRE/ML infra, pero necesitan desplegar modelos LLM/VLM eficientemente.
Conclusión
La última iteración del backend de transformers en vLLM representa un avance importante en la convergencia entre facilidad de desarrollo y rendimiento en producción. Al aplicar fusiones y transformaciones automáticas sobre implementaciones de transformers, vLLM ofrece inferencia de alta velocidad sin exigir que los autores porten su código.
Para equipos que evalúan o despliegan LLM en América Latina, esto reduce fricción operativa y permite enfocar recursos en casos de uso y producto, en lugar de en micro-optimizaciones de inferencia. Queda trabajo por delante en compatibilidad con todos los patrones de atención y repos personalizados, pero los resultados ya disponibles muestran que la barrera para desplegar modelos de última generación es menor que antes.
Recursos
En la publicación original se enlazan recursos útiles para profundizar: definiciones de modelos en transformers, el backend de transformers en vLLM, consideraciones para grandes despliegues, torch.fx y trabajo con Abstract Syntax Tree. Revisar esos enlaces ayuda a entender a fondo las transformaciones que se aplican y a evaluar la compatibilidad de implementaciones propias.
Fuente original: Hugging Face Blog