[Doc]: update README for Vime#28
Conversation
There was a problem hiding this comment.
Code Review
This pull request rebrands the "slime" framework to "Vime" and transitions the default rollout backend from SGLang to vLLM (integrated with vllm-router). The changes include updating documentation in both English and Chinese, modifying repository links, and adjusting argument prefixes to support vLLM and router configurations. Review feedback focused on improving the technical tone and formatting of the Chinese README, specifically recommending more formal phrasing for "RL scaling" and standardizing the term "server-based".
|
|
||
| [](https://thudm.github.io/slime/) | ||
| [](https://deepwiki.com/THUDM/slime) | ||
| **Vime** 是基于 [slime](https://github.com/THUDM/slime) 的 RL scaling 用 LLM post-training 框架。在保留 slime 训练栈与数据生成设计的同时,默认以 [**vLLM**](https://github.com/vllm-project/vllm)(配合 [vllm-router](https://github.com/vllm-project/router))作为 rollout 后端,替代 SGLang。Vime 提供两大核心能力: |
There was a problem hiding this comment.
The phrasing "RL scaling 用" is a bit informal for technical documentation. It is recommended to use "面向 RL scaling 的" or "用于 RL scaling 的" to improve readability and maintain a professional tone in Chinese.
| **Vime** 是基于 [slime](https://github.com/THUDM/slime) 的 RL scaling 用 LLM post-training 框架。在保留 slime 训练栈与数据生成设计的同时,默认以 [**vLLM**](https://github.com/vllm-project/vllm)(配合 [vllm-router](https://github.com/vllm-project/router))作为 rollout 后端,替代 SGLang。Vime 提供两大核心能力: | |
| **Vime** 是一个基于 [slime](https://github.com/THUDM/slime) 的、面向 RL scaling 的 LLM post-training 框架。在保留 slime 训练栈与数据生成设计的同时,默认以 [**vLLM**](https://github.com/vllm-project/vllm)(配合 [vllm-router](https://github.com/vllm-project/router))作为 rollout 后端,替代 SGLang。Vime 提供两大核心能力: |
|
|
||
| **slime** 是为 RL scaling 设计的 LLM post‑training 框架,提供两大核心能力: | ||
| 1. **高性能训练**:通过连接 Megatron 与 vLLM,支持各种模式的高效训练; | ||
| 2. **灵活的数据生成**:通过自定义数据生成接口以及 server based engine,实现任意的训练数据生成流程。 |
There was a problem hiding this comment.
Both have already landed on main: - PR #28 (#0d249f9) rebranded README.md / README_zh.md to "Vime" and rewrote the architecture / arguments / docs sections in a coherent Vime-as-vLLM-fork voice. My earlier 8279d5f cherry-picked sglang→vLLM edits on the old slime-titled README are now strictly redundant. - PR #30 (#4f03679) added the non-colocated Qwen3-VL geo3k example (round-robin router policy, MODEL_NAME validation, external Ray flag). This branch had a divergent older version from an earlier rebase. Resetting these three files to origin/main so the PR #18 merge is a no-op for them. Issues introduced by PR #28 / PR #30 (dead slime_vllm backend-design link, --router- prefix doc imprecision, stale pkill -9 sglang) are addressed in the follow-up commit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR #28 (the Vime README rebrand) and PR #30 (the Qwen3-VL geo3k non-colocated example) both landed cleanly on main, but introduced three small issues that this commit fixes: 1. Dead link to docs/zh/advanced/slime_vllm_backend_design_v1.md in the README en+zh "slime doc" section. That file was deleted on main by fe700db ~14h before PR #28 merged, so PR #28's diff introduced a link to a path that no longer existed. Removed both the en and zh occurrences. 2. Arguments Walkthrough description of router-prefixed options was incomplete in en+zh README. The single-prefix wording ("Router- related options use the `--router-` prefix") would lead users to try `--router-ip` and fail — Vime exposes two distinct router prefixes: vllm-router's native CLI under `--router-` (e.g. `--router-policy round_robin`, used by PR #30 itself) and Vime's orchestration knobs under `--vllm-router-` (ip / port / request-timeout-secs). Updated both READMEs to call this out. 3. Stale `pkill -9 sglang` in examples/geo3k_vlm/run_geo3k_vlm.sh cleanup block. SGLang processes don't exist in Vime, so the call is dead code. Removed. (Left `pkill -9 slime` for the eventual slime→vime cleanup pass.) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ch.png PR #28 (commit 0d249f9) updated `imgs/arch.png` to the vime architecture diagram. Vime had a second copy at `docs/_static/image/arch.png` referenced by Sphinx docs, which is inherently duplication of the same diagram at two paths. This PR's original diff modified the docs/_static/image/ copy (carried over from PR #18 upstream), but that perpetuates the duplication. Fix: delete the docs/_static/image/arch.png copy and have the two remaining references (docs/{en,zh}/advanced/vllm-config.md) point at the single canonical `imgs/arch.png` via relative path `../../../imgs/`. Single source of truth: 1 arch.png in the tree, used by README, README_zh, and both vllm-config.md docs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: complete sglang→vllm rename across docs/ + README Split from PR #18 (gcl/clean-sglang). One of 4 PRs splitting the original PR #18 by content area (docs / examples / tests+CI / core runtime). See pr18-split-plan.md. 53 files. Pure documentation: no runtime code change. What this PR does: - docs/en/ + docs/zh/ (49 files): rename sglang-config.md → vllm-config.md (1 each side); update all --sglang-* CLI flag examples to their --vllm-* equivalents; rename references to SGLang as the rollout backend → vLLM; fix three broken upstream URLs (each replacement verified to load): * blog.vllm.ai/2025/10/26/distributed-batch-invariance.html → vllm.ai/blog/2025-11-10-bitwise-consistent-train-inference * docs.vllm.ai/.../features/spec_decode.html (301 → 404) → docs.vllm.ai/.../features/speculative_decoding/ * github.com/vllm-project/vllm-router (404; repo does not exist) → github.com/vllm-project/router (the actual router repo) - docs/_static/image/ (3 files): rename sglang_config.png → vllm_config.png; refresh arch.png to the vllm-router architecture. - docs/en/advanced/reproducibility.md and docs/zh/advanced/reproducibility.md: the en and zh files had their content swapped (en had Chinese body, zh had English body). Restored the correct mapping. - docs/{en,zh}/blogs/introducing_slime.md: remove the "Special thanks to the AMD GenAI - Foundation Model Team for Day-1 AMD hardware support" line. With AMD support removed in #36, the acknowledgement implied ongoing support that no longer exists. - README.md / README_zh.md: expanded vLLM router argument prefix explanation (--router-* for vllm-router native flags vs --vllm-router-* for vime-side orchestration knobs); remove stale link to docs/zh/advanced/ slime_vllm_backend_design_v1.md which was deleted in commit fe700db. This PR is independent of the other splits and can land at any time without coordination. See pr18-split-plan.md §"合并顺序无强约束". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: scrub remaining sglang references and fix OPD teacher URL Follow-up to PR #38 review: 1. on-policy-distillation.md (en+zh): `--rm-url` example was `http://<TEACHER_IP>:<TEACHER_PORT>/v1/completions`. Updated to `/inference/v1/generate` — vime's vLLM rollout uses this endpoint by default; the teacher should match. 2. Removed SGLang-comparison advisory blocks. Treating SGLang as if it never existed in vime: - docs/{en,zh}/examples/deepseek-r1.md: - Drop⚠️ "originally written for SGLang backend, check VLLM_ARGS against arguments.py" admonition - Drop "The original SGLang version of this example used large-EP inference (EP64, DP attention, DeepEP); confirm flag availability" - docs/{en,zh}/examples/{glm4.7-30B-A3B,glm4.7-355B-A32B,qwen3-30B-A3B}.md: Drop references to "SGLang's --enable-dp-attention" / "sglang `--enable-dp-attention`". The doc now just describes the vLLM configuration (DP on attention + EP on experts) without invoking SGLang as a reference point. - docs/{en,zh}/blogs/introducing_slime.md: - Drop parenthetical "(originally as an SGLang-native framework; this fork has been adapted to vLLM)" in the article subtitle - Rewrite the "RL-specific workloads" paragraph from past-tense "the original SGLang version upstreamed patches; vLLM port replays..." to present-tense "slime builds on vLLM's /inference/v1/generate ... to support MoE weight updates etc." 3. Final grep result: `grep -E 'sgl|SGL' docs/` returns matches only in docs/{en,zh}/blogs/release_v0.1.0.md (the historical slime v0.1.0 release blog with 6 SGLang mentions each, kept pending separate decision on whether to remove the blog entirely). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: remove historical slime blog posts + clean up index.rst toctree Per user direction "当作sglang完全不存在" — remove docs/{en,zh}/blogs/ in its entirety, plus orphan toctree entries: Removed files (6): - docs/en/blogs/release_v0.1.0.md (slime upstream v0.1.0 release notes; sourced from zhihu; tightly coupled to SGLang-era engineering, 6 sgl mentions) - docs/zh/blogs/release_v0.1.0.md (same, Chinese) - docs/en/blogs/introducing_slime.md (vision blog from lmsys.org 2025-07; SGLang-era origin doc, fully washed earlier but content overlaps with README, kept thin value-add) - docs/zh/blogs/introducing_slime.md (same, Chinese) - docs/_static/image/blogs/release_v0.1.0/cuda_vmm.png - docs/_static/image/blogs/release_v0.1.0/overrall.png Toctree cleanup (2 files): - docs/en/index.rst: * Drop "Hardware Platforms" toctree section — its only entry was `platform_support/amd_tutorial.md`, which #36 deleted from the tree but did not remove from the toctree (stale reference left behind on main). * Drop "Blogs" toctree section (now empty). - docs/zh/index.rst: * Drop "博客" toctree section (now empty). (zh side never had the Hardware Platforms section.) Verification: $ git grep -E 'sgl|SGL' -- docs/ # returns nothing — docs/ is now # 100% free of SGLang references. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: dedup arch.png — drop docs/_static/image copy, point to imgs/arch.png PR #28 (commit 0d249f9) updated `imgs/arch.png` to the vime architecture diagram. Vime had a second copy at `docs/_static/image/arch.png` referenced by Sphinx docs, which is inherently duplication of the same diagram at two paths. This PR's original diff modified the docs/_static/image/ copy (carried over from PR #18 upstream), but that perpetuates the duplication. Fix: delete the docs/_static/image/arch.png copy and have the two remaining references (docs/{en,zh}/advanced/vllm-config.md) point at the single canonical `imgs/arch.png` via relative path `../../../imgs/`. Single source of truth: 1 arch.png in the tree, used by README, README_zh, and both vllm-config.md docs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: fix vllm_config.png wiring (redraw to match original sglang_config.png topology) The previous regenerate (8b3d1e3) had two wiring bugs vs the original upstream sglang_config.png: 1. MISSING: data buffer → megatron (data feeds training) 2. EXTRA: custom rollout generation → megatron (rollout shouldn't feed training data; that's the data buffer's job) It also had a visual bug — the 'prefill server' / 'decode server' / 'regular server' text labels were centred on the box and overlapping the GPU sprites inside. This commit re-runs matplotlib to produce the topologically correct graph: data buffer → megatron on the left column, custom rollout generation branching to the two server groups, and megatron → prefill server as the weight-sync edge into server group 1. Inner-server labels are now placed above the GPUs. Topology after this commit: data buffer ↔ custom rollout generation │ │ │ ↓ ↓ ↓ megatron ──────→ [server group 1] [server group 2] (vllm router) (vllm router) prefill+decode regular Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: mention TorchSpec for draft training * update architecture image. --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: kaiyuan <kyxiezju@163.com>
* update vime readme * update arch.png
* docs: complete sglang→vllm rename across docs/ + README Split from PR #18 (gcl/clean-sglang). One of 4 PRs splitting the original PR #18 by content area (docs / examples / tests+CI / core runtime). See pr18-split-plan.md. 53 files. Pure documentation: no runtime code change. What this PR does: - docs/en/ + docs/zh/ (49 files): rename sglang-config.md → vllm-config.md (1 each side); update all --sglang-* CLI flag examples to their --vllm-* equivalents; rename references to SGLang as the rollout backend → vLLM; fix three broken upstream URLs (each replacement verified to load): * blog.vllm.ai/2025/10/26/distributed-batch-invariance.html → vllm.ai/blog/2025-11-10-bitwise-consistent-train-inference * docs.vllm.ai/.../features/spec_decode.html (301 → 404) → docs.vllm.ai/.../features/speculative_decoding/ * github.com/vllm-project/vllm-router (404; repo does not exist) → github.com/vllm-project/router (the actual router repo) - docs/_static/image/ (3 files): rename sglang_config.png → vllm_config.png; refresh arch.png to the vllm-router architecture. - docs/en/advanced/reproducibility.md and docs/zh/advanced/reproducibility.md: the en and zh files had their content swapped (en had Chinese body, zh had English body). Restored the correct mapping. - docs/{en,zh}/blogs/introducing_slime.md: remove the "Special thanks to the AMD GenAI - Foundation Model Team for Day-1 AMD hardware support" line. With AMD support removed in #36, the acknowledgement implied ongoing support that no longer exists. - README.md / README_zh.md: expanded vLLM router argument prefix explanation (--router-* for vllm-router native flags vs --vllm-router-* for vime-side orchestration knobs); remove stale link to docs/zh/advanced/ slime_vllm_backend_design_v1.md which was deleted in commit fe700db. This PR is independent of the other splits and can land at any time without coordination. See pr18-split-plan.md §"合并顺序无强约束". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: scrub remaining sglang references and fix OPD teacher URL Follow-up to PR #38 review: 1. on-policy-distillation.md (en+zh): `--rm-url` example was `http://<TEACHER_IP>:<TEACHER_PORT>/v1/completions`. Updated to `/inference/v1/generate` — vime's vLLM rollout uses this endpoint by default; the teacher should match. 2. Removed SGLang-comparison advisory blocks. Treating SGLang as if it never existed in vime: - docs/{en,zh}/examples/deepseek-r1.md: - Drop⚠️ "originally written for SGLang backend, check VLLM_ARGS against arguments.py" admonition - Drop "The original SGLang version of this example used large-EP inference (EP64, DP attention, DeepEP); confirm flag availability" - docs/{en,zh}/examples/{glm4.7-30B-A3B,glm4.7-355B-A32B,qwen3-30B-A3B}.md: Drop references to "SGLang's --enable-dp-attention" / "sglang `--enable-dp-attention`". The doc now just describes the vLLM configuration (DP on attention + EP on experts) without invoking SGLang as a reference point. - docs/{en,zh}/blogs/introducing_slime.md: - Drop parenthetical "(originally as an SGLang-native framework; this fork has been adapted to vLLM)" in the article subtitle - Rewrite the "RL-specific workloads" paragraph from past-tense "the original SGLang version upstreamed patches; vLLM port replays..." to present-tense "slime builds on vLLM's /inference/v1/generate ... to support MoE weight updates etc." 3. Final grep result: `grep -E 'sgl|SGL' docs/` returns matches only in docs/{en,zh}/blogs/release_v0.1.0.md (the historical slime v0.1.0 release blog with 6 SGLang mentions each, kept pending separate decision on whether to remove the blog entirely). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: remove historical slime blog posts + clean up index.rst toctree Per user direction "当作sglang完全不存在" — remove docs/{en,zh}/blogs/ in its entirety, plus orphan toctree entries: Removed files (6): - docs/en/blogs/release_v0.1.0.md (slime upstream v0.1.0 release notes; sourced from zhihu; tightly coupled to SGLang-era engineering, 6 sgl mentions) - docs/zh/blogs/release_v0.1.0.md (same, Chinese) - docs/en/blogs/introducing_slime.md (vision blog from lmsys.org 2025-07; SGLang-era origin doc, fully washed earlier but content overlaps with README, kept thin value-add) - docs/zh/blogs/introducing_slime.md (same, Chinese) - docs/_static/image/blogs/release_v0.1.0/cuda_vmm.png - docs/_static/image/blogs/release_v0.1.0/overrall.png Toctree cleanup (2 files): - docs/en/index.rst: * Drop "Hardware Platforms" toctree section — its only entry was `platform_support/amd_tutorial.md`, which #36 deleted from the tree but did not remove from the toctree (stale reference left behind on main). * Drop "Blogs" toctree section (now empty). - docs/zh/index.rst: * Drop "博客" toctree section (now empty). (zh side never had the Hardware Platforms section.) Verification: $ git grep -E 'sgl|SGL' -- docs/ # returns nothing — docs/ is now # 100% free of SGLang references. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: dedup arch.png — drop docs/_static/image copy, point to imgs/arch.png PR #28 (commit 0d249f9) updated `imgs/arch.png` to the vime architecture diagram. Vime had a second copy at `docs/_static/image/arch.png` referenced by Sphinx docs, which is inherently duplication of the same diagram at two paths. This PR's original diff modified the docs/_static/image/ copy (carried over from PR #18 upstream), but that perpetuates the duplication. Fix: delete the docs/_static/image/arch.png copy and have the two remaining references (docs/{en,zh}/advanced/vllm-config.md) point at the single canonical `imgs/arch.png` via relative path `../../../imgs/`. Single source of truth: 1 arch.png in the tree, used by README, README_zh, and both vllm-config.md docs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: fix vllm_config.png wiring (redraw to match original sglang_config.png topology) The previous regenerate (8b3d1e3) had two wiring bugs vs the original upstream sglang_config.png: 1. MISSING: data buffer → megatron (data feeds training) 2. EXTRA: custom rollout generation → megatron (rollout shouldn't feed training data; that's the data buffer's job) It also had a visual bug — the 'prefill server' / 'decode server' / 'regular server' text labels were centred on the box and overlapping the GPU sprites inside. This commit re-runs matplotlib to produce the topologically correct graph: data buffer → megatron on the left column, custom rollout generation branching to the two server groups, and megatron → prefill server as the weight-sync edge into server group 1. Inner-server labels are now placed above the GPUs. Topology after this commit: data buffer ↔ custom rollout generation │ │ │ ↓ ↓ ↓ megatron ──────→ [server group 1] [server group 2] (vllm router) (vllm router) prefill+decode regular Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: mention TorchSpec for draft training * update architecture image. --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: kaiyuan <kyxiezju@163.com>
Sub-task
Docs — README and architecture overview (remaining #11 items: quickstart, per-model run guides, slime → vime migration guide).
Summary
README.md/README_zh.mdfrom slime to Vime (slime-based RL framework, default vLLM rollout).imgs/arch.png.https://github.com/vllm-project/vime) and Vime citation.Out of scope (follow-ups under #11)
Test plan
README.md/README_zh.mdon GitHubimgs/arch.pngrenders in Architecture Overview