docs+examples: credit slime and fix examples README consistency - #180
Merged
Conversation
The Sphinx docs claimed slime's work as vime's own, contradicting the top-level README (which correctly states vime is "built on slime"): - index.rst (en+zh) stated "vime is the RL-framework behind GLM-4.7/4.6/4.5". slime trained those releases; vime is a fork built on slime. Reworded to credit slime, mirroring the README's attribution. - arch-support-beyond-megatron.md (en+zh) said vime "introduces" the import-and-wrap-HF-into-Megatron approach. That design is slime's (the file is otherwise a verbatim rebrand of slime's doc). Changed to credit slime. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Code Review
This pull request updates the English and Chinese documentation to clarify that the vime framework is built on top of slime. It specifies that vime inherits slime's training stack, data-generation design, and model support, while utilizing vLLM as its default rollout backend. There are no review comments, so I have no feedback to provide.
Codex review nit: docs/zh/index.rst ended the intro line with an ASCII colon while the rest of the file uses full-width :. Align it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The examples/README directory listing had drifted from the actual contents: - Removed dead links to `eval_multi_task` and `reproducibility` — neither directory exists under examples/ (reproducibility is a docs/ page, not an example). - Added the existing `coding_agent_rl` example, which was present on disk but unlisted. - Removed `examples/retool/`: it was an incomplete stub (only generate_with_retool.py + tool_sandbox.py, no README and no run scripts), unreferenced anywhere else in the repo, and was likewise unlisted in the README. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The SFT command linked ./examples/geo_3k_vlm/run_geo3k_vlm_sft.sh (typo "geo_3k_vlm"); the actual script is under examples/geo3k_vlm/. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
`examples/DrGRPO/custom_reducer.py` does not exist (the example was never present). Remove the dead pointer from customization.md (en+zh) and from the --custom-pg-loss-reducer-function-path help string in arguments.py (which also had a mismatched spelling, "Dr.GRPO"). The feature is unchanged; only the broken example reference is removed. The conceptual "Dr.GRPO" mentions (with the paper link) are kept. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
reproducibility.md (en+zh) instructed `bash script/run-qwen2.5-0.5B- reproducibility.sh`, but vime had dropped that run script during the run-*.sh trim, leaving the determinism recipe with a dead final step. Port slime's run-qwen2.5-0.5B-reproducibility.sh onto vime's run-script conventions: - SGLANG_ARGS -> VLLM_ARGS; --sglang-mem-fraction-static 0.7 -> --vllm-gpu-memory-utilization 0.7; --sglang-* -> --vllm-* for the deterministic-inference and attention-backend flags. - Adopt vime boilerplate (NVLINK/NUM_GPUS detection, VIME_ROOT, MASTER_ADDR ray launch, --train-backend megatron), matching run-qwen3-4B.sh. - Preserve the determinism env vars (NCCL_ALGO=Ring, NVTE_ALLOW_NONDETERMINISTIC_ALGO=0, CUBLAS_WORKSPACE_CONFIG=:4096:8) and --deterministic-mode / --calculate-per-token-loss. Also fix the doc path typo `script/` -> `scripts/` in both languages. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CalvinXKY
approved these changes
Jun 8, 2026
This was referenced Jun 8, 2026
aoshen02
added a commit
that referenced
this pull request
Jun 9, 2026
Both files had drifted far from their slime originals; restore them to slime's content with only the sanctioned translations. run-qwen2.5-0.5B-reproducibility.sh: #180 re-created this file with vime-only scaffolding (NUM_GPUS var, VIME_ROOT on PYTHONPATH, --dashboard-* flags, MASTER_ADDR, a RUNTIME_ENV_JSON heredoc, --train-backend megatron) and dropped the engine-kill. Revert to slime's script verbatim, applying only: pkill -9 sglang -> pkill -9 -f "vllm serve"; slime-dev -> vime-dev; SGLANG_ARGS -> VLLM_ARGS (+ --vllm-gpu-memory-utilization / --vllm-attention-backend / --vllm-enable-deterministic-inference). --train-backend megatron is vime's only choice + default (redundant); VIME_ROOT is unneeded (run-qwen3-30B-A3B.sh and slime both omit it). Kept one fix vs slime: source "${SCRIPT_DIR}/models/..." (slime's "${SCRIPT_DIR}/scripts/models/..." doesn't resolve in this layout). fully_async/README.md: was a full vime-invented rewrite (even its "Creating new global async worker..." log lines don't match the code). Restore slime's README structure/prose, translated, pointing at vime's actual run-qwen3-4b-fully_async.sh and examples/coding_agent_rl, with args.sglang_server_concurrency -> args.vllm_server_concurrency. The "You should see" lines now match what vime/rollout/fully_async_rollout.py actually logs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CalvinXKY
pushed a commit
that referenced
this pull request
Jun 9, 2026
…ow-up) (#199) * translation: mechanical slime->vime / sglang->vllm cleanup missed in #107 Low-risk follow-up to the #107 sync: finish the mechanical translation and trim vime-invented prose back to slime's brevity. No runtime-behavior changes. - tests, vime/ray/rollout.py, vime/rollout/_fanout_test_helpers.py, vime/utils/dp_schedule.py, scripts/run-minimax-m2.sh, .github/workflows/pr-test.yml: finish slime->vime / sglang->vllm / SLIME_TEST_*->VIME_TEST_* symbol translation left over from #107. - docs/{en,zh}/developer_guide/profiling.md, examples/qwen3-30B-A3B.md, examples/qwen3-4B.md: trim vime-invented sections to mirror slime; keep only genuine vLLM engine differences (profiler needs --vllm-profiler-config, EPLB config, cudagraph-capture-sizes). - docs/{en,zh}/developer_guide/debug.md: replace the (vime-expanded) Ray Distributed Debugger section with a one-line pointer to verl's Ray Debugging Tutorial. - examples/{fully_async,geo3k_vlm,geo3k_vlm_multi_turn}, scripts/run-qwen2.5- 0.5B-reproducibility.sh, vime/utils/external_utils/command_utils.py: drop vime-invented comments/prose. Keep the vLLM-0.22.0 enforce-eager note (Qwen3-VL logprob parity, vllm#43617) -- a real engine requirement. docs/{en,zh}/advanced/speculative-decoding.md intentionally left unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: move doc-site trims to their own PR (#201) Reverts docs/** here; the doc-site trims now live in the dedicated docs-only PR #201 so this PR stays scoped to mechanical symbol translation + example/ script/command_utils prose cleanup. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * examples/scripts: mirror slime for repro script + fully_async README Both files had drifted far from their slime originals; restore them to slime's content with only the sanctioned translations. run-qwen2.5-0.5B-reproducibility.sh: #180 re-created this file with vime-only scaffolding (NUM_GPUS var, VIME_ROOT on PYTHONPATH, --dashboard-* flags, MASTER_ADDR, a RUNTIME_ENV_JSON heredoc, --train-backend megatron) and dropped the engine-kill. Revert to slime's script verbatim, applying only: pkill -9 sglang -> pkill -9 -f "vllm serve"; slime-dev -> vime-dev; SGLANG_ARGS -> VLLM_ARGS (+ --vllm-gpu-memory-utilization / --vllm-attention-backend / --vllm-enable-deterministic-inference). --train-backend megatron is vime's only choice + default (redundant); VIME_ROOT is unneeded (run-qwen3-30B-A3B.sh and slime both omit it). Kept one fix vs slime: source "${SCRIPT_DIR}/models/..." (slime's "${SCRIPT_DIR}/scripts/models/..." doesn't resolve in this layout). fully_async/README.md: was a full vime-invented rewrite (even its "Creating new global async worker..." log lines don't match the code). Restore slime's README structure/prose, translated, pointing at vime's actual run-qwen3-4b-fully_async.sh and examples/coding_agent_rl, with args.sglang_server_concurrency -> args.vllm_server_concurrency. The "You should see" lines now match what vime/rollout/fully_async_rollout.py actually logs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * scripts(repro): use command_utils pkill pattern for renamed vLLM children pkill -9 -f 'vllm serve' only catches the parent; vLLM renames its subprocesses (VLLM::EngineCore / Worker_TP*). Match the renamed children too, mirroring vime/utils/external_utils/command_utils.py. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Update README.md Signed-off-by: aoshen02 <aoshen@inferact.ai> --------- Signed-off-by: aoshen02 <aoshen@inferact.ai> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CalvinXKY
pushed a commit
that referenced
this pull request
Jun 9, 2026
…istic inference (#202) * fix(vllm_engine): actually export VLLM_BATCH_INVARIANT=1 for deterministic inference --vllm-enable-deterministic-inference's help text promises it "exports VLLM_BATCH_INVARIANT=1 to the vLLM subprocess so attention / comm / MM kernels pick batch-invariant variants", but no code did so -- the flag only forwarded a per-sample seed, and (being an orchestration-only dest) is never passed to `vllm serve`. The only thing that ever set the env was a line in run-qwen2.5-0.5B-reproducibility.sh's runtime-env, which #180 dropped when it re-created the script, leaving nothing to set it. Set VLLM_BATCH_INVARIANT=1 in build_vllm_subprocess_env when the flag is on, so the flag delivers on its documented behavior and seed+kernel determinism both hold without depending on the launch script. Adds two unit tests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * rollout: drop dead VIME_ENABLE_PROFILING env (no reader in vime) slime sets SLIME_ENABLE_PROFILING here and reads it via its sglang *source patch* (docker/patch/*/sglang.patch: envs.SLIME_ENABLE_PROFILING.get()), which gates prefill/decode timing instrumentation in sglang's scheduler. vime runs vLLM and does not patch that instrumentation in, and nothing in the tree reads VIME_ENABLE_PROFILING -- it was a mechanical slime->vime rename of a flag whose backing reader never came along, so setting it did nothing. Remove it (and the now-unused `import os`); vime profiling is driven by --vllm-profiler-config. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Update vllm_engine.py Signed-off-by: aoshen02 <aoshen@inferact.ai> --------- Signed-off-by: aoshen02 <aoshen@inferact.ai> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
momo609
pushed a commit
that referenced
this pull request
Jun 10, 2026
…180) * docs: credit slime for GLM provenance and HF-wrap design The Sphinx docs claimed slime's work as vime's own, contradicting the top-level README (which correctly states vime is "built on slime"): - index.rst (en+zh) stated "vime is the RL-framework behind GLM-4.7/4.6/4.5". slime trained those releases; vime is a fork built on slime. Reworded to credit slime, mirroring the README's attribution. - arch-support-beyond-megatron.md (en+zh) said vime "introduces" the import-and-wrap-HF-into-Megatron approach. That design is slime's (the file is otherwise a verbatim rebrand of slime's doc). Changed to credit slime. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(zh): use full-width colon for consistency Codex review nit: docs/zh/index.rst ended the intro line with an ASCII colon while the rest of the file uses full-width :. Align it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * examples: fix README drift and remove incomplete retool example The examples/README directory listing had drifted from the actual contents: - Removed dead links to `eval_multi_task` and `reproducibility` — neither directory exists under examples/ (reproducibility is a docs/ page, not an example). - Added the existing `coding_agent_rl` example, which was present on disk but unlisted. - Removed `examples/retool/`: it was an incomplete stub (only generate_with_retool.py + tool_sandbox.py, no README and no run scripts), unreferenced anywhere else in the repo, and was likewise unlisted in the README. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * examples: fix broken self-link in geo3k_vlm README The SFT command linked ./examples/geo_3k_vlm/run_geo3k_vlm_sft.sh (typo "geo_3k_vlm"); the actual script is under examples/geo3k_vlm/. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs/args: drop dead reference to missing DrGRPO example `examples/DrGRPO/custom_reducer.py` does not exist (the example was never present). Remove the dead pointer from customization.md (en+zh) and from the --custom-pg-loss-reducer-function-path help string in arguments.py (which also had a mismatched spelling, "Dr.GRPO"). The feature is unchanged; only the broken example reference is removed. The conceptual "Dr.GRPO" mentions (with the paper link) are kept. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * scripts: port qwen2.5-0.5B reproducibility run script from slime reproducibility.md (en+zh) instructed `bash script/run-qwen2.5-0.5B- reproducibility.sh`, but vime had dropped that run script during the run-*.sh trim, leaving the determinism recipe with a dead final step. Port slime's run-qwen2.5-0.5B-reproducibility.sh onto vime's run-script conventions: - SGLANG_ARGS -> VLLM_ARGS; --sglang-mem-fraction-static 0.7 -> --vllm-gpu-memory-utilization 0.7; --sglang-* -> --vllm-* for the deterministic-inference and attention-backend flags. - Adopt vime boilerplate (NVLINK/NUM_GPUS detection, VIME_ROOT, MASTER_ADDR ray launch, --train-backend megatron), matching run-qwen3-4B.sh. - Preserve the determinism env vars (NCCL_ALGO=Ring, NVTE_ALLOW_NONDETERMINISTIC_ALGO=0, CUBLAS_WORKSPACE_CONFIG=:4096:8) and --deterministic-mode / --calculate-per-token-loss. Also fix the doc path typo `script/` -> `scripts/` in both languages. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
momo609
pushed a commit
that referenced
this pull request
Jun 10, 2026
…ow-up) (#199) * translation: mechanical slime->vime / sglang->vllm cleanup missed in #107 Low-risk follow-up to the #107 sync: finish the mechanical translation and trim vime-invented prose back to slime's brevity. No runtime-behavior changes. - tests, vime/ray/rollout.py, vime/rollout/_fanout_test_helpers.py, vime/utils/dp_schedule.py, scripts/run-minimax-m2.sh, .github/workflows/pr-test.yml: finish slime->vime / sglang->vllm / SLIME_TEST_*->VIME_TEST_* symbol translation left over from #107. - docs/{en,zh}/developer_guide/profiling.md, examples/qwen3-30B-A3B.md, examples/qwen3-4B.md: trim vime-invented sections to mirror slime; keep only genuine vLLM engine differences (profiler needs --vllm-profiler-config, EPLB config, cudagraph-capture-sizes). - docs/{en,zh}/developer_guide/debug.md: replace the (vime-expanded) Ray Distributed Debugger section with a one-line pointer to verl's Ray Debugging Tutorial. - examples/{fully_async,geo3k_vlm,geo3k_vlm_multi_turn}, scripts/run-qwen2.5- 0.5B-reproducibility.sh, vime/utils/external_utils/command_utils.py: drop vime-invented comments/prose. Keep the vLLM-0.22.0 enforce-eager note (Qwen3-VL logprob parity, vllm#43617) -- a real engine requirement. docs/{en,zh}/advanced/speculative-decoding.md intentionally left unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: move doc-site trims to their own PR (#201) Reverts docs/** here; the doc-site trims now live in the dedicated docs-only PR #201 so this PR stays scoped to mechanical symbol translation + example/ script/command_utils prose cleanup. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * examples/scripts: mirror slime for repro script + fully_async README Both files had drifted far from their slime originals; restore them to slime's content with only the sanctioned translations. run-qwen2.5-0.5B-reproducibility.sh: #180 re-created this file with vime-only scaffolding (NUM_GPUS var, VIME_ROOT on PYTHONPATH, --dashboard-* flags, MASTER_ADDR, a RUNTIME_ENV_JSON heredoc, --train-backend megatron) and dropped the engine-kill. Revert to slime's script verbatim, applying only: pkill -9 sglang -> pkill -9 -f "vllm serve"; slime-dev -> vime-dev; SGLANG_ARGS -> VLLM_ARGS (+ --vllm-gpu-memory-utilization / --vllm-attention-backend / --vllm-enable-deterministic-inference). --train-backend megatron is vime's only choice + default (redundant); VIME_ROOT is unneeded (run-qwen3-30B-A3B.sh and slime both omit it). Kept one fix vs slime: source "${SCRIPT_DIR}/models/..." (slime's "${SCRIPT_DIR}/scripts/models/..." doesn't resolve in this layout). fully_async/README.md: was a full vime-invented rewrite (even its "Creating new global async worker..." log lines don't match the code). Restore slime's README structure/prose, translated, pointing at vime's actual run-qwen3-4b-fully_async.sh and examples/coding_agent_rl, with args.sglang_server_concurrency -> args.vllm_server_concurrency. The "You should see" lines now match what vime/rollout/fully_async_rollout.py actually logs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * scripts(repro): use command_utils pkill pattern for renamed vLLM children pkill -9 -f 'vllm serve' only catches the parent; vLLM renames its subprocesses (VLLM::EngineCore / Worker_TP*). Match the renamed children too, mirroring vime/utils/external_utils/command_utils.py. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Update README.md Signed-off-by: aoshen02 <aoshen@inferact.ai> --------- Signed-off-by: aoshen02 <aoshen@inferact.ai> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
momo609
pushed a commit
that referenced
this pull request
Jun 10, 2026
…istic inference (#202) * fix(vllm_engine): actually export VLLM_BATCH_INVARIANT=1 for deterministic inference --vllm-enable-deterministic-inference's help text promises it "exports VLLM_BATCH_INVARIANT=1 to the vLLM subprocess so attention / comm / MM kernels pick batch-invariant variants", but no code did so -- the flag only forwarded a per-sample seed, and (being an orchestration-only dest) is never passed to `vllm serve`. The only thing that ever set the env was a line in run-qwen2.5-0.5B-reproducibility.sh's runtime-env, which #180 dropped when it re-created the script, leaving nothing to set it. Set VLLM_BATCH_INVARIANT=1 in build_vllm_subprocess_env when the flag is on, so the flag delivers on its documented behavior and seed+kernel determinism both hold without depending on the launch script. Adds two unit tests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * rollout: drop dead VIME_ENABLE_PROFILING env (no reader in vime) slime sets SLIME_ENABLE_PROFILING here and reads it via its sglang *source patch* (docker/patch/*/sglang.patch: envs.SLIME_ENABLE_PROFILING.get()), which gates prefill/decode timing instrumentation in sglang's scheduler. vime runs vLLM and does not patch that instrumentation in, and nothing in the tree reads VIME_ENABLE_PROFILING -- it was a mechanical slime->vime rename of a flag whose backing reader never came along, so setting it did nothing. Remove it (and the now-unused `import os`); vime profiling is driven by --vllm-profiler-config. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Update vllm_engine.py Signed-off-by: aoshen02 <aoshen@inferact.ai> --------- Signed-off-by: aoshen02 <aoshen@inferact.ai> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
What
A content-trim pass over
docs/andexamples/, verified against upstream slime (8a5397e).1. Attribution — docs claimed slime's work as vime's own
The Sphinx docs contradicted the top-level
README.md(which correctly says vime is "built on slime"):index.rst(en+zh) stated "vime is the RL-framework behind GLM-4.7, GLM-4.6 and GLM-4.5." slime trained those releases; vime is a fork built on slime. Reworded to credit slime, mirroring the README.advanced/arch-support-beyond-megatron.md(en+zh) said vime "introduces" the import-and-wrap-HF-into-Megatron approach. That design is slime's (the file is otherwise a verbatim rebrand). Changed "introduces" -> "inherits slime's" (zh "提出了" -> "沿用了 slime 提出的").2.
examples/README drift + incomplete exampleeval_multi_task(no such dir) andreproducibility(it's a docs page, not an example) fromexamples/README.md.coding_agent_rl(complete example, was on disk but unlisted).examples/retool/-- an incomplete stub (onlygenerate_with_retool.py+tool_sandbox.py, no README/run scripts; unreferenced anywhere, grep-verified).examples/geo3k_vlm/README.md(geo_3k_vlmtypo).3. Dead reference to a missing example
examples/DrGRPO/custom_reducer.pynever existed. Removed the dead pointer fromcustomization.md(en+zh) and from the--custom-pg-loss-reducer-function-pathhelp string invime/utils/arguments.py(which also had a mismatchedDr.GRPOspelling). The feature is unchanged; conceptual "Dr.GRPO" mentions with the paper link are kept.Scope
Docs/examples plus one help-string text edit in
arguments.py-- no behavior change.