vLLM v0.25.0 makes Model Runner V2 the default path for dense models
vLLM v0.25.0 made Model Runner V2 the standard dense-model execution path and removed legacy PagedAttention. The release also added parser, speculative decoding, distributed-serving, and security upgrades.

TL;DR
- vLLM v0.25.0 is an executor-path release: vllm_project's announcement puts it at 558 commits from 232 contributors, with Model Runner V2 made default for dense models and legacy PagedAttention retired.
- Dense models now run through MRv2 by default, and vllm_project's engine-core note lists EVS, realtime embeddings, Mamba hybrid prefix caching, multimodal-prefix bidirectional attention, and CUDA-graph-compatible dynamic speculative decoding.
- The Transformers backend reached native vLLM speed, and ben_burtenshaw's backend note framed the practical win as model-release readiness across a broad model range.
- Upgrade breakers are real: vllm_project's upgrade note says PagedAttention is deleted and Baichuan, Aquila, Grok, Tarsier/Tarsier2, AyaVision, MusicFlamingo, and Mantis were removed.
- Speculative decoding and distributed serving got production-shaped changes: vllm_project's Dynamic SD post says draft tokens now adapt to hardware and batch size, while vllm_project's serving note lists sequence parallelism, all2all fault detection, and secondary KV tiering.
The official release notes read like a subsystem map: execution path, parsers, speculative decoding, distributed serving, quantization, and security. The historical marker is PagedAttention: vLLM's original 2023 launch post made it the signature trick with up to 24x throughput over Hugging Face Transformers, and v0.25.0 deletes the legacy implementation. Hugging Face's July 8 backend writeup says Transformers implementations can now run at native-speed vLLM with --model-impl transformers.
Model Runner V2
Model Runner V2 is now the standard dense-model execution path. The enabling PR, vllm-project/vllm#44443, was part of the MRv1-to-MRv2 migration and was merged before the v0.25.0 release.
MRv2's default path now carries the pieces that used to be easy to miss in release-note sprawl:
- EVS support.
- Realtime embeddings.
- Prefix caching for Mamba hybrid models.
- Multimodal-prefix bidirectional attention.
- Dynamic speculative decoding compatible with full CUDA graphs.
- Cross-attention warmup and block-table fixes, according to the official release notes.
- Bounded memory for large-logprobs requests, also listed in the official release notes.
PagedAttention deletion
PagedAttention deletion lands with baggage. vLLM's 2023 launch post said older serving systems wasted 60 to 80% of KV-cache memory, while PagedAttention cut fragmentation waste below 4% and enabled much larger batches.
In v0.25.0, the legacy PagedAttention implementation is gone because V1/MRv2 backends are the standard path. The same release-note section lists the deletion again under deprecations and removals.
Transformers backend
The backend story is simple and useful: Transformers model code no longer has to be the slow path by default. Hugging Face's native-speed vLLM backend post says model authors can use --model-impl transformers, keep standard vLLM serving features, and avoid separate custom vLLM ports for many architectures.
The Hugging Face benchmark compared three paths across Qwen3 4B, Qwen3 32B, and a 235B FP8 MoE setup:
- Native vLLM model implementation,
--model-impl vllm. - Transformers backend after the performance PR,
--model-impl transformers. - Transformers backend before the performance PR.
ben_burtenshaw's follow-up quote sits just outside the vLLM API surface: ben_burtenshaw's tenant-bound quote describes proprietary learning environments inside a tenant boundary, where company knowledge stays inside the tenant during training or tuning.
Streaming Parser Engine
Tool-call and reasoning parsing now share one framework. The release notes name Kimi k2.5/k2.6/k2.7 as a new parser target, with seed_oss and DeepSeek V4 ports folded into the same parser work.
The same frontend batch adds Rust-side serving features:
- Static HTTPS and mTLS for HTTP and gRPC.
- A data-parallel supervisor.
- Profiler control routes.
- A combined parser interface.
- Reduced multimodal tensor copies, according to the official release notes.
Speculative decoding
v0.25.0 adds universal speculative decoding for heterogeneous vocabularies through TLI, plus DSpark and DFlash drafters. vllm_project separately highlighted Dynamic SD, merged with Cohere's help, as a batch-size-aware way to avoid fixed draft-token settings that help one workload and hurt another.
Cohere's Dynamic Speculative Decoding writeup gives the operating model:
- Small batch sizes are often memory-bandwidth-bound, so extra draft tokens can use otherwise idle compute.
- Large batch sizes can become compute-bound, so fixed speculative work can erase the speedup.
- Dense models generally want higher K at smaller batch sizes and lower K at larger batch sizes.
- MoE models can have non-monotonic optimal K because expert loading and verification costs move differently.
The vLLM Dynamic Speculative Decoding docs expose this through num_speculative_tokens_per_batch_size.
Hardware kernels
The hardware list is the kind of release-note section infra teams actually grep for. v0.25.0 has separate paths for NVIDIA Blackwell and GB300, AMD ROCm, Intel XPU, CPU, RISC-V, and PowerPC.
The headline kernel changes:
- GLM-5.2 and DeepSeek: fused indexer kernel, 1.9 to 3.3% E2E throughput.
- GLM-5.2 and DeepSeek: reduce-scatter MoE all-reduce, about 3% E2E throughput.
- DSv4:
token_to_req_indicescache, 5 to 6x kernel speedup. - NVIDIA: FlashInfer fused all-reduce tuned for GB300 and restored Blackwell NVFP4 decode throughput.
- AMD ROCm: torch 2.11 stable ABI, AITER FlashAttention MLA prefill backend, and fused shared-expert paths.
- Intel XPU: W8A8 FP8 linear kernel with multi-granularity quantization.
- CPU and beyond: faster unquantized MoE on AArch64, Apple Silicon hang fix, RISC-V RVV INT4 GEMM, and fp16 on PowerPC.
Distributed serving
Distributed serving got several small changes with direct correctness and throughput consequences. vllm_project lists sequence parallelism without data parallelism at 1.9 to 5.0% E2E throughput improvement.
The serving-side changes cluster into four buckets:
- Collectives: NCCL symmetric memory extended to AllGather and ReduceScatter.
- Fault tolerance: all2all peer-fault detection to prevent corrupted output.
- Data parallel: local-prefill throttling, rotated load-balancer tie-breaks, and a Rust frontend DP supervisor.
- PD disaggregation: secondary KV tier, Mooncake connector support for Qwen3.5 GDN and DeepSeek-V4-Flash MLA, and merged
kv_transfer_paramsfor MultiConnector.
Model zoo and quantization
v0.25.0 expands the model list while also cutting older entries. New additions include LLaVA-OneVision-2, Unlimited OCR, MOSS-Transcribe-Diarize, openai/privacy-filter, and Hy3.
The release also pulls GLM-5 and DeepSeek-V3.2 into the model zoo, adds GLM-5.2 tuning, and gives MiniMax-M3 pipeline parallelism plus NVFP4 support. On quantization, [vllm_project's serving note] lists Humming 2/3/5/6/7-bit weight-only inference and Triton INT4 per-token-head KV cache quantization.
Security and removals
Security fixes were not the headline, but v0.25.0 includes several input-bounding changes. The official release notes list an image decompression-bomb OOM denial-of-service guard, a NaN-audio infinite-loop fix, bounded tokenizer work when truncation_side is explicit, and a block on request-level GPU video backend selection.
The same removal section deletes Baichuan, Aquila, Grok, Tarsier/Tarsier2, AyaVision, MusicFlamingo, and Mantis. It also moves the legacy api_server.py to examples, removes gptq_marlin from supported ROCm quant schemes, and deprecates the old FP8 online MoE quantization class.