Upgrade the vllm pip package with the following command to enable the new feature:
In this article
uv pip install --upgrade vllm --torch-backend autoThe transformers library has become the standard for machine learning modelling. It supports over 450 architectures through consistent APIs and is designed so that model implementations remain self-contained and easy to understand. Reviewing the transformers code allows contributors to learn how an architecture works and then port it to other frameworks such as vLLM, SGLang, MLX, llama.cpp, and many others.
Our team has embraced this role in the ecosystem and is investing significant effort to make it easier. A major step in this direction was the integration last year of transformers as a modelling backend in vLLM. This has allowed model authors to run transformers models inside vLLM without having to port anything. Transformers provides the modelling code, and vLLM provides extremely optimized inference techniques such as continuous batching and custom attention kernels.
This integration gets better now.
Showcase
We put the transformers modelling backend for vLLM against vLLM’s hand-written native implementations across three very different Qwen3 models:
- 4B dense model on a single GPU
- 32B dense model on tensor parallelism
- 235B-parameter FP8 Mixture-of-Experts on data and expert parallelism on the same 8×H100 node
The result: the transformers modelling backend now meets or beats native throughput on every one of them.
Running any Hugging Face model through the transformers modelling backend is a single flag — --model-impl transformers. It composes with the usual parallelism options, so nothing about your serving setup changes:
# Qwen3-4B dense, single GPU
vllm serve Qwen/Qwen3-4B --model-impl transformers
# Qwen3-32B dense, tensor-parallel across 2 GPUs
vllm serve Qwen/Qwen3-32B --model-impl transformers --tensor-parallel-size 2
# Qwen3-235B-A22B-FP8 MoE, data-parallel + expert-parallel across 8 GPUs
vllm serve Qwen/Qwen3-235B-A22B-FP8 --model-impl transformers --data-parallel-size 8 --enable-expert-parallel
# add --max-model-len 8192 if your node is memory constrained*Models that use linear attention are not currently supported, but they will be soon. Custom models where the code lives in a Hub repo are unlikely to work as they will not have been written compliantly.
How we measured
Each model is compared under three conditions that are identical in every way except the code path:
- native —
--model-impl vllm, vLLM’s hand-written model (the bar to match) - after —
--model-impl transformerswith the PR - before —
--model-impl transformerswithout the PR
The full, reproducible runner is available as a gist: benchmark.sh
So, what’s new?
The transformers modelling backend for vLLM used to focus on attention as the bottleneck for inference. By plugging vLLM’s attention implementation at runtime, we could make a transformers model run efficiently inside the vLLM engine. But there are many dimensions to deployments that only a custom port can target to extract maximum inference performance. Parallelization across GPUs, compilation, fused kernels, and many more, all contribute to leveraging your hardware to achieve ultra-fast inference.
Previously, a new model was integrated once for transformers, and once for vLLM with custom optimizations.
When model authors wanted the absolute best performance, they were still writing custom vLLM implementations.
Now, a new model once integrated to transformers can be immediately used in vLLM with native vLLM implementation speed.
The latest iteration of the transformers modelling backend for vLLM dynamically applies inference specific layer fusions at runtime to match the speed of custom code implementations, for compatible architectures.
How does it work?
The transformers modelling backend for vLLM now uses torch.fx to perform static analysis on the model’s graph. This process searches for known patterns that can be optimised. After any patterns have been identified, it uses ast (abstract syntax tree) to manipulate the source code and rewrite some of the operations in place.
What can we achieve with this?
- Fused operations that are many-to-one mapped to (ultra) optimized vLLM kernels, such as the ones used for Expert Parallelization (EP) in Mixture-of-Experts (MoE) models.
- The main other fused operations are vLLM’s
MergedColumnParallelLinearandQKVParallelLinear. These blocks allow us to infer parallel plans for TP (tensor-parallel). PP (pipeline-parallel) plans can also be inferred if the decoder block list is easily identifiable. - The manipulated models are still fully (torch) compilable, being passed through
torch.compileand CUDA Graphs, just the same as a dedicated vLLM model implementation. - Unlike vLLM model implementations, Transformers model implementations can be used in training. So you can use the same model code for training, evals, and RL rollouts.
As shown above, this results in native vLLM inference speed for compatible models, without having to write a single line of code to optimize the model for inference.
We are in the process of writing a detailed blog post to dive deep inside these optimized inference methods and explain in detail how we manipulate the model to adapt to them.
What it means
Developers can now run models written in the standard transformers library directly within the high-performance vLLM engine. The system automatically identifies patterns in the code and rewrites them to use vLLM’s faster kernels. This means you do not need to write custom code to get top speed, yet you still gain the benefits of advanced parallelization and hardware optimization.




