vLLM Beam Search Plugin
MRV2 beam-search scheduler and sampler plugin for vLLM V1.
This package provides:
vllm_beam_search.scheduler.BeamSearchScheduler- plugin-local sequence, token, and KV admission for complete beam groups
- an MRV2 custom sampler wrapper installed through a plugin-local
ModelStatehook - plugin-local runtime hooks for MRV2 worker history rewrites
The current production path targets MRV2 generate models with async scheduling.
The sampler hook is model-state generic; BART-family models still need the
companion vllm-bart-plugin for encoder-decoder model support.
The plugin does not require a vLLM fork or source patch. It carries explicit
plugin-local scheduler implementations for vLLM 0.24.0, 0.26.0, and the tested
0.26.1 development build. Startup fails closed on an unsupported scheduler.
Each vendored scheduler has an adjacent .diff recording its exact changes
from the hashed upstream Scheduler.schedule; the test suite verifies both.
The Git repository, installable Python distribution, and PyPI project are named
vllm-beam-search-plugin; the import package is vllm_beam_search.
For BART-family encoder-decoder serving, see
BART_BEAM_SEARCH.md.
Install
Install the published distribution from PyPI with an exact version pin:
uv pip install 'vllm-beam-search-plugin==0.1.1'
The plugin metadata constrains its tested NumPy, PyTorch, and Triton API ranges. vLLM remains the owner of their accelerator-specific builds. In a prebuilt RHAII 3.5 image, preserve the image runtime and install only the pure-Python plugin:
uv pip install --no-deps \
'vllm-beam-search-plugin==0.1.1'
The vLLM 0.24.0 path has been unit-, correctness-, concurrency-, and sustained
memory-tested. It selects vendored_scheduler_v024.schedule_v024 directly; it
does not use inspect.getsource, source-text matching, or runtime exec.
For stress tooling:
uv pip install 'vllm-beam-search-plugin[stress]==0.1.1'
Server
MODEL=${MODEL:-meta-llama/Meta-Llama-3-8B-Instruct}
SERVED_MODEL=${SERVED_MODEL:-llama3-8b}
CUDA_VISIBLE_DEVICES=0 \
VLLM_USE_FLASHINFER_SAMPLER=0 \
vllm serve "${MODEL}" \
--served-model-name "${SERVED_MODEL}" \
--dtype bfloat16 \
--port 8005 \
--scheduler-cls vllm_beam_search.scheduler.BeamSearchScheduler
Request Shape
{
"model": "llama3-8b",
"prompt": "Write a concise summary of why beam search is useful:",
"max_tokens": 128,
"temperature": 0,
"add_special_tokens": false,
"vllm_xargs": {
"beam_width": 4,
"no_repeat_ngram_size": 3
}
}
Validation
Run unit tests:
uv run --with pytest python -m pytest tests -q
Run sustained stress plus memory sampling against a running server:
vllm-beam-stress \
--base-url http://localhost:8005 \
--model llama3-8b \
--rounds 100 \
--requests-per-round 32 \
--concurrency 64 \
--abort-rounds 3
The stress tool writes CSV samples with request count, RSS, and GPU memory.
Runtime Knobs
VLLM_BEAM_GROUP_STATE_CAPACITYcontrols GPU beam-state pool capacity.VLLM_BEAM_TRANSITION_BUFFER_SLOTScontrols async transition buffer slots.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vllm_beam_search_plugin-0.1.1.tar.gz.
File metadata
- Download URL: vllm_beam_search_plugin-0.1.1.tar.gz
- Upload date:
- Size: 70.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5d7919dc869b499cf4c707bdda7fa8f849f9f0f334b198c9bdd5cffaf4f1f37
|
|
| MD5 |
73fb2138c53b2f5186c4b66178349c51
|
|
| BLAKE2b-256 |
666f1e47bdb761c115e79472554698e2ef2606c070e42e3770ae188a6891b585
|
File details
Details for the file vllm_beam_search_plugin-0.1.1-py3-none-any.whl.
File metadata
- Download URL: vllm_beam_search_plugin-0.1.1-py3-none-any.whl
- Upload date:
- Size: 66.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95e7078fc27131e4642a114c630cdd90ceb430dcb06c7ddc8a9066e26ab626ca
|
|
| MD5 |
0e3cff694dee542551ab50ed28e344ae
|
|
| BLAKE2b-256 |
9165ff4f9c78ade7771d484fe7349fb5b62e5b8b0ef1844dc0e8ab65ab888e39
|