v0.9.0
v0.9.0
It has been a long time. There have been many, many changes between this release and v0.6.7. I'll try to summarize the most important ones, but I'll likely miss quite a lot.
New Models
- AIMv2
- Arcee
- Aria
- Aya Vision
- BaiLing
- Bamba
- BertModel (encoder-only embedding)
- Command A Vision
- CLIP Text Model
- DeepSeek-V3
- dots.llm1
- Ernie-4.5
- Ernie-4.5 MoE
- EXAONE-4
- Falcon-H1
- Florence-2
- Gemma-3
- Gemma-3n
- GLM-4
- GLM-4V
- GLM-4.1V
- GLM-4.5
- GPT-Oss
- Granite Speech
- Granite MoE Hybrid
- Granite MoE Shared
- GritLM
- Grok-1
- H2O-VL
- Hunyuan V1
- HyperCLOVA X SEED
- Idefics3
- Mono-InternVL
- Intern-S1
- JinaVL Reranker
- Keye
- Kimi-VL
- Llama-4
- Mamba-2
- MiMo
- MiniCPM-O
- MiniMax-M1
- MiniMax-VL
- Mistral-3
- ModernBERT
- Nemotron-H
- Nemotron-NAS (Super)
- Nemotron-VL
- OLMo-2
- Ovis
- Ovis-2
- Phi-4-MM
- Phi-4 Flash
- Plamo-2
- Prithvi GeoSpatial Model
- Qwen2.5 Omni Thinker
- Qwen2.5 VL
- Qwen2 Audio
- Qwen3
- Qwen3 MoE
- XLM Roberta
- Skyword-R1V
- Smol-VLM
- Step-3
- Tarsier
- TeleChat-2
- Tele-FLM
- Voxtral
- Whisper
- Zamba2
Transformers backend
You can now load any unsupported model using the integrated transformers backend. By default, if an unsupported model is loaded, Aphrodite will attempt to load it using Transformers if a native implementation doesn't exist.
Quantization Methods
There have been a few quant methods added.
- NVFP4 - the new datatype supported by Blackwell GPUs. Will also work on Ampere and Hopper using Marlin kernels.
- MXFP4 - popularized by GPT-Oss. Natively supported by Blackwell; Hopper and Ampere will use Marlin.
GPTQAllSpark- optimization for GPTQ models, supported when the model hasgroup_size=-1andact_desc=False. Seems to provide better perf than Marlin. Enable with-q gptq_allspark.- BitBLAS - support for BitNet-quantized 1.58bit models. Will also support GPTQ.
- TorchAO - support for models quantized using TorchAO.
New Features
There's a lot of new features! Here are some of the more important ones:
- Sophisticated support for
torch.compile - DeepGEMM for DeepSeek-V3
- Expert Load Balancing and Expert Parallel
- FlexAttention
- TreeAttention
- Differential Flash Attention
- Dual Chunk Flash Attention
- Flash Attention V3 (supported only for A100/H100 GPUs)
- Disaggregated Prefill – run separate instances of Aphrodite for prefill and decode. Boosts throughput by eliminating compute starvation caused by expensive prefill requests at the cost of requiring more GPUs.
- Async Scheduling via NanoFlow – provides a ~13% throughput and latency boost (
--async-scheduling) - Async Tensor Parallel – provides an ~8% throughput and latency boost on Hopper GPUs, ~3% on Ampere (
-O '{"level":3, "compile_sizes": [512], "pass_config": {"enable_async_tp": true}}') - Mirostat Sampling – it returns!
String/Phrase Banning– also known as "anti-slop sampler", this one allows you to specify a list of phrases to ban from generation. Passbanned_stringsas a parameter in the API request body, and provide it with a list of strings.
As always, many thanks to the vLLM!
What's Changed
- ci: bump aphrodite-engine version to 0.6.7 by @AlpinDale in #1253
- docs: update documentation by @AlpinDale in #1254
- chore: update docs site packages by @ahme-dev in #1255
- fix: multi-step scheduling for TPU model runner by @AlpinDale in #1256
- fix: tool call finish reason in streaming case by @AlpinDale in #1257
- spec decode: use
flash_attn_varlen_funcfor MQA scorer by @AlpinDale in #1260 - fix: xformer attn backend prefill for encoder-decoder models by @AlpinDale in #1261
- fix: placeholder attn
max_decode_seq_lenby @AlpinDale in #1262 - fix: check for head_size in spec decode models by @AlpinDale in #1263
- XPU: enable async output processing by @AlpinDale in #1264
- feat: migrate docs to starlight by @ahme-dev in #1259
- docs: fix broken links by @AlpinDale in #1266
- TPU: fix SMEM OOM error by @AlpinDale in #1267
- VLM: add multi-image support fro Mllama (llama 3.2) by @AlpinDale in #1268
- VLM: add image embeds support for InternVL by @AlpinDale in #1269
- fix: chat API continuous usage stats by @AlpinDale in #1270
- fix:
UsageInfoandlogprobs=Noneassertion w/ empty token_ids by @AlpinDale in #1271 - fix: text-only input bug for Molmo by @AlpinDale in #1272
- chore: fix mrope handling by @AlpinDale in #1273
- model: add support for
VLM2Vec- multimodal embedding model by @AlpinDale in #1274 - fix: use proper vocab size for logit_bias by @nyxkrage in #1275
- models: add support for nemotron_nas model by @AlpinDale in #1281
- chore: rename input data types by @AlpinDale in #1284
- docs: fix missing parameter in rocm installation guide by @dsk7 in #1283
- model: add torch SDPA (CPU) backend support for Molmo by @AlpinDale in #1285
- kernel: improve continuous batching for mamba family of models by @AlpinDale in #1286
- kernel: add support for FATReLU activation by @AlpinDale in #1287
- spec decoding: slightly optimize ngram lookup performance by @AlpinDale in #1288
- fix: integer overflow in fp8 and int8 kernels by @AlpinDale in #1289
- quants: add exllama kernel for compressed tensors by @AlpinDale in #1294
- chore: add CUDA layerwise profiler by @AlpinDale in #1295
- scheduler changes to allow LoRA + Chunked Prefill by @Nero10578 in #1293
- fix: allow prefilling assistant response with mistral tokenizer by @AlpinDale in #1296
- tpu: call
torch._sync(param)during weight loading to reduce mem usage by @AlpinDale in #1297 - cpu: add compressed-tensors INT8 W8A8 AZP support by @AlpinDale in #1298
- core: deprecate block manager v1 by @AlpinDale in #1300
- chore: fine-grained
CustomOpenabling mechanism by @AlpinDale in #1301 - fix: support for dimension like integers and
ScalarTypeby @AlpinDale in #1302 - neuron: simplify model loading by @AlpinDale in #1303
- model: add support for the BERT family of models by @AlpinDale in #1304
- fix: silent failures in compressed-tensors parsing by @AlpinDale in #1305
- core: better memory usage profiling logs by @AlpinDale in #1306
- quant: add bitsandbytes support for Qwen2.5 by @AlpinDale in #1307
- api: add jamba tool parser by @AlpinDale in #1308
- api: simplify completion API usage when streaming by @AlpinDale in #1309
- feat: add configurable task for models that support generation & embedding by @AlpinDale in #1310
- model: add support for HF transformers format of Pixtral by @AlpinDale in #1311
- chore: add lora requests to metrics by @AlpinDale in #1312
- chore: add env variable to force tensor cores in flashinfer by @AlpinDale in #1313
- fix: using mistral tokenizer when offline by @AlpinDale in #1314
- fix: avoid creating guided decoding logitproc unnecessarily by @AlpinDale in #1315
- api: simple image input format by @AlpinDale in #1316
- fix: speculative decoding with the new task changes by @AlpinDale in #1317
- chore: optimize
input_processor_for_pixtral_hfby @AlpinDale in #1318 - fix: json_schema not being passed to
GuidedDecodingParamsby @AlpinDale in #1319 - chore: a more memory-efficient pixtral HF implementation by @AlpinDale in #1320
- feat: support sliding window in flash attention by @AlpinDale in #1321
- feat: goodput metrics support by @AlpinDale in #1322
- models: add support for
FalconMambamodels by @AlpinDale in #1323 - fix: batching with multi-image in Pixtral HF by @AlpinDale in #1324
- fix: reduce frequency of client cancel checking & fix multi-step profiling by @AlpinDale in #1325
- chore: default to chunked prefill with more than 16k seqlen & guard against fp8 kv + chunked prefill on ampere by @AlpinDale in #1326
- fix: update draft model TP size check to allow matching target TP size by @AlpinDale in #1327
- fix: do not log duplicate errors with MQ frontend by @AlpinDale in #1328
- chore: hide
seq_groupfrom the core processor by moving parallel sampling out of the core processor by @AlpinDale in #1329 - fix:
trust_remote_code=Truewhen in multi-node by @AlpinDale in #1330 - fix: rope_theta fetching for Phi model by @AlpinDale in #1331
- chore: remove
evictor_v1by @AlpinDale in #1332 - feat: add TP support for Qwen2 bitsandbytes by @AlpinDale in #1333
- feat: Aphrodite Engine v1 by @AlpinDale in #1334
- models: add support for Mono-InternVL models by @AlpinDale in #1335
- fix: change eagle fc bias config name by @AlpinDale in #1336
- api: allow custom request id by @AlpinDale in #1337
- refactor: enhance support_torch_compile decorator to infer dynamic argument dimensions by @AlpinDale in #1338
- fix: ensure previous tokens are copied correctly in Detokenizer by @AlpinDale in #1339
- fix: cutlass int8 on turing cards by @AlpinDale in #1340
- fix: metrics for multi-step scheduler by @AlpinDale in #1341
- models: support for E5-V image embedding model by @AlpinDale in #1342
- models: add support for LM-only florence2 model by @AlpinDale in #1343
- vlm: post-layernorm override and quant config in vision encoder by @AlpinDale in #1344
- vlm: add
min_pixels&max_pixelsto Qwen2-VL by @AlpinDale in #1345 - fix:
_init_vision_model()in NVLM_D model by @AlpinDale in #1346 - torch.compile: add support for more models by @AlpinDale in #1347
- api: enable multi-image support for Mllama in the API by @AlpinDale in #1348
- models: add support for Qwen2-Audio model by @AlpinDale in #1349
- fix: mllama SDPA illegal memory access by @AlpinDale in #1350
- CI/Build: upgrade to torch 2.6.0 and deprecate Python 3.8 by @AlpinDale in #1351
- CI/Build: upgrade transformers to 4.51.3 by @AlpinDale in #1352
- chore: add chunked prefill support for FlashInfer by @AlpinDale in #1353
- quant: enable calibrated k/v cache for flashinfer by @AlpinDale in #1354
- kernel: remove advance step size restriction for flashinfer by @AlpinDale in #1355
- feat: add sliding window support for flashinfer by @AlpinDale in #1356
- fix: Mllama vision model quant by @AlpinDale in #1357
- fix: make chat content text allow type content by @AlpinDale in #1358
- API: add batched tokenizer endpoint by @AlpinDale in #1359
- fix: PP for ChatGLM and Molmo by @AlpinDale in #1360
- V1: clean up requests when aborted by @AlpinDale in #1361
- core: simplify sequence group code by @AlpinDale in #1362
- torch.compile: add support for more models by @AlpinDale in #1363
- torch.compile: all-gather compilation + more model support by @AlpinDale in #1364
- fix: disable post_norm for llava models by @AlpinDale in #1365
- VLM: compute llava_next max_tokens/dummy_data from grid points by @AlpinDale in #1366
- fix: default value check for
image_url.detailby @AlpinDale in #1367 - kernel: implement an efficient MoE sum kernel by @AlpinDale in #1368
- readme: add sponsors section by @AlpinDale in #1369
- fix: remove xformers as a requirement for pixtral by @AlpinDale in #1370
- chore: layer lora module for GraniteMoE by @AlpinDale in #1371
- V1: add sliding window support for Flash Attention by @AlpinDale in #1372
- fix: compressed_tensors_moe bad config strategy by @AlpinDale in #1373
- fix: disable
continuous_usage_statsby default by @AlpinDale in #1374 - chore: add openvino platform selector by @AlpinDale in #1375
- (4/N) Triton Backend: Triton Flash Attention backend by @AlpinDale in #1376
- API: add support for bad_words sampling by @AlpinDale in #1379
- model: add support for Qwen2ForSequenceClassification arch by @AlpinDale in #1380
- core: improve cuda graph memory usage with tensor weakref by @AlpinDale in #1381
- feat: torch.compile support for MoE models by @AlpinDale in #1382
- fix: ray existing instance detection issue by @AlpinDale in #1383
- feat: add multi-video support by @AlpinDale in #1384
- chore: test & support torch.compile on more MoE models by @AlpinDale in #1385
- fix: use temp dir in model registry by @AlpinDale in #1386
- refactor: massive core overhauls, aphrodite v0.9 by @AlpinDale in #1388
- tests: update tests for v0.9 by @AlpinDale in #1393
- [V1] feat: add GGUF support by @AlpinDale in #1394
- [V1] feat: implement priority scheduling by @AlpinDale in #1396
- Constrain transformers requirement to avoid aimv2 key collision. by @50h100a in #1399
- API: add support for Anthropic /v1/messages endpoint by @AlpinDale in #1400
- Fix various crashes in v1 samplers by @50h100a in #1401
- chore: sync kernels to vllm 9edd1db by @AlpinDale in #1403
- fix: update FA2 to fix attention sinks by @AlpinDale in #1404
- fix: triton FA2 with attention sinks by @AlpinDale in #1405
- fix: more triton FA2 attention sink fixes in prefix cache kernels by @AlpinDale in #1406
- chore: add loop for built-in tool call for GPT-OSS by @AlpinDale in #1407
- fix: flashinfer with attention sinks by @AlpinDale in #1408
- feat: MXFP4 quantization via FlashInfer by @AlpinDale in #1409
- V1 feat: add Mamba1 support by @AlpinDale in #1410
- fix: DeepGemm FP8_E8M0 accuracy issue on B200 by @AlpinDale in #1411
- feat: demo tool server by @AlpinDale in #1412
- fix: GPT-OSS BF16 inference by @AlpinDale in #1413
- chore: sync to vLLM b2c0650 by @AlpinDale in #1417
- fix: temporarily disable temperature_last by @AlpinDale in #1419
- fix: Flash Attention on V0 by @AlpinDale in #1420
- fix: error response in API server by @AlpinDale in #1421
- feat: add support for CLIPModel inference by @AlpinDale in #1422
- [Diffusion][2/n] feat: add support for VAE by @AlpinDale in #1423
- [Diffusion][3/n] feat: add UNet2DConditionModel for Stable Diffusion by @AlpinDale in #1424
- [Diffusion][4/n] refactor: restructure UNet model components to align with Diffusers architecture by @AlpinDale in #1426
- fix: incorrect modeling import by @AlpinDale in #1427
- fix: deepseek_mtp and EAGLE by @AlpinDale in #1428
- fix: enable `num_speculative_tokens>1 for MTP by @AlpinDale in #1429
- feat: add support for Seed-Oss model by @AlpinDale in #1430
- [V1] feat: add support for Mirostat sampling by @AlpinDale in #1431
- [V1] feat: add support for banned strings by @AlpinDale in #1432
- chore: clean up and update dockerfiles by @AlpinDale in #1433
- feat: add support for fully-trained lm_head and embed_tokens modules in LoRA adapters by @AlpinDale in #1434
- build: update torch to 2.8.0 by @AlpinDale in #1435
- fix: update the
fused_scaled_matmul_reduce_scatterapi for 2.8.0 torch by @AlpinDale in #1425 - fix: Qwen3Moe FP8 by @AlpinDale in #1436
- chore: clean up logs by @AlpinDale in #1437
- Revert "fix: temporarily disable temperature_last (#1419)" by @AlpinDale in #1438
New Contributors
- @nyxkrage made their first contribution in #1275
- @dsk7 made their first contribution in #1283
- @Nero10578 made their first contribution in #1293
Full Changelog: v0.6.7...v0.9.0