# vLLM changelog > A high-throughput, memory-efficient inference engine for LLMs. - Vendor: vLLM - Category: AI - Official site: https://docs.vllm.ai - Tracked by: What's New (https://whatsnew.fyi/product/vllm) - Harvested from: GitHub (vllm-project/vllm) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v0.26.0 - Date: 2026-07-27 - Version: v0.26.0 - Original notes: https://github.com/vllm-project/vllm/releases/tag/v0.26.0 - Permalink: https://whatsnew.fyi/product/vllm/releases/v0.26.0 - **added** — New Inkling model family with full support including base modeling, piecewise CUDA graph support, Hopper FA4 relative attention, MTP=1 speculative decoding, LoRA, and standard ModelOpt NVFP4 quantization - **changed** — fp32 lm_head for generation models via head_dtype parameter, extended to the LoRA path and with ROCm torch.mm fast path - **added** — Flexible attention backends allowing selection per KV-cache group and explicit sliding-window support as a backend capability - **added** — KV offloading and tiered secondary storage with offloading metrics, tier-owned event handling, object-store secondary tier with workload identity, and DP-replica-aware tiering - **added** — Rust frontend gained multimodal video and audio support, Seed-OSS tool parser, and native vllm-bench port - **changed** — Updated to Transformers 5.13.0 with more models migrated to the Transformers modeling backend including Olmo/Olmo2, MistralLarge3, and HunyuanVL - **added** — New model support for BertForMaskedLM, RobertaForTokenClassification, XLMRobertaForTokenClassification, LongCat-Flash-Lite n-gram embedding, Cosmos3 Edge Reasoner, Cosmos3-Super, and TranslateGemma-12b-it - **added** — DeepSeek-V4 performance optimizations including specialized routing kernel, fused_topk_bias, and redundant repeat/copy removal - **added** — Speculative decoding enhancements including runtime draft weight update, hybrid SWA and full attention DFlash drafters, and separate kv_cache_dtype configuration - **added** — MoE router GEMMs optimizations including BF16x3 router GEMM, FP32 router GEMV, and generic CuteDSL LL BF16 router GEMM - **added** — ROCm optimizations for fp32 head_dtype torch.mm fast path, DSv4 two-stage compressor kernel, and sparse decode/prefill improvements - **added** — Partial prefix-cache hit for hybrid models and selective hybrid cache retention - **added** — CUDA kernel for ReLUSquaredActivation and relu^2 operation - **fixed** — Host memory leak from undrained new_block_ids - **fixed** — DSv3.2 with MTP and sequence-parallel accuracy - **fixed** — Correct pooling scores for chunked prefill under torch.compile - **changed** — GLM5.2 MoE sequence-parallel support migrated to the non-torch-compiled path - **added** — Multimodal automatic fallback to ViT data parallelism when TP is unavailable - **changed** — Vectorized _copy_mamba_state_block to uint64 and removed upcasting logits to fp32 in the sampler #### vLLM v0.26.0 Release Notes ##### Highlights This release features 411 commits from 212 contributors (61 new)! * **New Inkling model family** with a full support stack: base modeling (#48799), piecewise CUDA graph support (#48822), Hopper FA4 relative attention (#48858), MTP=1 speculative decoding (#48869), LoRA (#48884), and standard ModelOpt NVFP4 quantization (#48990). * **DeepSeek-V4 performance push** across vendors: a specialized routing kernel (2.94% E2E TPOT, #48660), `fused_topk_bias` (1.5–2x kernel, #47463), and redundant repeat/copy removal (1.8% E2E TPOT, #48137), plus ROCm two-stage compressor for HCA prefill (#47718), sparse decode/prefill optimizations (#48519, #48788, #46275), and DSpark speculative decoding on AMD (#47419) and XPU (#47677). * **fp32 `lm_head` for generation models via `head_dtype`** (#48390), extended to the LoRA path (#48525) and given a ROCm `torch.mm` fast path (#48688), improving accuracy for generation heads. * **Flexible attention backends**: the attention backend can now be selected per KV-cache group (#48012), and sliding-window support is now an explicit backend capability (#48011) — improving support for hybrid models. * **KV offloading & tiered secondary storage** matured substantially: offloading metrics (#45958, #47666, #47679), tier-owned event handling (#46544, #47923), object-store secondary tier with workload identity (#47063, #47274, #48150), DP-replica-aware tiering (#47987), and encoder-cache (EC) connectors including CPU offloading (#42433, #47423). * **Rust frontend** gained multimodal video (#47959) and audio (#48554), a Seed-OSS tool parser (#47741), and a native `vllm-bench` port (#48107). * **Transformers 5.13.0** (#47867) with more models migrated to the Transformers modeling backend: Olmo/Olmo2 (#48100), MistralLarge3 (#48153), and HunyuanVL (#47872). ###### Model Support * New models: Inkling family (#48799, #48822, #48858, #48869, #48884, #48990), BertForMaskedLM (#48463), RobertaForTokenClassification / XLMRobertaForTokenClassification (#47991), LongCat-Flash-Lite n-gram embedding (#47857), Cosmos3 Edge Reasoner (#48291) and Cosmos3-Super registration (#48211), TranslateGemma-12b-it (#41599). * Transformers backend migrations: Olmo/Olmo2 (#48100), MistralLarge3 to AutoWeightsLoader (#48153), HunyuanVL native transformers processor for transformers 5.13 (#47872). * GLM5.2: migrate MoE sequence-parallel support to the non-torch-compiled path (#47881). * LoRA: FlashInfer MoE LoRA for BF16 models (#48632), LoRA for tower/connector in LlavaNextVideo (#48594), fp32 `lm_head` on the LoRA path (#48525), optimized `TrtLlmLoRAExperts` (#48759). * Multimodal: automatic fallback to ViT data parallelism when TP is unavailable (#49046). * Fixes: correct pooling scores for chunked prefill under `torch.compile` (#48901). ###### Engine Core * fp32 `lm_head` for generation models via `head_dtype` (#48390); lower memory for capturing large CUDA graph sizes (#48483); opt-in persistence and reuse of the memory-profiling result across boots (#47388); improved InstantTensor loading (#46868). * Attention: select a different attention backend per KV-cache group (#48012); sliding-window as an explicit backend capability (#48011); KV-cache layout refactor packing K/V into the content dim across backends (#44455); MRV2 virtual-batch PCP for MLA (#46570). * Speculative decoding: runtime draft weight update (#46725), hybrid (SWA + full attention) DFlash drafters (#47914), SWA support for qwen-eagle3 (#47568), Gemma4-12B DSpark draft model (#47216), DSv4 DSpark on AMD (#47419), separate `kv_cache_dtype` for `speculative_config` (#48787). * KV offloading: basic offloading metrics (#45958), split CPU cache usage into read/write gauges (#47666) and tiering-lookup-delay into sync/async histograms (#47679), tier-owned event handling and BlockStored events (#46544, #47923), object-store secondary tier with workload identity (#47063, #47274, #48150), DP-replica-awar _[Truncated at 4000 characters — full notes: https://github.com/vllm-project/vllm/releases/tag/v0.26.0]_ ### v0.25.1 - Date: 2026-07-14 - Version: v0.25.1 - Original notes: https://github.com/vllm-project/vllm/releases/tag/v0.25.1 - Permalink: https://whatsnew.fyi/product/vllm/releases/v0.25.1 - **fixed** — Avoid blocking model launching when no system FFmpeg is available for TorchCodec by deferring the error to runtime instead of raising it at import time - **fixed** — Guard mixed-dtype allreduce RMSNorm quant fusions to prevent hidden state corruption when activation and RMSNorm weight dtypes differ #### vLLM v0.25.1 ##### Highlights This release features 2 commits from 2 contributors (1 new)! v0.25.1 is a patch release containing two targeted bug fixes on top of v0.25.0. ###### Bug Fixes * **Avoid blocking model launching when no system FFmpeg is available for TorchCodec** (#47888). Previously `import torchcodec` raised a `RuntimeError` at import time when system FFmpeg was missing, which blocked startup (e.g. `vllm serve Qwen/Qwen3-VL-2B-Instruct`) even when TorchCodec was not in use. The error is now deferred to runtime so it only surfaces if TorchCodec is actually needed. * **Guard mixed-dtype allreduce RMSNorm quant fusions** (#48330). The fused FlashInfer allreduce + RMSNorm + static-quantization patterns could match graphs where the activation and RMSNorm weight dtypes differ (e.g. a BF16 residual stream with an FP32 Gemma/Qwen-style RMSNorm weight in NVFP4 models), corrupting the hidden state and producing garbage output such as repeated `!!!!!` tokens. A dtype-match guard now routes incompatible mixed-dtype graphs to the safe path, while same-dtype models retain the full allreduce + RMSNorm + quant fusion. ##### Contributors @Isotr0py, @hugo-cen ##### New Contributors * @hugo-cen made their first contribution in https://github.com/vllm-project/vllm/pull/48330 ### v0.25.0 - Date: 2026-07-11 - Version: v0.25.0 - Original notes: https://github.com/vllm-project/vllm/releases/tag/v0.25.0 - Permalink: https://whatsnew.fyi/product/vllm/releases/v0.25.0 - **changed** — Model Runner V2 is now the default for all dense models - **removed** — PagedAttention legacy attention implementation has been deleted - **changed** — Transformers modeling backend is now as fast as native vLLM - **added** — New models: LLaVA-OneVision-2, Unlimited OCR, MOSS-Transcribe-Diarize, openai/privacy-filter, and Hy3 - **added** — New Streaming Parser Engine with unified tool-call and reasoning parsing framework - **added** — Universal speculative decoding for heterogeneous vocabularies - **added** — Model Runner V2 support for Embeddable Vision Streaming - **added** — Model Runner V2 support for realtime embeddings - **added** — Model Runner V2 support for prefix caching for Mamba hybrid models - **added** — Model Runner V2 support for multimodal-prefix bidirectional attention - **added** — Model Runner V2 support for dynamic speculative decoding compatible with full CUDA graphs - **added** — Transformers backend gained FP8 MoE support - **fixed** — Transformers backend CUDA graph and embed scaling issues - **added** — GLM-5 and DeepSeek-V3.2 added to the model zoo - **added** — MiniMax-M3 gained pipeline parallelism and NVFP4 support - **added** — Rust frontend support for HTTPS and mTLS - **added** — Sleep mode pluggable backend abstraction - **added** — FlashAttention block-size restriction removed for hybrid models - **changed** — KV offloading infrastructure improved with tiering metric plumbing and batched lookup in C - **fixed** — Several int32 overflow fixes in sampler and attention kernels #### vLLM v0.25.0 Release Notes ##### Highlights This release features 558 commits from 232 contributors (64 new)! * **Model Runner V2 is now the default for all dense models** (#44443). Building on quantized-model support from the previous release, MRv2 is now the standard execution path, with new support for EVS (#46535), realtime embeddings (#46762), prefix caching for Mamba hybrid models (#42406), multimodal-prefix bidirectional attention (#46942), and dynamic speculative decoding compatible with full CUDA graphs (#45953). * **PagedAttention has been removed** (#47361). The legacy attention implementation is deleted now that V1/MRv2 backends are the standard path. * **The Transformers modeling backend is now as fast as native vLLM** (#47187), and gained FP8 MoE support (#46820), CUDA graph + embed scaling fixes (#48010), and migration of GPTBigCode/Starcoder2 (#30966) and RoBERTa (#47452). * **New models**: LLaVA-OneVision-2 (#44785), Unlimited OCR (#46564, #47102), MOSS-Transcribe-Diarize (#47729), openai/privacy-filter (#41026), and Hy3 (#47192). GLM-5 / DeepSeek-V3.2 landed in the model zoo (#46808) with GLM-5.2 tuning, and MiniMax-M3 gained pipeline parallelism (#45810) and NVFP4 support (#46756). * **New Streaming Parser Engine** (#46610) — a unified tool-call/reasoning parsing framework, with a new Kimi k2.5/k2.6/k2.7 parser and ports of seed_oss (#46314) and DeepSeek V4 (#45877). The Rust frontend continues to mature with HTTPS/mTLS (#45890), a DP supervisor (#47076), and profiler control routes (#46306). * **Universal speculative decoding for heterogeneous vocabularies (TLI)** (#38174), plus new DSpark (#46995) and DFlash (#46770, #46853) drafters. ###### Model Support * New models: LLaVA-OneVision-2 (#44785), Unlimited OCR (#46564) with a Triton R-SWA backend (#47102), MOSS-Transcribe-Diarize (#47729), openai/privacy-filter (#41026), Hy3 with token-suffix and JSON Schema array support (#47192). * GLM-5 family: GLM-5 / DeepSeek-V3.2 added to the model zoo (#46808), GLM-5.2 FP32 gate (#47410), GLM MTP post-final-norm fix (#47448), GLM4V startup fix (#47155). * MiniMax-M3: pipeline parallelism (#45810), streaming reasoning parsing (#45718), and `tok_sparse_select` from MSA replacing Triton kernels (#47502). * Transformers backend: now as fast as native vLLM (#47187), FP8 MoE fix (#46820), embed scaling + CUDA graph fix (#48010), GPTBigCode/Starcoder2 (#30966) and RoBERTa (#47452) migration, M-RoPE `mm_token_type_ids` fix (#46552), tied-embedding `lm_head.bias` fix (#46835). * Voxtral: migrated to mistral-common 1.11.5 audio API (#46705) and realtime token-feedback hang fix (#44461). * Gemma family: Gemma4 sliding-window/FA4 attention fixes (#47217, #47332), Gemma4 MTP quant_config fix (#47091); DiffusionGemma tensor parallelism (#45719) and HF stability-window semantics (#45965). * Other fixes: MiniCPM-V 4.6 language-backbone LoRA (#46740) and placeholder grid fix (#45918), pooled Whisper sliding-window sizing (#47071, #47437), Mamba/Mamba2 checkpoint-without-`architectures` crash fix (#46037), DeepSeek-V2 hidden-size and aux-hidden-state fixes (#46986, #46973). ###### Engine Core * Model Runner V2: default for all dense models (#44443); EVS (#46535), realtime embeddings (#46762), Mamba hybrid prefix caching (#42406), multimodal-prefix bidirectional attention (#46942), cross-attention warmup/block-table fixes (#46753, #47308), Mamba2 crash fix (#47428), scheduling slot accounting (#46974), model-ref cleanup on shutdown (#47483), bounded memory for large-logprobs requests (#46746). * Speculative decoding: universal spec decode for heterogeneous vocabularies (TLI) (#38174); DSpark drafter + speculators checkpoint support (#46995, #47093); DFlash backend selection (#46770), per-layer RMSNorm fusion (#46761), CPU support (#44029), SWA+DFlash for MiMo (#46104), Laguna XS.2.1 drafter (#46853); MTP for Bailing hybrid models (#44880); block verification for rejection sampling (#46781); reduced TP _[Truncated at 4000 characters — full notes: https://github.com/vllm-project/vllm/releases/tag/v0.25.0]_ ### v0.24.0 - Date: 2026-06-29 - Version: v0.24.0 - Original notes: https://github.com/vllm-project/vllm/releases/tag/v0.24.0 - Permalink: https://whatsnew.fyi/product/vllm/releases/v0.24.0 - **added** — Added support for the MiniMax-M3 model with BF16/FP8 indexer, MXFP4 support, and FP8 sparse GQA - **added** — Added DeepSeek-V4 optimizations including FlashInfer sparse index cache, prefill chunk-planning, cluster-cooperative topK kernel, and contiguous per-block KV allocations - **added** — Model Runner V2 now supports quantized models by default and enables GraniteMoE by default - **added** — Added streaming parser engine that unifies tool-call and reasoning parsing across models including Qwen3, MiniMax-M2, GLM-4.7/5.1/5.2, and Nemotron V3 - **added** — Added DiffusionGemma model support with CPU path and structured-output guardrails for diffusion decoders - **added** — Integrated DeepEP v2 for expert parallelism - **added** — Rust frontend now includes API-key authentication, CORS, `/tokenize` and `/detokenize` endpoints, `/pause`, `/resume`, `/is_paused` endpoints, `/abort_requests`, `/get_world_size`, `thinking_token_budget`, and Python bridge for Rust tool parsers - **added** — Added support for new models: MiniMax-M3, DiffusionGemma, Hierarchical Reasoning Model (HrmTextForCausalLM), and OpenMOSS - **changed** — vLLM no longer sets `CUDA_VISIBLE_DEVICES` internally; use new `device_ids` argument instead - **changed** — DeepSeek-V4 now enabled on SM120 alongside GLM-5.1 with XPU and ROCm attention and MoE paths - **changed** — Model Runner V2 gained migration of Qwen and DeepSeek-V2 MoE models and DFlash speculative decoding - **changed** — Gemma 4 now features unified FlashAttention across all layers with `mm_prefix` support and engine-based parser implementation - **changed** — Qwen models improved with Qwen3-VL video loader, Qwen2-VL/Qwen2.5-VL processor-mapped video loader, and Qwen3-VL multi-video optimization - **changed** — KV cache scheduler now includes watermark to reduce preemptions, two-phase allocation for cross-group prefix-cache hits, and Marconi-style admission policy for hybrid cache - **changed** — Re-enabled cross-layer KV cache layout for MLA via stride-aware kernels - **fixed** — Fixed MiniMax-M2 performance regression - **fixed** — Fixed FP8 KV-cache issue for MiniMax models - **fixed** — Fixed race condition in async accepted counts for speculative decoding #### vLLM v0.24.0 Release Notes ##### Highlights This release features 571 commits from 256 contributors (77 new)! * **MiniMax-M3**: Added support for the new **MiniMax-M3** model (#45381), with a fast follow-on of BF16/FP8 indexer via MSA (#45892), MXFP4 support (#45896), FP8 sparse GQA (#45744), and extensive AMD/ROCm tuning — mxfp8 MoE/linear on gfx950 (#45725), fp8_per_channel for bf16 weights on MI300X (#45854), FP8 KV-cache fix (#45720), and packed-modules mapping (#45794). A MiniMax-M2 perf regression was also fixed (#45935). * **DeepSeek-V4 keeps maturing**: Following its debut, DeepSeek-V4 received another large optimization pass — a FlashInfer sparse index cache (2–4% TTFT) (#45863), prefill chunk-planning optimization (4% E2E throughput) (#45061), a cluster-cooperative topK kernel for low-latency (#43008), contiguous per-block KV allocations (#44577), TEP=16 for the block-FP8 shared expert (#46001), and native DSA indexer decode for `next_n > 2` on SM100 (#45322). It is now enabled on **SM120** alongside GLM-5.1 (#43477), with XPU (#44144, #44517, #45240) and ROCm (#44899, #45103, #45681) attention/MoE paths added. * **Model Runner V2 (MRv2) continues to expand**: MRv2 now **supports quantized models by default** (#44446), enables **GraniteMoE by default** (#45461), and gained migration of Qwen + DeepSeek-V2 MoE models (#42667), DFlash speculative decoding (#44586), and more accurate FP32 Gumbel sampling (#45996). * **Streaming Parser Engine**: A new streaming parser engine unifies tool-call/reasoning parsing across models, with parsers for Qwen3 (#45413), MiniMax-M2 (#45701), GLM-4.7/5.1/5.2 (#45915), and Nemotron V3 (#45755). * **Diffusion LLMs**: Added **DiffusionGemma** (#45163), including a CPU path (#45690) and structured-output guardrails for diffusion decoders (#45468). * **WideEP / DeepEP v2**: Integrated **DeepEP v2** for expert parallelism (#41183), with follow-on robustness fixes (#46404, #46432). * **Rust frontend matures further**: Added API-key authentication (#44321), CORS (#45753), `/tokenize` + `/detokenize` (#44222), `/pause` `/resume` `/is_paused` (#44499), `/abort_requests` (#44382), `/get_world_size` (#44801), `thinking_token_budget` (#46137), a Python bridge for Rust tool parsers (#44624), and many new parsers and validation paths. * **Device selection change**: vLLM no longer sets `CUDA_VISIBLE_DEVICES` internally; a new `device_ids` argument is provided instead (#45026). On ROCm, a deprecation window for `CUDA_VISIBLE_DEVICES` has begun (#46636). ###### Model Support * **New models**: MiniMax-M3 (#45381), DiffusionGemma (#45163) + Gemma Diffusion on CPU (#45690), Hierarchical Reasoning Model — Text / HrmTextForCausalLM (#43098), OpenMOSS (#44124). * **Gemma 4**: Unified FlashAttention (FA4) across all layers + `mm_prefix` support (#42175); many parser/serving fixes — forced-JSON skip for required/named tool choice (#45795), parsing with thinking disabled (#45832), streaming reasoning-state init (#45852), reasoning rendering on assistant turns (#45867), offline-parser truncation/token-leak fix (#45553); legacy Gemma4 parsers replaced with an engine-based implementation (#45588). * **DeepSeek-V4**: OOM fix (#44914), MTP projection prefixing (#44821), supported KV-cache dtypes (#44892). * **Qwen / multimodal**: Qwen3-VL video loader (#44412), Qwen2-VL/Qwen2.5-VL processor-mapped video loader (#45555), Qwen3-VL multi-video processing optimization (#46026) and multi-video crash fix (#46305), Qwen3-Omni VIT cu_seqlens device fix (#44264), fused qk-rmsnorm-rope-gate for Qwen3.5 (#44176), Qwen3.5 EP weight-loading fix (#45002). * **ViT full CUDA graph**: GLM-4.1V (#40576), DeepSeek-OCR dual-path (#43586), Kimi-VL (#41992), mllama4 (#40660), Lfm2VL encoder (#44930). * **Other model fixes**: Llama4 weight loading (#45047) and streamed loading to avoid host-OOM (#44645), MiMo v2.x QKV TP sharding + FP4 (#45200), ColQwen3.5 retrieval correctness (#46108), EXAONE-4.5 vision encod _[Truncated at 4000 characters — full notes: https://github.com/vllm-project/vllm/releases/tag/v0.24.0]_ ### v0.23.0 - Date: 2026-06-15 - Version: v0.23.0 - Original notes: https://github.com/vllm-project/vllm/releases/tag/v0.23.0 - Permalink: https://whatsnew.fyi/product/vllm/releases/v0.23.0 - **added** — DeepSeek-V4 gained TRTLLM-gen attention kernel support - **added** — DeepSeek-V4 gained EPLB support for the Mega-MoE - **added** — DeepSeek-V4 gained selective prefix-cache retention for sliding-window KV cache - **added** — DeepSeek-V4 gained index-share feature for DSA MTP - **added** — DeepSeek-V4 gained XPU attention decode path - **added** — Model Runner V2 is now selected by default for Llama and Mistral dense models - **added** — Model Runner V2 gained FlashInfer sampler - **added** — Model Runner V2 gained breakable CUDA graphs - **added** — Rust frontend added streaming generate endpoint - **added** — Rust frontend added dynamic LoRA endpoints - **added** — Rust frontend added /version and /server_info endpoints - **added** — Rust frontend added server-router extension hook - **added** — Rust frontend added request-ID headers - **added** — Added encoder-free Gemma 4 Unified support - **added** — Added Gemma 4 MTP support - **added** — vLLM now targets Transformers v5 with vendored MiniCPM-V/O processors - **added** — Multi-tier KV cache offloading framework gained object-store secondary tier - **added** — Unified parser with single Parser.parse() interface for reasoning and tool-call parsing - **changed** — DeepSeek-V4 sparse MLA metadata is now decoupled from DeepSeek-V3.2 - **changed** — Model Runner V2 pipeline-parallel bubble elimination for improved efficiency #### vLLM v0.23.0 Release Notes Please note that Minimax M3 is not yet supported in this version. Please follow [vLLM recipe](https://recipes.vllm.ai/MiniMaxAI/MiniMax-M3) for usage guides for M3. ##### Highlights This release features 408 commits from 200 contributors (63 new)! * **DeepSeek-V4 matures across backends**: Following its introduction in v0.22.0, DeepSeek-V4 received another large hardening and optimization pass. Its sparse MLA metadata is now decoupled from DeepSeek-V3.2 (#44699), it gained a TRTLLM-gen attention kernel (#43827), EPLB support for the Mega-MoE (#43339), selective prefix-cache retention for sliding-window KV cache (#43447), and an index-share feature for DSA MTP (#44420). The model was also detached from `torch.compile` (#43746, #43891), its attention and RoPE paths were refactored (#44569, #44262, #43926), and an XPU attention decode path was added (#42953). * **Model Runner V2 expands to more dense models**: MRv2 is now selected by default for **Llama and Mistral dense models** (#43458) in addition to Qwen3. It gained a FlashInfer sampler (#42472), breakable CUDA graphs (#44050), pipeline-parallel bubble elimination (#42187), kernel block-size support for hybrid models (#38831), and Gemma 4 MTP (#43241). * **Rust frontend grows up**: The experimental Rust frontend added a streaming `generate` endpoint (#43779), dynamic LoRA endpoints (#43778), `/version` (#43854) and `/server_info` (#43942) endpoints, a server-router extension hook (#43774), request-ID headers (#43883), and many new tool parsers (InternLM2 #43481, hy_v3 #43872, Phi-4-mini #44213, Gemma4 #43850). * **Gemma 4**: Added encoder-free **Gemma 4 Unified** support (#44429) and Gemma 4 MTP (#43241), plus numerous accuracy and startup fixes. * **Transformers v5 compatibility**: vLLM now targets Transformers v5, with vendored MiniCPM-V/O processors (#44282) and compatibility fixes for Sarvam (#38804) and Voxtral (#44559). * **Multi-tier KV cache offloading**: The offloading framework gained an **object-store secondary tier** (#41968), HMA enabled by default for capable connectors (#41847), tiering support for HMA models (#44287), and a per-request offloading policy via the `on_new_request` lifecycle hook (#43205). * **Unified parser**: Reasoning and tool-call parsing are now unified behind a single `Parser.parse()` interface (#44267), with the Responses parser migrated to it (#42977). ###### Model Support * **New models**: Step-3.7-Flash (#43859), Cosmos3 Reasoner (#43356), Gemma 4 Unified encoder-free (#44429), JetBrains Mellum v2 (#43992), Granite Speech Plus (#43519), Cohere Mini Code (#44707). * **Gemma 4**: Encoder-free Unified support (#44429), MTP (#43241), native ViT linear layers (#43798), vision-embedder excluded from quantization (#44571), and fixes for MTP under TP>1 (#43909), block-table mismatch under concurrency (#43982), transformers-processor startup crash (#44232), and CPU init (#44615). * **Transformers v5**: Vendor MiniCPM-V/O processors (#44282), Sarvam compat (#38804), Voxtral `fetch_audio` for transformers≥5.10 (#44559). * **Model fixes & enhancements**: Qwen3-VL/Qwen3-omni-thinker deepstack accuracy under `torch.compile` (#43617), EVS for Qwen3-VL (#44205), GLM-5.1 PP loading (#42944), GLM-4.1V processor logits (#43575), GLM-4.6V video loader (#44417), OlmoHybrid init (#43846), HyperCLOVAX remote-code removal (#43860), Bailing-MoE rotary factor (#43770), Step3 PP residual KeyError (#37622), MiniCPM-V-4.6 video (#44509), MiniCPM-O audio unpadding (#38053), MiniCPM-V batched preprocessing (#44609), FunASR-Nano init (#44215), Cohere routing method (#44021), Kimi-K2.5 FlashInfer ViT metadata (#44493). * **Multimodal**: Auto-select registered video loader for VLMs (#44126), O(log n) multimodal item handling per step (#44212), local image encoding in benchmarks (#43843), interleaved custom image benchmark datasets (#43636). * **Pooling/Classification**: Proper exceptions for pooling UX (#44593), _[Truncated at 4000 characters — full notes: https://github.com/vllm-project/vllm/releases/tag/v0.23.0]_ ### v0.22.1 - Date: 2026-06-05 - Version: v0.22.1 - Original notes: https://github.com/vllm-project/vllm/releases/tag/v0.22.1 - Permalink: https://whatsnew.fyi/product/vllm/releases/v0.22.1 - **added** — Add support for JetBrains' Mellum v2 open-weights Mixture-of-Experts code-generation model - **added** — Route W8A8 (int8 dynamic-symmetric) and W4A16 (GPTQ) linear inference through zentorch kernels on AMD Zen CPUs with transparent fallback on non-Zen CPUs, GPUs, and XPU - **fixed** — Resolve DeepSeek-V4 initialization broken by CUTLASS fmin compatibility issue - **fixed** — Fix OlmoHybridForCausalLM initialization after checkpoint changed rope_parameters from None to {"rope_type": None} - **fixed** — Fix HyperCLOVAX loading after upstream HuggingFace repo removed remote code by registering hyperclovax model_type - **fixed** — Fix deterministic hang in multi-node Ray data-parallel serving with num_api_servers > 1 by excluding Ray DP backend from deferred port allocation - **fixed** — Fix Docker image builds by stopping installation of flashinfer-jit-cache via --extra-index-url while quarantined on PyPI - **fixed** — Normalize NIXL KV-connector wheel installs to match image CUDA major version, fixing ImportError when importing nixl_ep on CUDA 13 images ##### Highlights This release features 8 commits from 6 contributors (1 new)! v0.22.1 is a patch release on top of v0.22.0 with targeted bug fixes plus a couple of additions: new model support for JetBrains' Mellum v2, zentorch-accelerated quantized linear inference on AMD Zen CPUs, and fixes for multi-node Ray data-parallel serving, DeepSeek-V4 initialization, and a few model-loading regressions. ###### Model Support * New model: JetBrains' **Mellum v2**, an open-weights Mixture-of-Experts code-generation model (#43992). * **DeepSeek-V4**: resolve a CUTLASS `fmin` compatibility issue that broke initialization (0decac0d). * Fix `OlmoHybridForCausalLM` failing to initialise after the checkpoint changed `rope_parameters` from `None` to `{"rope_type": None}` (#43846). * Fix **HyperCLOVAX** loading after the upstream HuggingFace repo removed its remote code (now native in `transformers >= 5.9.0`): register the `hyperclovax` model_type so vLLM uses its vendored config instead of the stale `auto_map` (#43860). ###### Hardware & Performance * **AMD Zen CPUs**: route W8A8 (int8 dynamic-symmetric) and W4A16 (GPTQ) linear inference through zentorch kernels, registered ahead of the generic oneDNN CPU kernels, with transparent fallback on non-Zen CPUs, GPUs, and XPU (#41813). ###### Large Scale Serving * Fix a deterministic hang in multi-node **Ray data-parallel** serving with `num_api_servers > 1` by excluding the Ray DP backend from the deferred (kernel-assigned) port allocation introduced in #42585 (#43864). ###### Build & CI * Docker: stop installing `flashinfer-jit-cache` via `--extra-index-url` while it is quarantined on PyPI, fixing image builds (#44366). * Normalize **NIXL** KV-connector wheel installs so only the wheel matching the image's CUDA major is kept, fixing `ImportError: libcudart.so.12` when importing `nixl_ep` on CUDA 13 images (#44266). ##### Contributors @khluu, @vadiklyutiy, @aadwived, @shadeMe, @alec-flowers, @hmellor ##### New Contributors * @aadwived made their first contribution in https://github.com/vllm-project/vllm/pull/41813 ### v0.22.0 - Date: 2026-05-29 - Version: v0.22.0 - Original notes: https://github.com/vllm-project/vllm/releases/tag/v0.22.0 - Permalink: https://whatsnew.fyi/product/vllm/releases/v0.22.0 - **added** — DeepSeek V4 model package reorganized into dedicated vllm/models/deepseek_v4/ directory - **added** — NVFP4 fused MoE support for DeepSeek V4 - **added** — Full and piecewise CUDA graph support for DeepSeek V4 - **added** — MTP speculative decoding for DeepSeek V4 - **added** — Multi-tier KV cache offloading framework with Python filesystem secondary tier - **added** — Mooncake disk offloading for KV cache - **added** — Model Runner V2 made default for Qwen3 dense models - **added** — Sleep-mode weight reload for Model Runner V2 - **added** — Shared KV-cache layers support in Model Runner V2 - **added** — Experimental Rust front-end integration with DP Supervisor for data-parallel serving - **added** — Cutlass FP8 support for batch-invariant inference - **added** — NVFP4 Cutlass linear path for batch-invariant inference - **added** — Custom callable proposer backend for speculative decoding - **added** — RVV-optimized attention kernels for RISC-V Vector Extension - **added** — Fused GDN kernel for AMX CPU - **changed** — Model Runner V2 now falls back to MRv1 for unsupported features - **changed** — Batch-invariant inference achieved 28.9% end-to-end latency improvement with Cutlass FP8 - **fixed** — DeepSeek V4 accuracy fixes including sparse MLA and compressor refactor - **fixed** — Model Runner V2 logprob_token_ids correctness - **fixed** — Model Runner V2 prompt-logprobs size - **fixed** — Multi-tier KV cache offloading store-deferral issue - **fixed** — KV cache reset_cache() functionality ##### Highlights This release features 459 commits from 230 contributors (63 new)! * **DeepSeek V4 maturity**: DeepSeek V4 received a major hardening pass this cycle — the model was reorganized into a dedicated `vllm/models/deepseek_v4/` package (#43004, #43039, #43073, #43077, #43149), gained NVFP4 fused MoE support (#42209), full + piecewise CUDA graph (#42604), and MTP speculative decoding (#43385). A large set of fused kernels (MegaMoE, `mhc`, Q-norm, indexer, sparse MLA) and ROCm parity fixes landed alongside accuracy fixes (#42810, #43710). * **Model Runner V2 advances toward default**: MRv2 is now default for Qwen3 dense models. vLLM will fall back to MRv1 for features that aren't yet supported in MRv2 (#39337). sleep-mode weight reload (#42673), `update_config` (#42783), and shared KV-cache layers (#35045), plus many correctness fixes. * **Experimental Rust frontend**: A new Rust front-end integration landed (#40848), with the implementation moved into the tree (#43283) and a DP Supervisor for data-parallel serving (#40841). * **Batch invariance, faster**: Batch-invariant inference gained Cutlass FP8 support for a **28.9% end-to-end latency improvement** (#40408), compile-mode support on SM80 (#42456), and an NVFP4 Cutlass linear path (#39912). * **Multi-tier KV cache offloading**: A new multi-tier KV cache offloading framework (#40020) with a Python filesystem secondary tier (#41735), DSv4 support (#43142), and Mooncake disk offloading (#42689) extends offloading beyond CPU memory. ###### Model Support * New architectures: MiniCPM-V 4.6 (#41254), InternS2 Preview (#42705), OpenVLA (#42654), MolmoWeb `hf_overrides` docs (#42163); EXAONE-4.5 aligned with Transformers update (#42246). * Speculative decoding: custom callable proposer backend (#39487), post-norm EAGLE-3 speculators (#42764), peagle speculators (#41826), hybrid-attention models in `extract_hidden_states` (#39949), non-MTP speculation for NemotronH (#43130), shared MTP weights in MRv2 (#42538). * DeepSeek V4: NVFP4 MoE (#42209), CUDA graph full/piecewise (#42604), MTP (#43385), model package refactor (#43004, #43039, #43073, #43077), sparse MLA + compressor refactor (#43149, #43710), MegaMoE input-prep kernel move (#43632). * Qwen3.5/3.6: GDN output-projection flatten (#42311), GatedDeltaNet Marlin TP≥2 fix (#36329), ViT full CUDA graph (#42151), runai-streamer weight loading for Qwen3.5/MTP/Qwen3-VL (#42521, #42716), KDA chunk-prefill exp2 semantics (#43195). * Gemma3/Gemma4: mixed-resolution image co-batching crash fix (#42217), MoE routing closure fix (#42250), tool-parser float-corruption fix (#42128), batched vision encoder for image/video (#43169), multi-GPU fix (#42630). * Kimi-K2.5: skip vision-tower dtype conversion under quantization (#42869), `mm_projector` dtype fix (#42081). * Cohere: enable Cohere MoE (#43143), pipeline parallelism for Cohere vision (#42819). * Tool calling: Apertus tool parser (#41154), Qwen3Coder `anyOf`/`oneOf`/`$ref` resolution re-land (#37831), shared `coerce_to_schema_type` across MiniMax-M2 / DeepSeek-V3.2 / Seed-OSS parsers (#43006, #43019, #43140). * ViT CUDA graph: Qwen2-VL (#41736), Step3-VL encoder (#42224), Qwen3.5 (#42151), FlashInfer metadata for Qwen2.5-VL vision attention (#42787). ###### Engine Core * Model Runner V2: Qwen3-dense-by-default oracle (#39337), sleep-mode reload weights (#42673), `update_config` (#42783), shared KV-cache layers (#35045), FP32 gumbel sampling (#41775), auto-fallback to MRv1 with connectors (#42955), `logprob_token_ids` correctness (#43125, #41761), prompt-logprobs size fix (#42778). * KV offloading: multi-tier framework (#40020), Python filesystem secondary tier (#41735), DSv4 support (#43142), tier-offload follow-up (#42529), prefer HND layout (#41928), `reset_cache()` (#41956), per-request tracking (#42507), store-deferral fix (#41945). * MoE refactor: `ExpertMapManager` (#41046), experts moved to `experts/` (#42334), `RoutedExperts` alias for FusedMoE _[Truncated at 4000 characters — full notes: https://github.com/vllm-project/vllm/releases/tag/v0.22.0]_ ### v0.21.0 - Date: 2026-05-15 - Version: v0.21.0 - Original notes: https://github.com/vllm-project/vllm/releases/tag/v0.21.0 - Permalink: https://whatsnew.fyi/product/vllm/releases/v0.21.0 - **deprecated** — Transformers v4 support is deprecated and users should migrate to transformers v5 - **changed** — vLLM now requires a C++20-compatible compiler for compatibility with PyTorch - **added** — KV offloading subsystem now integrates with the Hybrid Memory Allocator including scheduler-side sliding window group support - **added** — Speculative decoding now respects reasoning and thinking budgets for correct spec decode on reasoning models - **added** — TOKENSPEED_MLA attention backend available for DeepSeek-R1 and Kimi-K25 prefill and decode on Blackwell GPUs - **added** — New model architectures supported: MiMo-V2.5, Laguna XS.2, Moondream3, Qianfan-OCR, Cohere MoE, and Cohere Eagle - **added** — Speculative decoding support for EAGLE with Mistral, Gemma4 MTP, MTP for MiMo-V2.5, and Cohere Eagle - **added** — DeepSeek V4 AMD and ROCm support with pipeline parallelism - **added** — Tool calling support for Cohere reasoning and tool parsers, LFM2 and LFM2.5 tool parsers - **added** — Model Runner V2 support for Qwen3.5 and Mamba hybrid models with logprob_token_ids support - **added** — CUDA graph support for ViT with Qwen2.5-VL - **changed** — RayExecutorV2 enabled by default - **changed** — FlashInfer top-k and top-p sampler enabled by default - **added** — FP8 attention support for AMX and AVX-512 on CPU - **added** — Disaggregated serving now supports bi-directional KV cache transfers between prefill and decode nodes - **added** — PluggableLayer interface for out-of-tree MoE runners - **added** — Initial expert parallel support for LoRA - **added** — Vendor HCXVisionConfig for Transformers v5 compatibility ##### Highlights This release features 367 commits from 202 contributors (49 new)! * **Transformers v4 deprecated**: This release formally deprecates `transformers` v4 support (#40389). Users should migrate to `transformers` v5. * **C++20 build requirement**: vLLM now requires a C++20-compatible compiler for compatibility with PyTorch (#40380). This is a **breaking build change**. * **KV Offload + Hybrid Memory Allocator (HMA)**: The KV offloading subsystem now integrates with the Hybrid Memory Allocator, including scheduler-side sliding window group support and full HMA enablement (#41228, #41445, #39571). * **Speculative decoding with thinking budget**: Speculative decoding now respects reasoning/thinking budgets, enabling correct spec decode for reasoning models (#34668). * **TOKENSPEED_MLA backend on Blackwell**: A new TOKENSPEED_MLA attention backend is available for DeepSeek-R1/Kimi-K25 prefill + decode on Blackwell GPUs (#41778). ###### Model Support * New architectures: MiMo-V2.5 (#40967), Laguna XS.2 (#41129, #41880), Moondream3 (#32325), Qianfan-OCR (#40136), Cohere MoE (#40817), Cohere Eagle (#42078). * Speculative decoding: EAGLE for Mistral (#41024), Gemma4 MTP (#41745), MTP for MiMo-V2.5 (#41905), Cohere Eagle (#42078). * DeepSeek V4: AMD/ROCm support (#40871), pipeline parallelism (#41694), `max` reasoning effort (#40982), disaggregated serving fixes (#41957). * Tool calling: Cohere reasoning and tool parsers (#40422), LFM2/2.5 tool parser (#39243). * Gemma3/Gemma4: `hidden_act` variant support (#40588), pipeline parallelism fix (#40786), MoE fixes (#41206, #41574, #41401), tool parser crash fix (#41991, #42188). * Model Runner V2: Qwen3.5/Mamba hybrid model support (#35520), `logprob_token_ids` support (#40559). * CUDA graph: ViT CUDA graph support for Qwen2.5-VL (#40830). * Compatibility: Vendor HCXVisionConfig for Transformers v5 (#38447), legacy `rope_type` checkpoint support (#41734). ###### Engine Core * KV offloading + HMA: Scheduler-side sliding window groups (#41228), full HMA enablement (#41445), multi-connector HMA (#39571), per-job store completion (#39186), DCP/PCP support in OffloadingConnector (#41549), MooncakeStoreConnector for distributed KV offloading (#40900). * Speculative decoding: Thinking budget support (#34668), independent drafter attention backend selection (#39930), multimodal model support with warning (#41752), per-step allocation elimination (#41043). * Model Runner V2: Rejection sampling acceptance rate fix (#40651), skip metadata rebuild before draft prefill (#40410), rebuild metadata between draft decode steps (#41162), Qwen3.5/Mamba hybrid support (#35520). * Routing: Replace routing replay with device cache and async D2H pipeline (#39917). * Ray: RayExecutorV2 enabled by default (#41421), actor name collision fix for DP > 1 (#40398). * Stability: Two-phase pause to prevent scheduler deadlock (#39366), thread-safe HF tokenizer wrappers (#41181), OOM prevention via `max_split_size_mb` during model loading (#41268). * IndexCache support for DSA models (#37735). ###### Hardware & Performance * **NVIDIA Blackwell**: TOKENSPEED_MLA backend for DSR1/Kimi-K25 (#41778), faster per-token FP8 group quant packed kernel (#41326), FP8 on NVIDIA Thor/SM110 (#39712), CUTLASS scaled mm for non-compatible sizes (#41868). * **Performance**: FlashInfer top-k/top-p sampler enabled by default (#40376), FP8 FlashInfer attention for ViT (#38065), TurboQuant shared dequant buffers (#40941), `AllPool.forward` 51% faster (#41163), GPU<->CPU sync elimination in pooling (#41433) and attention (#41434), numpy zero-copy embedding serialization (#41681), multimodal processor skip for text-only (#41246), FlashInfer FP8 async TP fusion (#39505), NVFP4 all-gather GEMM fusion for AsyncTP (#41882), re-enable allreduce+RMS fusion for DP/PP (#41458), DeepSeek bf16→fp32 via `torch.mm` (#41300), persistent MLA for sparse backend (#41990), configurable safetensors checkpoint prefetc _[Truncated at 4000 characters — full notes: https://github.com/vllm-project/vllm/releases/tag/v0.21.0]_ ### v0.20.2 - Date: 2026-05-10 - Version: v0.20.2 - Original notes: https://github.com/vllm-project/vllm/releases/tag/v0.20.2 - Permalink: https://whatsnew.fyi/product/vllm/releases/v0.20.2 - **fixed** — Re-enable the persistent topk path on Hopper and ensure the memset kernel runs at CUDA graph capture time regardless of max_seq_len, fixing the MTP=1 hang on DeepSeek V4 - **fixed** — Fix a failure to allocate KV blocks error in the V1 engine KV cache manager for DeepSeek V4 - **fixed** — Plumb hidden_dim_unpadded through the moe_forward fake op so MXFP4 works under torch.compile on v0.20.x for gpt-oss - **fixed** — Remove an invalid deepstack boundary check in Qwen3-VL that could fail under heavy load #### vLLM v0.20.2 ##### Highlights This release features 6 commits from 6 contributors (0 new)! This is a small patch release with bug fixes for DeepSeek V4, gpt-oss, and Qwen3-VL ###### Bug Fixes * **DeepSeek V4 sparse attention**: Re-enable the persistent topk path on Hopper and ensure the memset kernel runs at CUDA graph capture time regardless of `max_seq_len`, fixing the MTP=1 hang on DeepSeek V4 (#41665, revert of #41605). * **DeepSeek V4 KV cache**: Fixed a "failure to allocate KV blocks" error in the V1 engine KV cache manager (#41282). * **gpt-oss MXFP4 + torch.compile**: Plumbed `hidden_dim_unpadded` through the `moe_forward` fake op so MXFP4 works under `torch.compile` on v0.20.x (#42002, backport of #41646). * **Qwen3-VL**: Removed an invalid deepstack boundary check that could fail under heavy load (#40932). ##### Contributors @ywang96, @zyongye, @stecasta, @wzhao18, @Isotr0py, @khluu ### v0.20.1 - Date: 2026-05-04 - Version: v0.20.1 - Original notes: https://github.com/vllm-project/vllm/releases/tag/v0.20.1 - Permalink: https://whatsnew.fyi/product/vllm/releases/v0.20.1 - **added** — Add base model support for DeepSeek V4 - **added** — Add multi-stream pre-attention GEMM for DeepSeek V4 with configurable knob and tuned default threshold - **added** — Add BF16 and MXFP8 all-to-all support for FlashInfer one-sided communication - **added** — Add PTX cvt instruction for faster FP32->FP4 conversion - **added** — Add integrated tile kernels for optimized head computation in DeepSeek V4 - **fixed** — Fix persistent topk cooperative deadlock at TopK=1024 and inter-CTA init race on RadixRowState - **fixed** — Fix import error due to AOT compile cache loading - **fixed** — Fix torch inductor error in DeepSeek V4 - **fixed** — Fix repeated RoPE cache initialization - **fixed** — Fix missing type conversion for non-streaming tool calls in DSV3.2/V4 - **fixed** — Fix max_num_batched_token not being captured in CUDA graph - **fixed** — Fix num_gpu_blocks_override not accounted for in max_model_len checks - **fixed** — Auto-disable expandable_segments around cumem memory pool - **fixed** — Fix BailingMoE linear layer - **fixed** — Fix MLA RoPE rotation for BailingMoE V2.5 - **fixed** — Fix reasoning parser kwargs not being passed to structured output - **fixed** — Fix input_ids and expert_map args for Quark W4A8 GPT-OSS on ROCm #### vLLM v0.20.1 This is a patch release on top of `v0.20.0` primarily focused on **DeepSeek V4 stabilization and performance improvements**, along with several important bug fixes. ###### DeepSeek V4 * Base model support (#41006). * Multi-stream pre-attention GEMM (#41061), configurable pre-attn GEMM knob (#41443), and tuned default `VLLM_MULTI_STREAM_GEMM_TOKEN_THRESHOLD` (#41526). * BF16 and MXFP8 all-to-all support for FlashInfer one-sided communication (#40960). * PTX `cvt` instruction for faster FP32->FP4 conversion (#41015). * Integrated tile kernels (`head_compute_mix_kernel`) for optimized head computation (#41255). * Guard megamoe flag with Pure TP (#41522). * Fixed persistent topk cooperative deadlock at TopK=1024 (#41189) and inter-CTA init race on RadixRowState (#41444), with temporary disable of persistent topk as a workaround (#41442). * Fixed import error due to AOT compile cache loading (#41090). * Fixed torch inductor error (#41135). * Fixed repeated RoPE cache initialization (#41148). * Fixed missing type conversion for non-streaming tool calls in DSV3.2/V4 (#41198). ###### Bug Fixes * Fixed `max_num_batched_token` not being captured in CUDA graph (#40734). * Fixed `num_gpu_blocks_override` not accounted for in `max_model_len` checks (#41069). * Auto-disable `expandable_segments` around cumem memory pool (#40812). * Fixed BailingMoE linear layer (#40859) and MLA RoPE rotation for BailingMoE V2.5 (#41185). * Fixed reasoning parser kwargs not being passed to structured output (#41199). * [ROCm] Fixed `input_ids` and `expert_map` args for Quark W4A8 GPT-OSS (#41165). ##### List of contributors @BugenZhao, @chaunceyjiang, @gau-nernst, @ghphotoframe, @Isotr0py, @jeejeelee, @khluu, @njhill, @Rohan138, @wzhao18, @youkaichao, @ywang96, @ZJY0516, @zixi-qi, @zyongye