Skip to content

chore: rename slime/ → vime/ and slime_plugins/ → vime_plugins/ - #105

Merged
CalvinXKY merged 3 commits into
mainfrom
chore/rename-slime-dir-to-vime
Jun 1, 2026
Merged

chore: rename slime/ → vime/ and slime_plugins/ → vime_plugins/#105
CalvinXKY merged 3 commits into
mainfrom
chore/rename-slime-dir-to-vime

Conversation

@aoshen02

@aoshen02 aoshen02 commented Jun 1, 2026

Copy link
Copy Markdown
Collaborator

What

Renames the two top-level package directories on main to match the project name:

  • slime/vime/
  • slime_plugins/vime_plugins/

…and updates every functional reference that points at them:

  • Python imports & module paths (from slime…from vime…) across train.py, train_async.py, tools/, tests/, examples/, scripts/
  • setup.pyname, author, find_packages(include=[…])
  • pyproject.tomlknown_first_party, src_paths
  • NCCL process-group name strings ("slime-pp_{rank}""vime-pp_{rank}", "slime""vime") — runtime identifiers, renamed consistently on both endpoints
  • docker/Dockerfile — clone URL/path, install dir, import smoke-test
  • docker/patch/*/megatron.patchfrom slime.utils.routing_replayfrom vime.utils.routing_replay
  • docker/justfile — image build/push targets (slimerl/slimevimerl/vime)

Why

The just-merged Vime branding work left the package folders themselves named slime*. An equivalent rename (PR #42) was landed on gcl/pr18-docs rather than main, so main's tree still had slime/. This ports the rename to main directly via git mv (clean — 92 pure renames), avoiding the stale-sglang resurrection that cherry-picking #42 would drag in.

Attribution preserved

Per Apache-2.0 fork conventions, upstream attribution is intentionally untouched: THUDM/slime URLs, "built on slime" / "derived from slime" prose, and historical-context code comments (e.g. "matches upstream slime's …") remain intact.

Out of scope

docs/** and .github/** are handled by the docs PR stack and are not modified here.

Verification

  • git grep for functional from slime / import slime / slime/ paths / slime_pluginszero remaining (outside docs/.github prose & preserved attribution comments)
  • 92 files detected as pure renames (R100); content diff is 403 insertions / 403 deletions

The package directories on main were still named slime/ and slime_plugins/
while the project is now Vime. Rename them and update every functional
reference (imports, paths, setup.py packages, pyproject src_paths/known_first_party,
NCCL process-group names, docker build/clone paths, megatron.patch imports, and
example/script/test references).

Attribution to upstream slime is preserved: THUDM/slime URLs, "built on slime" /
"derived from slime" prose, and historical-context code comments are left intact.
docs/** and .github/** are out of scope (handled by the docs PR stack).

Co-Authored-By: Claude Opus 4.8 <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 performs a comprehensive rename of the project and package from 'slime' to 'vime' across all codebase files, including Dockerfiles, shell scripts, Python imports, and tests. The review feedback correctly identifies an issue in several shell scripts where 'pkill -9 vime' is used to clean up background processes. Since these run as Python processes, 'pkill' without the '-f' flag will fail to match them, potentially leaking GPU memory; using 'pkill -9 -f vime' is recommended instead.

Comment on lines +37 to +42
pkill -9 vime
sleep 3
if [ "$USE_EXTERNAL_RAY" = "0" ]; then
pkill -9 ray
fi
pkill -9 slime
pkill -9 vime

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

Using pkill -9 vime will not match Python processes running the vime training or rollout scripts because their process name is typically python3 or python. To match the script name or path in the command line arguments, you should use the -f flag (i.e., pkill -9 -f vime). This ensures that background training/rollout processes are properly cleaned up and do not leak GPU memory.

Suggested change
pkill -9 vime
sleep 3
if [ "$USE_EXTERNAL_RAY" = "0" ]; then
pkill -9 ray
fi
pkill -9 slime
pkill -9 vime
pkill -9 -f vime
sleep 3
if [ "$USE_EXTERNAL_RAY" = "0" ]; then
pkill -9 ray
fi
pkill -9 -f vime

Comment on lines +54 to +59
pkill -9 vime
sleep 3
if [ "$USE_EXTERNAL_RAY" = "0" ]; then
pkill -9 ray
fi
pkill -9 slime
pkill -9 vime

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

Using pkill -9 vime will not match Python processes running the vime training or rollout scripts because their process name is typically python3 or python. To match the script name or path in the command line arguments, you should use the -f flag (i.e., pkill -9 -f vime). This ensures that background training/rollout processes are properly cleaned up and do not leak GPU memory.

Suggested change
pkill -9 vime
sleep 3
if [ "$USE_EXTERNAL_RAY" = "0" ]; then
pkill -9 ray
fi
pkill -9 slime
pkill -9 vime
pkill -9 -f vime
sleep 3
if [ "$USE_EXTERNAL_RAY" = "0" ]; then
pkill -9 ray
fi
pkill -9 -f vime

Comment on lines +45 to +50
pkill -9 vime
sleep 3
if [ "$USE_EXTERNAL_RAY" = "0" ]; then
pkill -9 ray
fi
pkill -9 slime
pkill -9 vime

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

Using pkill -9 vime will not match Python processes running the vime training or rollout scripts because their process name is typically python3 or python. To match the script name or path in the command line arguments, you should use the -f flag (i.e., pkill -9 -f vime). This ensures that background training/rollout processes are properly cleaned up and do not leak GPU memory.

Suggested change
pkill -9 vime
sleep 3
if [ "$USE_EXTERNAL_RAY" = "0" ]; then
pkill -9 ray
fi
pkill -9 slime
pkill -9 vime
pkill -9 -f vime
sleep 3
if [ "$USE_EXTERNAL_RAY" = "0" ]; then
pkill -9 ray
fi
pkill -9 -f vime

aoshen02 and others added 2 commits June 1, 2026 06:52
Correct the image name to match the registry the project actually publishes
to (per the active build branch), instead of the placeholder vimerl/vime.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The docker/patch/v0.5.* dirs were named after SGLang base-image tags
(SGLANG_IMAGE_TAG) from slime's multi-base-image build matrix. vime is
vLLM-only and builds against a single base image + single MEGATRON_COMMIT,
so only docker/patch/latest/megatron.patch is ever used (PATCH_VERSION=latest,
no override anywhere). Remove the five unreferenced dirs:
v0.5.0rc0-cu126, v0.5.5.post1, v0.5.6, v0.5.7, v0.5.9.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@CalvinXKY
CalvinXKY merged commit 1fb142b into main Jun 1, 2026
9 of 12 checks passed
aoshen02 added a commit that referenced this pull request Jun 3, 2026
…outer

Port of PR #108 onto vime/main (post-#127 topology + #105 slime/->vime/
rename). Carries the full feature set #108 accumulated, including the
DP+EP work formerly tracked by the now-closed #125.

Engine (vllm_engine.py):
- DP+EP sizing/launch: tp = gpus_per_engine // (pp * dp); EP via
  --enable-expert-parallel; single-node DP uses --data-parallel-backend mp.
- Conservative DP+EP sleep-mode defaults (no-async-scheduling,
  enforce-eager, distributed-timeout-seconds=1800; VLLM_ENGINE_READY_TIMEOUT_S
  extended for DP) to avoid cuMemcpyDtoDAsync segfaults, honouring user
  overrides.
- PD NIXL wiring: --kv-transfer-config NixlConnector (kv_both),
  VLLM_NIXL_SIDE_CHANNEL_HOST/PORT, disaggregation_bootstrap_port in
  _compute_server_args + [vllm-topo] server_args trace.

Router/rollout (rollout.py):
- _launch_static_pd_router: SkyRL-style static prefill/decode URLs for PD.
- _start_router is now non-PD only; dropped the has_pd_disaggregation param.
  (Fixes a latent NameError #108 left: the dropped param was still
  referenced in the body. PD config lives entirely in the static path.)
- _sanitize_vllm_router_args / _vllm_router_args_from_cli helpers
  (negative-int CLI sanitisation; disable_health_check when supported).
- start_rollout_servers rewired for use_static_pd_router + engine_router_ip.

Weight sync (update_weight_from_tensor.py +140, _from_distributed.py +11):
- packed / tensor_sizes params paired with update_weights_from_ipc_handles.

Tests: DP / PD / DP+EP-r3 integration tests; test_vllm_engine updates.

Excluded vs upstream #108:
- vime_plugins/megatron_bridge/glm4v_moe.py changes dropped (per request).
- Removed 3 #125-labelled engine tests + the wake_up weight-transfer-timeout
  assertion (user's staged change). NOTE: the underlying feature code is
  still live, so those tests would have passed — flagged for review.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
aoshen02 added a commit that referenced this pull request Jun 3, 2026
…outer

Port of PR #108 onto vime/main (post-#127 topology + #105 slime/->vime/
rename). Carries the full feature set #108 accumulated, including the
DP+EP work formerly tracked by the now-closed #125.

Engine (vllm_engine.py):
- DP+EP sizing/launch: tp = gpus_per_engine // (pp * dp); EP via
  --enable-expert-parallel; single-node DP uses --data-parallel-backend mp.
- Conservative DP+EP sleep-mode defaults (no-async-scheduling,
  enforce-eager, distributed-timeout-seconds=1800; VLLM_ENGINE_READY_TIMEOUT_S
  extended for DP) to avoid cuMemcpyDtoDAsync segfaults, honouring user
  overrides.
- PD NIXL wiring: --kv-transfer-config NixlConnector (kv_both),
  VLLM_NIXL_SIDE_CHANNEL_HOST/PORT, disaggregation_bootstrap_port in
  _compute_server_args + [vllm-topo] server_args trace.

Router/rollout (rollout.py):
- _launch_static_pd_router: SkyRL-style static prefill/decode URLs for PD.
- _start_router is now non-PD only; dropped the has_pd_disaggregation param.
  (Fixes a latent NameError #108 left: the dropped param was still
  referenced in the body. PD config lives entirely in the static path.)
- _sanitize_vllm_router_args / _vllm_router_args_from_cli helpers
  (negative-int CLI sanitisation; disable_health_check when supported).
- start_rollout_servers rewired for use_static_pd_router + engine_router_ip.

Weight sync (update_weight_from_tensor.py +140, _from_distributed.py +11):
- packed / tensor_sizes params paired with update_weights_from_ipc_handles.

Tests: DP / PD / DP+EP-r3 integration tests; test_vllm_engine updates.

Excluded vs upstream #108:
- vime_plugins/megatron_bridge/glm4v_moe.py changes dropped (per request).
- Removed 3 #125-labelled engine tests + the wake_up weight-transfer-timeout
  assertion (user's staged change). NOTE: the underlying feature code is
  still live, so those tests would have passed — flagged for review.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
aoshen02 added a commit that referenced this pull request Jun 3, 2026
…outer

Port of PR #108 onto vime/main (post-#127 topology + #105 slime/->vime/
rename). Carries the full feature set #108 accumulated, including the
DP+EP work formerly tracked by the now-closed #125.

Engine (vllm_engine.py):
- DP+EP sizing/launch: tp = gpus_per_engine // (pp * dp); EP via
  --enable-expert-parallel; single-node DP uses --data-parallel-backend mp.
- Conservative DP+EP sleep-mode defaults (no-async-scheduling,
  enforce-eager, distributed-timeout-seconds=1800; VLLM_ENGINE_READY_TIMEOUT_S
  extended for DP) to avoid cuMemcpyDtoDAsync segfaults, honouring user
  overrides.
- PD NIXL wiring: --kv-transfer-config NixlConnector (kv_both),
  VLLM_NIXL_SIDE_CHANNEL_HOST/PORT, disaggregation_bootstrap_port in
  _compute_server_args + [vllm-topo] server_args trace.

Router/rollout (rollout.py):
- _launch_static_pd_router: SkyRL-style static prefill/decode URLs for PD.
- _start_router is now non-PD only; dropped the has_pd_disaggregation param.
  (Fixes a latent NameError #108 left: the dropped param was still
  referenced in the body. PD config lives entirely in the static path.)
- _sanitize_vllm_router_args / _vllm_router_args_from_cli helpers
  (negative-int CLI sanitisation; disable_health_check when supported).
- start_rollout_servers rewired for use_static_pd_router + engine_router_ip.

Weight sync (update_weight_from_tensor.py +140, _from_distributed.py +11):
- packed / tensor_sizes params paired with update_weights_from_ipc_handles.

Tests: DP / PD / DP+EP-r3 integration tests; test_vllm_engine updates.

Excluded vs upstream #108:
- vime_plugins/megatron_bridge/glm4v_moe.py changes dropped (per request).
- Removed 3 #125-labelled engine tests + the wake_up weight-transfer-timeout
  assertion (user's staged change). NOTE: the underlying feature code is
  still live, so those tests would have passed — flagged for review.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
momo609 pushed a commit that referenced this pull request Jun 8, 2026
…#105)

* chore: rename slime/ → vime/ and slime_plugins/ → vime_plugins/ on main

The package directories on main were still named slime/ and slime_plugins/
while the project is now Vime. Rename them and update every functional
reference (imports, paths, setup.py packages, pyproject src_paths/known_first_party,
NCCL process-group names, docker build/clone paths, megatron.patch imports, and
example/script/test references).

Attribution to upstream slime is preserved: THUDM/slime URLs, "built on slime" /
"derived from slime" prose, and historical-context code comments are left intact.
docs/** and .github/** are out of scope (handled by the docs PR stack).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix: use real Docker Hub org aosheninferact/vime-vllm in justfile

Correct the image name to match the registry the project actually publishes
to (per the active build branch), instead of the placeholder vimerl/vime.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* chore: drop dead SGLang-era megatron.patch dirs, keep only latest/

The docker/patch/v0.5.* dirs were named after SGLang base-image tags
(SGLANG_IMAGE_TAG) from slime's multi-base-image build matrix. vime is
vLLM-only and builds against a single base image + single MEGATRON_COMMIT,
so only docker/patch/latest/megatron.patch is ever used (PATCH_VERSION=latest,
no override anywhere). Remove the five unreferenced dirs:
v0.5.0rc0-cu126, v0.5.5.post1, v0.5.6, v0.5.7, v0.5.9.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
@aoshen02
aoshen02 deleted the chore/rename-slime-dir-to-vime branch June 8, 2026 14:17
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