v0.10.0
What's Changed
- feat: qwen3-next tool parser by @AlpinDale in #1512
- [Build] feat: add support for incremental cmake builds by @AlpinDale in #1515
- chore: cleanup aphrodite FA directory by @AlpinDale in #1516
- docs: update documentation on adding support for new models by @AlpinDale in #1517
- fix: multi-node serving with ray by @AlpinDale in #1518
- chore: migrate whisper to TensorSchema by @AlpinDale in #1519
- feat: add logging for model parameter count by @AlpinDale in #1525
- [Attention] feat: add support for Context Parallelism by @AlpinDale in #1521
- [Model] feat: support BailingMoe V2 by @AlpinDale in #1527
- [API] chore: separate Kobold API code to its own serving class by @AlpinDale in #1529
- Revert "[API] chore: separate Kobold API code to its own serving class" by @AlpinDale in #1530
- fix: error propagation in chat completions by @AlpinDale in #1532
- [API] chore: separate Kobold API code to its own serving class by @AlpinDale in #1531
- [API] chore: remove dead code from the old kobold api module by @AlpinDale in #1533
- [API] fix: anthropic messages API by @AlpinDale in #1534
- [build] fix: relax xformers dependency version by @AlpinDale in #1536
- [PP] fix: Qwen3-Next with Pipeline Parallelism by @AlpinDale in #1537
- Update readme by @AlpinDale in #1538
- [Kernel] chore: add tuned kernel configs for BailingMoEV2 by @AlpinDale in #1542
- [config] fix: set the correct max_model_len with YaRN scaling by @AlpinDale in #1543
- [API] feat: add lightweight tokenizer-only API server by @AlpinDale in #1545
- release: v0.10 by @AlpinDale in #1549
- [build] bump flashinfer to 0.5.0 by @AlpinDale in #1551
- [API] feat: add model management endpoints for loading and unloading models by @AlpinDale in #1553
- [core] feat: enable dynamic KV cache allocation by @AlpinDale in #1552
- fix: quantization import for kimi-linear KDA by @AlpinDale in #1555
- [API] feat: add multi-model support by @AlpinDale in #1554
- fix: Kimi-Linear with AWQ quants by @AlpinDale in #1556
- ci: make gemini PR reviews less verbose by @AlpinDale in #1557
- fix: avoid GPU-CPU sync in MTP by @AlpinDale in #1558
- [kernel] fix: use the same H200 config for both H200 and H200 NVL by @AlpinDale in #1559
- [API] fix: task log when multi-model is not enabled by @AlpinDale in #1560
- fix: ensure model_registry is not empty before accessing models in OpenAIServing by @AlpinDale in #1561
- [ci] chore: update pre-commit scripts by @AlpinDale in #1562
- [ci] chore: make all pre-commit checks pass by @AlpinDale in #1563
- [core]: update
cu_num_accepted_tokensfor allreq_indexby @AlpinDale in #1564 - [API] feat: enable DP-aware routing in OAI requests by @AlpinDale in #1565
- [logger] fix: don't record sleep mode logs when not in dev mode by @AlpinDale in #1566
- [distributed] remove
APHRODITE_DEEPEP_LOW_LATENCY_ALLOW_NVLINKenv var by @AlpinDale in #1567 - [core] invoke
save_new_computed_blockswhen computed blocks are not empty by @AlpinDale in #1568 - [ci] feat: remove ruff workflow and add a pre-commit one by @AlpinDale in #1569
- [compilation] allow torch.compile with batch invariant inference by @AlpinDale in #1570
- [cpu] fix
APHRODITE_CPU_OMP_THREADS_BIND="autho"for PowerPC CPU by @AlpinDale in #1571 - [fix] avoid too small block m/n for flex attention by @AlpinDale in #1572
- [kernel] perf: significantly enhance KDA/Kimi Linear throughput by decoupling torch op from GDA to use torch.compile by @AlpinDale in #1573
- [lora] allow int64 values for LoRA ID to avoid overflow by @AlpinDale in #1574
- [mm] fix broken MRoPE for GLM-4.1/4.5V by @AlpinDale in #1575
- [nixl] fix: missing metadata for handshake in multi-node by @AlpinDale in #1576
- [mm] fix: missing cached item in beam search by @AlpinDale in #1577
- [moe] fuse nvfp4 quant with
flashinfer_cutlass_moein TP by @AlpinDale in #1578 - [spec] remove unused args in spec decoding by @AlpinDale in #1579
- [chore] pydantic validation for scheduler and structured outputs configs by @AlpinDale in #1580
- [hybrid] simpler algorithm to find
kernel_block_sizeby @AlpinDale in #1581 - [core] feat: support async scheduling with structured outputs by @AlpinDale in #1582
- [lora] enable bias support for fused moe lora by @AlpinDale in #1583
- [mm] vision attention backend for XPU by @AlpinDale in #1584
- [lora] add SplitK in fused MoE lora by @AlpinDale in #1585
- [ci] bump transformers to 4.57.1 by @AlpinDale in #1586
- [mm] mrope for keye by @AlpinDale in #1587
- [cli] add CLI args for kv cache offloading by @AlpinDale in #1588
- [kvoffload] feat: make LMCache connecter work by @AlpinDale in #1589
- [v0] remove
APHRODITE_USE_V1from platform and v1 by @AlpinDale in #1590 - [spec] fix DeepSeek v3.2 MTP metadata and cuda graph by @AlpinDale in #1591
- [python3.10] import
Selffromtyping_extensionsby @AlpinDale in #1592 - [TPU] prevent single-process DP by @AlpinDale in #1593
- [sampler] fix mixed penalties in batch with async scheduling by @AlpinDale in #1594
- [api] bring back anthropic /v1/messages endpoint in OpenAI server by @AlpinDale in #1595
- [offloader] fix async scheduling support with KV cache offloader by @AlpinDale in #1596
- [sync] sync to upstream 03c4c4a by @AlpinDale in #1597
- [build] downgrade flashinfer to 0.4.1 by @AlpinDale in #1598
- [lora][moe] fix MoE models by registering the correct op by @AlpinDale in #1599
- [quant] fix GLM-4.5V AWQ by @AlpinDale in #1600
- [build] upgrade flashinfer to 0.5.1 by @AlpinDale in #1601
- Require structured output parameters to be explicitly None or valid by @50h100a in #1604
- [multi node] better cluster example script by @AlpinDale in #1605
- [build][kernels] isolated aphrodite kernel library by @AlpinDale in #1602
- [build] fix aphrodite-kernels wheel installation for pypi compat by @AlpinDale in #1606
Full Changelog: v0.9.1...v0.10.0