Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
7c78ad6
feat(rl): Stage 1 — vLLM RL admin handler methods + register_engine_r…
biswapanda May 11, 2026
25e7056
feat(rl): add rl_dispatch + request-plane rl endpoint on worker side
biswapanda May 11, 2026
56fd37c
feat(rl): add dynamo-rl crate with /v1/rl/engine fan-out surface
biswapanda May 11, 2026
0137735
feat(llm): wire dynamo-rl into HTTP service, add /v1/rl/engine on DYN…
biswapanda May 11, 2026
01a8e62
feat(llm): mount RL routes on main port so admin_base_url can equal b…
biswapanda May 11, 2026
e59d1b4
fix(llm): wire DistributedRuntime into HttpServiceBuilder for RL fan-out
biswapanda May 11, 2026
258ac20
test(rl): add E2E smoke test for pause/update/resume flow
biswapanda May 11, 2026
67b0943
test
biswapanda May 11, 2026
e6909de
cargo lock
biswapanda May 11, 2026
05d06d0
style(llm): collapse nested if let in rl_router per clippy::collapsib…
biswapanda May 11, 2026
c885879
test(rl): add LoRA smoke test for load_lora_adapter/unload_lora_adapter
biswapanda May 11, 2026
2d4b9c0
test(rl): add no-extension smoke test, document FT requires FileSyste…
biswapanda May 11, 2026
ae6148f
fix(rl): pass body kwargs through to collective_rpc in update_weights…
biswapanda May 11, 2026
2ce01ed
test(rl): add NCCL smoke test (wire-path on 1 GPU, full E2E on >=2 GPUs)
biswapanda May 11, 2026
3f6bd6a
test(rl): pass --enable-rl to all smoke test worker launches
biswapanda May 11, 2026
d5bc713
fix(rl): address CodeRabbit review issues on PR #9382
biswapanda May 11, 2026
62bbf35
add smoke test for tito
biswapanda May 13, 2026
e6fa4b7
feat(llm): nvext passthrough allowlist + cache_salt + stop_token_ids …
biswapanda May 14, 2026
c704d0d
feat(vllm): emit nvext.engine_data with completion_token_ids + logpro…
biswapanda May 14, 2026
d98bda3
feat(vllm): add --enable-rl flag (DYN_ENABLE_RL) for SGLang parity
biswapanda May 14, 2026
70825b3
chore(vllm): bump vllm to 0.20.2
biswapanda May 14, 2026
cb27840
test(rl): update smoke_test_tito to rl-sdk-2 wire shape (nvext.engine…
biswapanda May 14, 2026
3efcb8d
test(rl): add probe_engine_data.sh single-roundtrip TITO assertion
biswapanda May 14, 2026
981727a
feat(common_ext): add prompt_logprobs + detokenize sampling hints (pl…
biswapanda May 14, 2026
31734a9
feat(llm_backend): PromptLogprobEntry + LLMEngineOutput/BackendOutput…
biswapanda May 14, 2026
1b9d353
feat(nvext): top-level completion_token_ids + prompt_logprobs + dp-ra…
biswapanda May 14, 2026
6d3ae8b
feat(preprocessor): default max_tokens to context_length - prompt_len…
biswapanda May 14, 2026
1088425
feat(vllm): A10 engine adapter — prompt_logprobs serialize + cache_sa…
biswapanda May 14, 2026
7ec804e
fix(vllm): probes 1+2 — string keys for prompt_logprobs + skip genera…
biswapanda May 14, 2026
d0456b0
fix(vllm): default logprobs_mode=processed_logprobs when --enable-rl …
biswapanda May 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
[workspace]
members = [
"lib/llm",
"lib/rl",
"lib/runtime",
"lib/config",
"lib/tokenizers",
Expand Down Expand Up @@ -41,6 +42,7 @@ keywords = ["llm", "genai", "inference", "nvidia", "distributed"]
# Local crates
dynamo-runtime = { path = "lib/runtime", version = "1.2.0" }
dynamo-llm = { path = "lib/llm", version = "1.2.0" }
dynamo-rl = { path = "lib/rl", version = "1.2.0" }
dynamo-config = { path = "lib/config", version = "1.2.0" }
dynamo-tokenizers = { path = "lib/tokenizers", version = "1.2.0" }
dynamo-tokens = { path = "lib/tokens", version = "1.2.0" }
Expand Down
25 changes: 25 additions & 0 deletions components/src/dynamo/vllm/backend_args.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,27 @@ def add_arguments(self, parser) -> None:
default=False,
help="Enable multimodal processing. If not set, none of the multimodal components can be used.",
)
# Mirror SGLang's `--enable-rl` (sglang/backend_args.py:109) so both
# backends accept the same CLI / env var. The RL request-plane routes
# (pause_generation, update_weights_*, etc.) are unconditionally
# registered on the vLLM backend today, so this flag is currently a
# no-op gate that exists for parity + future opt-in gating. The
# canonical env var is `DYN_ENABLE_RL` (not `DYN_VLLM_ENABLE_RL`)
# because RL endpoints live on the frontend side too and they share
# this env var (see lib/llm/src/http/service/service_v2.rs).
add_negatable_bool_argument(
g,
flag_name="--enable-rl",
env_var="DYN_ENABLE_RL",
default=False,
help=(
"Enable RL training support. Mirrors --enable-rl on the SGLang "
"backend. RL admin routes (/v1/rl/engine pause_generation, "
"update_weights_from_disk, resume_generation, etc.) are "
"registered unconditionally today; this flag is reserved as the "
"future on/off gate."
),
)
add_argument(
g,
flag_name="--mm-prompt-template",
Expand Down Expand Up @@ -254,6 +275,10 @@ class DynamoVllmConfig(ConfigBase):
multimodal_worker: bool
multimodal_decode_worker: bool
enable_multimodal: bool
# RL parity with SGLang. Reserved as the future on/off gate for RL routes;
# vLLM registers the routes unconditionally today, so this flag is a no-op
# signal that the worker is running in an RL deployment.
enable_rl: bool = False
mm_prompt_template: str
frontend_decoding: bool
embedding_transfer_mode: Union[
Expand Down
Loading
Loading