Skip to content

feat: build the vLLM engine settings in one place - #352

Merged
ShubyM merged 1 commit into
openrl-dev:mainfrom
ShubyM:feat/sampling-engine-args
Oct 21, 2026
Merged

ShubyM merged 1 commit into
openrl-dev:mainfrom
ShubyM:feat/sampling-engine-args

Conversation

@ShubyM

@ShubyM ShubyM commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

PR introduces a single place to build a sampler's vLLM engine settings, engine_args in vllm_options.py. Today these settings are built inside vllm_sampler.py, tied to the FFT flag, and only the in-process sampler can use them. With the multi-replica design (#324) we need the same settings in two places, for an engine inside the sampler process and as vllm serve flags for each pool replica (serve_args), and building them in one place keeps the two from drifting apart.

A few settings change once samplers use it. Prefix caching is turned on, so vLLM reuses work on prompts that start the same way, which RL does constantly and the router relies on. vLLM stops applying a checkpoint's default sampling settings, such as Qwen3's temperature of 0.6, so a request gets exactly what the client asked for. Sleep mode is only enabled for a sampler that shares its GPU with the trainer, since that's the only one that sleeps. This PR only adds the function, so nothing changes at runtime until the switch later in the stack.

The rest is small. set_future and get_future are renamed to set_result and get_result so both stores use the same name, and the deploy config adds the router ConfigMap, RBAC and Workload labels the multi-replica path needs later.

Nothing uses these changes until the switch to sampling pools.

RequestStore.set_future and get_future become set_result and get_result, and SamplingStore.commit becomes
set_result, so both stores name the same operation the same way. The SDK endpoint retrieve_future and the Redis key
open_rl:future:<id> keep their names.

engine_args returns the vLLM engine settings a sampler uses, and serve_args renders them as vllm serve flags, so both
launch styles get the same settings from the same env.

The deploy config adds the sampler-router ConfigMap with Envoy and llm-d EPP config for each pool's CPU pod. RBAC lets
the API server create a pool Deployment and NetworkPolicy, and lets the dispatcher list its replicas. The Workload CRD
keeps pod template labels, which the EPP selects replicas by.
@ShubyM
ShubyM marked this pull request as ready for review October 21, 2026 21:10
@ShubyM
ShubyM requested a review from droot October 21, 2026 21:10
@ShubyM
ShubyM merged commit c6a58f2 into openrl-dev:main Oct 21, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants