v0.4.2

vllm-project/vllmv0.4.2May 5, 2024by github-actions[bot]

AI Summary

Highlights include the ready-for-testing chunked prefill feature, speculative decoding functionalities (logprobs, ngram), and the addition of Phi-3-mini support. The release also expands Marlin kernel support and integrates FlashInfer as an attention backend.

Key Highlights

  • Chunked prefill ready for testing
  • Speculative decoding functionalities (logprobs, ngram)
  • Phi-3-mini support
  • FlashInfer as attention backend
  • Full Tensor Parallelism for LoRA layers
  • Marlin kernel expansion for all GPTQ models

New Features

  • Chunked prefill
  • Speculative decoding (logprobs, ngram)
  • Phi-3-mini support
  • FlashInfer backend
  • Full TP LoRA
  • Marlin expansion
  • Dependency upgrades (torch 2.3.0, tensorizer 2.9.0)

Full Release Notes

## Highlights
### Features
* [Chunked prefill is ready for testing](https://docs.vllm.ai/en/latest/models/performance.html#chunked-prefill)! It improves inter-token latency in high load scenario by chunking the prompt processing and priortizes decode (#4580)
* Speculative decoding functionalities: logprobs (#4378), ngram (#4237)
* Support FlashInfer as attention backend (#4353)

### Models and Enhancements
* Add support for Phi-3-mini (#4298, #4372, #4380)
* Add more histogram metrics (#2764, #4523)
* Full tensor parallelism for LoRA layers (#3524)
* Expanding Marlin kernel to support all GPTQ models (#3922, #4466, #4533)

### Dependency Upgrade
* Upgrade to `torch==2.3.0` (#4454)
* Upgrade to `tensorizer==2.9.0` (#4467)
* Expansion of AMD test suite (#4267)

### Progress and Dev Experience
* Centralize and document all environment variables (#4548, #4574)
* Progress towards fully typed codebase (#4337, #4427, #4555, #4450)
* Progress towards pipeline parallelism (#4512, #4444, #4566)
* Progress towards multiprocessing based executors (#4348, #4402, #4419)
* Progress towards FP8 support (#4343, #4332, 4527)


## What's Changed
* [Core][Distributed] use existing torch.cuda.device context manager by @youkaichao in https://github.com/vllm-project/vllm/pull/4318
* [Misc] Update ShareGPT Dataset Sampling in Serving Benchmark by @ywang96 in https://github.com/vllm-project/vllm/pull/4279
* [Bugfix] Fix marlin kernel crash on H100 by @alexm-nm in https://github.com/vllm-project/vllm/pull/4218
* [Doc] Add note for docker user  by @youkaichao in https://github.com/vllm-project/vllm/pull/4340
* [Misc] Use public API in benchmark_throughput by @zifeitong in https://github.com/vllm-project/vllm/pull/4300
* [Model] Adds Phi-3 support by @caiom in https://github.com/vllm-project/vllm/pull/4298
* [Core] Move ray_utils.py from `engine` to `executor` package by @njhill in https://github.com/vllm-project/vllm/pull/4347
* [Bugfix][Model] Refactor OLMo model to support new HF format in transformers 4.40.0 by @Isotr0py in https://github.com/vllm-project/vllm/pull/4324
* [CI/Build] Adding functionality to reset the node's GPUs before processing. by @Alexei-V-Ivanov-AMD in https://github.com/vllm-project/vllm/pull/4213
* [Doc] README Phi-3 name fix. by @caiom in https://github.com/vllm-project/vllm/pull/4372
* [Core]refactor aqlm quant ops  by @jikunshang in https://github.com/vllm-project/vllm/pull/4351
* [Mypy] Typing lora folder by @rkooo567 in https://github.com/vllm-project/vllm/pull/4337
* [Misc] Optimize flash attention backend log  by @esmeetu in https://github.com/vllm-project/vllm/pull/4368
* [Core] Add `shutdown()` method to `ExecutorBase` by @njhill in https://github.com/vllm-project/vllm/pull/4349
* [Core] Move function tracing setup to util function by @njhill in https://github.com/vllm-project/vllm/pull/4352
* [ROCm][Hardware][AMD][Doc] Documentation update for ROCm by @hongxiayang in https://github.com/vllm-project/vllm/pull/4376
* [Bugfix] Fix parameter name in `get_tokenizer` by @DarkLight1337 in https://github.com/vllm-project/vllm/pull/4107
* [Frontend] Add --log-level option to api server by @normster in https://github.com/vllm-project/vllm/pull/4377
* [CI] Disable non-lazy string operation on logging by @rkooo567 in https://github.com/vllm-project/vllm/pull/4326
* [Core] Refactoring sampler and support prompt logprob for chunked prefill  by @rkooo567 in https://github.com/vllm-project/vllm/pull/4309
* [Misc][Refactor] Generalize linear_method to be quant_method by @comaniac in https://github.com/vllm-project/vllm/pull/4373
* [Misc] add RFC issue template by @youkaichao in https://github.com/vllm-project/vllm/pull/4401
* [Core] Introduce `DistributedGPUExecutor` abstract class by @njhill in https://github.com/vllm-project/vllm/pull/4348
* [Kernel] Optimize FP8 support for MoE kernel / Mixtral via static scales by @pcmoritz in https://github.com/vllm-project/vllm/pull/4343
* [Frontend][Bugfix] Disallow extra fields in OpenAI API by @DarkLight1337 in https://github.com/vllm-project/vllm/pull/4355
* [Misc] Fix logger format typo by @esmeetu in https://github.com/vllm-project/vllm/pull/4396
* [ROCm][Hardware][AMD] Enable group query attention for triton FA by @hongxiayang in https://github.com/vllm-project/vllm/pull/4406
* [Kernel] Full Tensor Parallelism for LoRA Layers by @FurtherAI in https://github.com/vllm-project/vllm/pull/3524
* [Model] Phi-3 4k sliding window temp. fix by @caiom in https://github.com/vllm-project/vllm/pull/4380
* [Bugfix][Core] Fix get decoding config from ray by @esmeetu in https://github.com/vllm-project/vllm/pull/4335
* [Bugfix] Abort requests when the connection to /v1/completions is interrupted by @chestnut-Q in https://github.com/vllm-project/vllm/pull/4363
* [BugFix] Fix `min_tokens` when `eos_token_id` is None by @njhill in https://github.com/vllm-project/vllm/pull/4389
* ✨ support local cache for models by @prashantgupta24 in https://github.com/vllm-project/vllm/pull/4374
* [BugFix] Fix return type of executor execute_model methods by @njhill in https://github.com/vllm-project/vllm/pull/4402
* [BugFix] Resolved Issues For LinearMethod --> QuantConfig by @robertgshaw2-neuralmagic in https://github.com/vllm-project/vllm/pull/4418
* [Misc] fix typo in llm_engine init logging by @DefTruth in https://github.com/vllm-project/vllm/pull/4428
* Add more Prometheus metrics by @ronensc in https://github.com/vllm-project/vllm/pull/2764
* [CI] clean docker cache for neuron by @simon-mo in https://github.com/vllm-project/vllm/pull/4441
* [mypy][5/N] Support all typing on model executor by @rkooo567 in https://github.com/vllm-project/vllm/pull/4427
* [Kernel] Marlin Expansion: Support AutoGPTQ Models with Marlin by @robertgshaw2-neuralmagic in https://github.com/vllm-project/vllm/pull/3922
* [CI] hotfix: soft fail neuron test by @simon-mo in https://github.com/vllm-project/vllm/pull/4458
* [Core][Distributed] use cpu group to broadcast metadata in cpu by @youkaichao in https://github.com/vllm-project/vllm/pull/4444
* [Misc] Upgrade to `torch==2.3.0` by @mgoin in https://github.com/vllm-project/vllm/pull/4454
* [Bugfix][Kernel] Fix compute_type for MoE kernel by @WoosukKwon in https://github.com/vllm-project/vllm/pull/4463
* [Core]Refactor gptq_marlin ops by @jikunshang in https://github.com/vllm-project/vllm/pull/4466
* [BugFix] fix num_lookahead_slots missing in async executor by @leiwen83 in https://github.com/vllm-project/vllm/pull/4165
* [Doc] add visualization for multi-stage dockerfile by @prashantgupta24 in https://github.com/vllm-project/vllm/pull/4456
* [Kernel] Support Fp8 Checkpoints (Dynamic + Static) by @robertgshaw2-neuralmagic in https://github.com/vllm-project/vllm/pull/4332
* [Frontend] Support complex message content for chat completions endpoint by @fgreinacher in https://github.com/vllm-project/vllm/pull/3467
* [Frontend] [Core] Tensorizer: support dynamic `num_readers`, update version by @alpayariyak in https://github.com/vllm-project/vllm/pull/4467
* [Bugfix][Minor] Make ignore_eos effective  by @bigPYJ1151 in https://github.com/vllm-project/vllm/pull/4468
* fix_tokenizer_snapshot_download_bug by @kingljl in https://github.com/vllm-project/vllm/pull/4493
* Unable to find Punica extension issue during source code installation by @kingljl in https://github.com/vllm-project/vllm/pull/4494
* [Core] Centralize GPU Worker construction by @njhill in https://github.com/vllm-project/vllm/pull/4419
* [Misc][Typo] type annotation fix by @HarryWu99 in https://github.com/vllm-project/vllm/pull/4495
* [Misc] fix typo in block manager by @Juelianqvq in https://github.com/vllm-project/vllm/pull/4453
* Allow user to define whitespace pattern for outlines by @robcaulk in https://github.com/vllm-project/vllm/pull/4305
* [Misc]Add customized information for models by @jeejeelee in https://github.com/vllm-project/vllm/pull/4132
* [Test] Add ignore_eos test  by @rkooo567 in https://github.com/vllm-project/vllm/pull/4519
* [Bugfix] Fix the fp8 kv_cache check error that occurs when failing to obtain the CUDA version. by @AnyISalIn in https://github.com/vllm-project/vllm/pull/4173
* [Bugfix] Fix 307 Redirect for `/metrics` by @robertgshaw2-neuralmagic in https://github.com/vllm-project/vllm/pull/4523
* [Doc] update(example model): for OpenAI compatible serving by @fpaupier in https://github.com/vllm-project/vllm/pull/4503
* [Bugfix] Use random seed if seed is -1 by @sasha0552 in https://github.com/vllm-project/vllm/pull/4531
* [CI/Build][Bugfix] VLLM_USE_PRECOMPILED should skip compilation by @tjohnson31415 in https://github.com/vllm-project/vllm/pull/4534
* [Speculative decoding] Add ngram prompt lookup decoding by @leiwen83 in https://github.com/vllm-project/vllm/pull/4237
* [Core] Enable prefix caching with block manager v2 enabled by @leiwen83 in https://github.com/vllm-project/vllm/pull/4142
* [Core] Add `multiproc_worker_utils` for multiprocessing-based workers by @njhill in https://github.com/vllm-project/vllm/pull/4357
* [Kernel] Update fused_moe tuning script for FP8 by @pcmoritz in https://github.com/vllm-project/vllm/pull/4457
* [Bugfix] Add validation for seed by @sasha0552 in https://github.com/vllm-project/vllm/pull/4529
* [Bugfix][Core] Fix and refactor logging stats by @esmeetu in https://github.com/vllm-project/vllm/pull/4336
* [Core][Distributed] fix pynccl del error by @youkaichao in https://github.com/vllm-project/vllm/pull/4508
* [Misc] Remove Mixtral device="cuda" declarations by @pcmoritz in https://github.com/vllm-project/vllm/pull/4543
* [Misc] Fix expert_ids shape in MoE by @WoosukKwon in https://github.com/vllm-project/vllm/pull/4517
* [MISC] Rework logger to enable pythonic custom logging configuration to be provided by @tdg5 in https://github.com/vllm-project/vllm/pull/4273
* [Bug fix][Core] assert num_new_tokens == 1 fails when SamplingParams.n is not 1 and max_tokens is large & Add tests for preemption by @rkooo567 in https://github.com/vllm-project/vllm/pull/4451
* [CI]Add regression tests to ensure the async engine generates metrics by @ronensc in https://github.com/vllm-project/vllm/pull/4524
* [mypy][6/N] Fix all the core subdirectory typing by @rkooo567 in https://github.com/vllm-project/vllm/pull/4450
* [Core][Distributed] enable multiple tp group by @youkaichao in https://github.com/vllm-project/vllm/pull/4512
* [Kernel] Support running GPTQ 8-bit models in Marlin by @alexm-nm in https://github.com/vllm-project/vllm/pull/4533
* [mypy][7/N] Cover all directories by @rkooo567 in https://github.com/vllm-project/vllm/pull/4555
* [Misc] Exclude the `tests` directory from being packaged by @itechbear in https://github.com/vllm-project/vllm/pull/4552
* [BugFix] Include target-device specific requirements.txt in sdist by @markmc in https://github.com/vllm-project/vllm/pull/4559
* [Misc] centralize all usage of environment variables by @youkaichao in https://github.com/vllm-project/vllm/pull/4548
* [kernel] fix sliding window in prefix prefill Triton kernel by @mmoskal in https://github.com/vllm-project/vllm/pull/4405
* [CI/Build] AMD CI pipeline with extended set of tests. by @Alexei-V-Ivanov-AMD in https://github.com/vllm-project/vllm/pull/4267
* [Core] Ignore infeasible swap requests. by @rkooo567 in https://github.com/vllm-project/vllm/pull/4557
* [Core][Distributed] enable allreduce for multiple tp groups by @youkaichao in https://github.com/vllm-project/vllm/pull/4566
* [BugFix] Prevent the task of `_force_log` from being garbage collected by @Atry in https://github.com/vllm-project/vllm/pull/4567
* [Misc] remove chunk detected debug logs by @DefTruth in https://github.com/vllm-project/vllm/pull/4571
* [Doc] add env vars to the doc by @youkaichao in https://github.com/vllm-project/vllm/pull/4572
* [Core][Model runner refactoring 1/N] Refactor attn metadata term by @rkooo567 in https://github.com/vllm-project/vllm/pull/4518
* [Bugfix] Allow "None" or "" to be passed to CLI for string args that default to None by @mgoin in https://github.com/vllm-project/vllm/pull/4586
* Fix/async chat serving by @schoennenbeck in https://github.com/vllm-project/vllm/pull/2727
* [Kernel] Use flashinfer for decoding by @LiuXiaoxuanPKU in https://github.com/vllm-project/vllm/pull/4353
* [Speculative decoding] Support target-model logprobs by @cadedaniel in https://github.com/vllm-project/vllm/pull/4378
* [Misc] add installation time env vars by @youkaichao in https://github.com/vllm-project/vllm/pull/4574
* [Misc][Refactor] Introduce ExecuteModelData by @comaniac in https://github.com/vllm-project/vllm/pull/4540
* [Doc] Chunked Prefill Documentation by @rkooo567 in https://github.com/vllm-project/vllm/pull/4580
* [Kernel] Support MoE Fp8 Checkpoints for Mixtral (Static Weights with Dynamic/Static Activations) by @mgoin in https://github.com/vllm-project/vllm/pull/4527
* [CI] check size of the wheels by @simon-mo in https://github.com/vllm-project/vllm/pull/4319
* [Bugfix] Fix inappropriate content of model_name tag in Prometheus metrics by @DearPlanet in https://github.com/vllm-project/vllm/pull/3937
* bump version to v0.4.2 by @simon-mo in https://github.com/vllm-project/vllm/pull/4600
* [CI] Reduce wheel size by not shipping debug symbols by @simon-mo in https://github.com/vllm-project/vllm/pull/4602

## New Contributors
* @zifeitong made their first contribution in https://github.com/vllm-project/vllm/pull/4300
* @caiom made their first contribution in https://github.com/vllm-project/vllm/pull/4298
* @Alexei-V-Ivanov-AMD made their first contribution in https://github.com/vllm-project/vllm/pull/4213
* @normster made their first contribution in https://github.com/vllm-project/vllm/pull/4377
* @FurtherAI made their first contribution in https://github.com/vllm-project/vllm/pull/3524
* @chestnut-Q made their first contribution in https://github.com/vllm-project/vllm/pull/4363
* @prashantgupta24 made their first contribution in https://github.com/vllm-project/vllm/pull/4374
* @fgreinacher made their first contribution in https://github.com/vllm-project/vllm/pull/3467
* @alpayariyak made their first contribution in https://github.com/vllm-project/vllm/pull/4467
* @HarryWu99 made their first contribution in https://github.com/vllm-project/vllm/pull/4495
* @Juelianqvq made their first contribution in https://github.com/vllm-project/vllm/pull/4453
* @robcaulk made their first contribution in https://github.com/vllm-project/vllm/pull/4305
* @AnyISalIn made their first contribution in https://github.com/vllm-project/vllm/pull/4173
* @sasha0552 made their first contribution in https://github.com/vllm-project/vllm/pull/4531
* @tdg5 made their first contribution in https://github.com/vllm-project/vllm/pull/4273
* @itechbear made their first contribution in https://github.com/vllm-project/vllm/pull/4552
* @markmc made their first contribution in https://github.com/vllm-project/vllm/pull/4559
* @Atry made their first contribution in https://github.com/vllm-project/vllm/pull/4567
* @schoennenbeck made their first contribution in https://github.com/vllm-project/vllm/pull/2727
* @DearPlanet made their first contribution in https://github.com/vllm-project/vllm/pull/3937

**Full Changelog**: https://github.com/vllm-project/vllm/compare/v0.4.1...v0.4.2