[DRAFT] M6b: rename vllm_model/local_vllm_model (friction #9) — tooling + staged plan - #1672
Draft
wprazuch wants to merge 4 commits into
Draft
[DRAFT] M6b: rename vllm_model/local_vllm_model (friction #9) — tooling + staged plan#1672wprazuch wants to merge 4 commits into
wprazuch wants to merge 4 commits into
Conversation
…l_vllm_model) Add nemo_gym.model_server_rename: a line-based rewriter that safely updates the two textual reference forms a model-server rename touches — config_paths/dotted directory paths (responses_api_models/<old> -> /<new>) and the server's config key under responses_api_models: — while deliberately leaving Python imports and the directory move to the dir-move/compat-shim step. This is the reusable bulk-rewrite tool for the staged M6b rollout (friction #9), parameterized by old/new so it works regardless of the final names. The actual dir rename + backward-compat shim is gated on a team naming decision (see PR description). Part of epic #1205 (M6b / friction #9). Signed-off-by: Wojciech Prazuch <wprazuch@nvidia.com>
Rename the local vLLM *server* launcher from `local_vllm_model` to `vllm_server` (RFC M6b / friction #9). The directory `responses_api_models/local_vllm_model` is moved to `responses_api_models/vllm_server`, and textual references are rewritten via `nemo_gym.model_server_rename`: - config_paths directory paths (`responses_api_models/<old>` -> `<new>`) - the `responses_api_models:` config key in functional in-tree configs (aalcr, browsecomp, nemotron_3_ultra endpoints, indirect_prompt_injection, math_with_judge, xstest) and the moved server's own configs. Python module-path imports `responses_api_models.local_vllm_model.*` are updated to `responses_api_models.vllm_server.*` in genrm_model/app.py, the moved app.py, and the moved tests/test_app.py. Class names (`LocalVLLMModel*`) and the `local_vllm_model_actor.py` filename are kept to minimize churn. A backward-compat shim is left at the old path (`responses_api_models/local_vllm_model/{__init__,app,local_vllm_model_actor}.py`) that re-exports from the new location and emits a DeprecationWarning, so external `import responses_api_models.local_vllm_model.*` keeps working. The 15 model configs are NOT duplicated: external config-PATH pins must migrate to `responses_api_models/vllm_server/configs/...`. Signed-off-by: Wojciech Prazuch <wprazuch@nvidia.com>
…erver Complete the M6b rename (friction #9) for both vLLM model servers, with backward-compat import shims: - git mv the two server dirs; rename canonical configs to <new>.yaml; rewrite the inner responses_api_models config key, _delete_key directives, config_paths, and ~150 doc/config references across the tree (via nemo_gym.model_server_rename, now also _delete_key-aware). - Update Python module-path imports (responses_api_models.<old> -> .<new>) in the consumers of VLLMConverter/VLLMModel (genrm_model, azure_openai_model, local_vllm_model_proxy, browsecomp/swe/tau2/harbor agents) and the renamed servers themselves; class names kept. - Backward-compat shims at the old dir paths (app.py/client.py re-export from the new module + DeprecationWarning) so 'import responses_api_models.<old>.*' keeps working. vllm_model is a remote vLLM *endpoint* client; local_vllm_model launches a local vLLM *server* — the new names say which. Frozen fern v0.2.1/v0.3.0 docs untouched. NOTE: external config-PATH pins (e.g. EFB) to responses_api_models/<old>/configs/... are not covered by the import shim and must migrate; tracked for the deprecation cycle. Part of epic #1205 (M6b / friction #9). Signed-off-by: Wojciech Prazuch <wprazuch@nvidia.com>
wprazuch
marked this pull request as ready for review
June 23, 2026 14:01
Format-only follow-up: the line-based reference rewrites pushed two files past ruff-format's wrapping; reformat them to satisfy the lint check. No behavior change. Signed-off-by: Wojciech Prazuch <wprazuch@nvidia.com>
wprazuch
marked this pull request as draft
June 24, 2026 07:43
This was referenced Jun 25, 2026
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft — this PR is the naming-decision vehicle for M6b. It lands the safe, name-agnostic tooling now; the actual directory rename is staged behind a team naming sign-off (below).
Friction #9 / M6b
Rename the confusingly-named model servers:
vllm_model→vllm_endpoint(a remote vLLM endpoint client),local_vllm_model→vllm_server(launches a local vLLM server). ~54 in-tree references (32 + 22).What's in this PR (safe, tested, name-agnostic)
nemo_gym/model_server_rename.py— a line-based rewriter (thedataset_source_migration.pypattern) that updates the two textual reference forms mechanically:config_paths/ dotted overrides:responses_api_models/<old>→responses_api_models/<new>;responses_api_models:(scope-aware — won't touch a same-named key elsewhere).It deliberately does not touch Python imports or move dirs. 10 unit tests, parameterized by
<old> <new>so it works for either rename. Run:python -m nemo_gym.model_server_rename local_vllm_model vllm_server <paths...> [--dry-run].Why the rename itself is gated (design summary)
A design pass found the rename has 5 reference forms, not 3 — critically Python imports (
from responses_api_models.local_vllm_model.app import LocalVLLMModel, used bygenrm_model+ the server's ownapp.py/actor/tests) that no config alias fixes._inherit_from/_copyoperate on in-dict keys, not file paths or imports, so there's no single alias mechanism. Backward compat therefore needs a dir move + compat shim dir (old dir kept as a re-exportapp.py+ delegating config +DeprecationWarning) plus the import re-export.vllm_modelis the most-used model server in the repo; a botched rename breaks essentially every eval, and the names are public/released identifiers (v0.3.0 docs, external EFB pins). So the rename should not proceed on individual judgment.Staged rollout (post naming sign-off)
local_vllm_model → vllm_serveronly (22 refs, exercises all 5 forms incl. thegenrmimport):git mvdir, rename inner key + canonical config, add compat shim dir (re-exportapp.py/actor + delegating config +DeprecationWarning), update Python imports, run this rewriter on the ~8 functional configs, smokeng_run/ng_test.vllm_model → vllm_endpointonce the PoC is proven.fern/versions/v0.2.1,v0.3.0).Asks
vllm_endpoint/vllm_server(or propose alternatives).Part of epic #1205 (M6b / friction #9).