Skip to content

translation: mechanical slime->vime / sglang->vllm cleanup (#107 follow-up) - #199

Merged
CalvinXKY merged 5 commits into
mainfrom
issue107-translation-misc
Jun 9, 2026
Merged

translation: mechanical slime->vime / sglang->vllm cleanup (#107 follow-up)#199
CalvinXKY merged 5 commits into
mainfrom
issue107-translation-misc

Conversation

@aoshen02

@aoshen02 aoshen02 commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Split out of #196 (part 2 of 2). The low-risk half: mechanical translation + trimming vime-invented prose back to slime's brevity. No runtime-behavior changes.

What

  • Symbol translation (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 slimevime / sglangvllm / SLIME_TEST_*VIME_TEST_* left over from RFC: Sync upstream slime PRs into vime (tracking) #107.
  • Doc trims (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.
  • Prose trims (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. Kept the vLLM-0.22.0 --vllm-enforce-eager note (Qwen3-VL logprob parity, vllm#43617) — a real engine requirement.

Intentionally unchanged

docs/{en,zh}/advanced/speculative-decoding.md left as-is.

Why split

Sibling of #198 (the parsing/tokenizer code translation). This PR is pure cleanup and safe to merge independently.

🤖 Generated with Claude Code

…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>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request primarily rebrands references of 'slime' to 'vime' across tests, scripts, and codebase comments, while significantly streamlining and simplifying the documentation for debugging, profiling, and multi-node training. The review feedback highlights grammatical and translation issues in the Chinese multi-node documentation, specifically recommending the removal of a trailing '之外' and correcting the mathematical term '乘除' to '倍数或约数' for accuracy.

Comment thread docs/zh/examples/qwen3-30B-A3B.md Outdated
对于多机环境,需要进行如下的几点修改:
- 将训练模型,数据放在所有机器都可以访问到的路径上;
- 设置各台机器都可以访问到的 `MASTER_ADDR` 之外;
- 去掉 CPU adam 相关的配置,因为使用了 distributed optimizer,所以多机环境下 optimizer 的显存占比会明显下降。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The phrase "之外" (besides/except) at the end of this bullet point is grammatically incorrect and appears to be a translation artifact (likely left over from a sentence structure like "除了...之外"). It should be removed to make the sentence grammatically correct and clear.

Suggested change
- 去掉 CPU adam 相关的配置,因为使用了 distributed optimizer,所以多机环境下 optimizer 的显存占比会明显下降。
- 设置各台机器都可以访问到的 MASTER_ADDR;

Comment thread docs/zh/examples/qwen3-30B-A3B.md Outdated
#### EPLB

当总卡数并不能被 expert 总数整除时,可以开启 vLLM 的 EPLB(Expert Parallelism Load Balancer),通过 `--vllm-eplb-config` 配置冗余 expert。例如对于 24 卡的场景:
- 当总卡数并不能被 expert 总数乘除时,可以开启 vLLM 的 EPLB(Expert Parallelism Load Balancer),通过 `--vllm-eplb-config` 来增加冗余的 expert,例如对于 24 卡的场景,可以配置:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The term "乘除" (multiplication and division) is mathematically incorrect and awkward in this context. The English version uses "multiple or divisor", which translates more accurately to "倍数或约数" in Chinese.

Suggested change
- 当总卡数并不能被 expert 总数乘除时,可以开启 vLLM 的 EPLB(Expert Parallelism Load Balancer),通过 `--vllm-eplb-config` 来增加冗余的 expert,例如对于 24 卡的场景,可以配置:
- 当总卡数不是 expert 总数的倍数或约数时,可以开启 vLLM 的 EPLB(Expert Parallelism Load Balancer),通过 --vllm-eplb-config 来增加冗余的 expert,例如对于 24 卡的场景,可以配置:

aoshen02 and others added 4 commits June 9, 2026 02:25
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>
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>
…dren

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>
Signed-off-by: aoshen02 <aoshen@inferact.ai>
@CalvinXKY
CalvinXKY merged commit a7f875f into main Jun 9, 2026
11 of 14 checks passed
CalvinXKY pushed a commit that referenced this pull request Jun 9, 2026
…low-up) (#201)

* docs: trim vime-invented sections to mirror slime's brevity (#107 follow-up)

Split out of #199 (docs-only). Trim the doc-site pages that had grown
vime-invented sections well beyond slime's, keeping only genuine vLLM engine
differences. No code or example/script changes.

- developer_guide/profiling.md (en+zh): drop the long invented flow/verify/
  troubleshooting + ~150-line runnable script; keep slime's sleep/engine-list/
  tooling/stress sections plus one compact "Enabling the vLLM Profiler" note
  (vLLM only registers /start_profile with --vllm-profiler-config; a real
  engine difference vs sglang).
- examples/qwen3-30B-A3B.md (en+zh): drop the invented multinode topology/Ray/
  smoke-test/param tables; restore slime's 3-bullet form + the redundant-expert
  example (--sglang-ep-num-redundant-experts -> --vllm-eplb-config).
- examples/qwen3-4B.md (en+zh): drop invented IPC/Ray/decoupled blocks; restore
  slime's dp_size note + concurrency/cudagraph block (--sglang-* -> --vllm-*).
- developer_guide/debug.md (en+zh): replace the (vime-expanded) Ray Distributed
  Debugger section with a one-line pointer to verl's Ray Debugging Tutorial.

docs/{en,zh}/advanced/speculative-decoding.md intentionally left unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs: narrow #201 to cruft-removal only (restore over-trimmed docs)

Earlier this PR trimmed four docs hard toward slime's brevity, which dropped
correct, useful vime content. Walk that back to remove only what's wrong /
redundant / unnecessary:

- profiling.md (en+zh): keep the full vLLM-profiler workflow (sleep_rollout,
  --vllm-profiler-config, router/worker discovery, tools/profile_rollout.py,
  trace viewing, troubleshooting, the VLLM_RPC_TIMEOUT gotcha). Remove only:
  the fabricated `--rollout-backend vllm` flag (no such vime arg), the
  VIME_ROOT scope-creep on PYTHONPATH (-> /root/Megatron-LM), and the
  redundant 150-line embedded run_profiling_demo.sh (restates the steps above,
  hardcodes /root/*).
- examples/qwen3-30B-A3B.md, examples/qwen3-4B.md (en+zh): restored to main --
  the multinode (topology/Ray/smoke/params/troubleshooting), EPLB, and
  vLLM-args/decoupled/--train-memory-margin-bytes content is correct and
  useful, not fabricated.
- developer_guide/debug.md (en+zh): restored to main, which already carries the
  Ray Distributed Debugger tutorial equivalent to slime #2001 (no slime/sglang
  tokens to translate). Dropped the interim verl one-liner.

Net effect of this PR vs main: profiling.md cruft removal only.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(profiling): fix only the broken bits, keep the rest

Per review: keep profiling.md as-is and fix only what's actually wrong:
- drop the fabricated `--rollout-backend vllm` flag (vime has no such arg;
  it would make the train.py example fail).
- use the robust engine-kill pattern `pkill -9 -f '[v]llm serve|VLL[M]::'`
  (matches vime/utils/external_utils/command_utils.py; also catches the
  renamed VLLM::EngineCore / Worker_TP* children).

All other content (workflow, the runnable example, PYTHONPATH, etc.) is left
untouched. The other docs restored earlier in this PR stay at main.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(profiling): also drop repo-root from PYTHONPATH

Per review, the PYTHONPATH scope-creep is also worth fixing: vime is importable
without the repo root on PYTHONPATH (slime and vime's run-qwen3-30B-A3B.sh both
use just /root/Megatron-LM). Drop it from both the §2.1 example
(/root/vime:/root/Megatron-LM) and the §8 script (${VIME_ROOT}:/root/Megatron-LM).

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
…low-up) (#201)

* docs: trim vime-invented sections to mirror slime's brevity (#107 follow-up)

Split out of #199 (docs-only). Trim the doc-site pages that had grown
vime-invented sections well beyond slime's, keeping only genuine vLLM engine
differences. No code or example/script changes.

- developer_guide/profiling.md (en+zh): drop the long invented flow/verify/
  troubleshooting + ~150-line runnable script; keep slime's sleep/engine-list/
  tooling/stress sections plus one compact "Enabling the vLLM Profiler" note
  (vLLM only registers /start_profile with --vllm-profiler-config; a real
  engine difference vs sglang).
- examples/qwen3-30B-A3B.md (en+zh): drop the invented multinode topology/Ray/
  smoke-test/param tables; restore slime's 3-bullet form + the redundant-expert
  example (--sglang-ep-num-redundant-experts -> --vllm-eplb-config).
- examples/qwen3-4B.md (en+zh): drop invented IPC/Ray/decoupled blocks; restore
  slime's dp_size note + concurrency/cudagraph block (--sglang-* -> --vllm-*).
- developer_guide/debug.md (en+zh): replace the (vime-expanded) Ray Distributed
  Debugger section with a one-line pointer to verl's Ray Debugging Tutorial.

docs/{en,zh}/advanced/speculative-decoding.md intentionally left unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs: narrow #201 to cruft-removal only (restore over-trimmed docs)

Earlier this PR trimmed four docs hard toward slime's brevity, which dropped
correct, useful vime content. Walk that back to remove only what's wrong /
redundant / unnecessary:

- profiling.md (en+zh): keep the full vLLM-profiler workflow (sleep_rollout,
  --vllm-profiler-config, router/worker discovery, tools/profile_rollout.py,
  trace viewing, troubleshooting, the VLLM_RPC_TIMEOUT gotcha). Remove only:
  the fabricated `--rollout-backend vllm` flag (no such vime arg), the
  VIME_ROOT scope-creep on PYTHONPATH (-> /root/Megatron-LM), and the
  redundant 150-line embedded run_profiling_demo.sh (restates the steps above,
  hardcodes /root/*).
- examples/qwen3-30B-A3B.md, examples/qwen3-4B.md (en+zh): restored to main --
  the multinode (topology/Ray/smoke/params/troubleshooting), EPLB, and
  vLLM-args/decoupled/--train-memory-margin-bytes content is correct and
  useful, not fabricated.
- developer_guide/debug.md (en+zh): restored to main, which already carries the
  Ray Distributed Debugger tutorial equivalent to slime #2001 (no slime/sglang
  tokens to translate). Dropped the interim verl one-liner.

Net effect of this PR vs main: profiling.md cruft removal only.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(profiling): fix only the broken bits, keep the rest

Per review: keep profiling.md as-is and fix only what's actually wrong:
- drop the fabricated `--rollout-backend vllm` flag (vime has no such arg;
  it would make the train.py example fail).
- use the robust engine-kill pattern `pkill -9 -f '[v]llm serve|VLL[M]::'`
  (matches vime/utils/external_utils/command_utils.py; also catches the
  renamed VLLM::EngineCore / Worker_TP* children).

All other content (workflow, the runnable example, PYTHONPATH, etc.) is left
untouched. The other docs restored earlier in this PR stay at main.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(profiling): also drop repo-root from PYTHONPATH

Per review, the PYTHONPATH scope-creep is also worth fixing: vime is importable
without the repo root on PYTHONPATH (slime and vime's run-qwen3-30B-A3B.sh both
use just /root/Megatron-LM). Drop it from both the §2.1 example
(/root/vime:/root/Megatron-LM) and the §8 script (${VIME_ROOT}:/root/Megatron-LM).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@CalvinXKY
CalvinXKY deleted the issue107-translation-misc branch June 16, 2026 11:34
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