chore: rename slime/ → vime/ and slime_plugins/ → vime_plugins/ - #105
Conversation
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>
There was a problem hiding this comment.
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.
| pkill -9 vime | ||
| sleep 3 | ||
| if [ "$USE_EXTERNAL_RAY" = "0" ]; then | ||
| pkill -9 ray | ||
| fi | ||
| pkill -9 slime | ||
| pkill -9 vime |
There was a problem hiding this comment.
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.
| 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 |
| pkill -9 vime | ||
| sleep 3 | ||
| if [ "$USE_EXTERNAL_RAY" = "0" ]; then | ||
| pkill -9 ray | ||
| fi | ||
| pkill -9 slime | ||
| pkill -9 vime |
There was a problem hiding this comment.
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.
| 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 |
| pkill -9 vime | ||
| sleep 3 | ||
| if [ "$USE_EXTERNAL_RAY" = "0" ]; then | ||
| pkill -9 ray | ||
| fi | ||
| pkill -9 slime | ||
| pkill -9 vime |
There was a problem hiding this comment.
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.
| 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 |
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>
…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>
…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>
…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>
…#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>
What
Renames the two top-level package directories on
mainto match the project name:slime/→vime/slime_plugins/→vime_plugins/…and updates every functional reference that points at them:
from slime…→from vime…) acrosstrain.py,train_async.py,tools/,tests/,examples/,scripts/setup.py—name,author,find_packages(include=[…])pyproject.toml—known_first_party,src_paths"slime-pp_{rank}"→"vime-pp_{rank}","slime"→"vime") — runtime identifiers, renamed consistently on both endpointsdocker/Dockerfile— clone URL/path, install dir, import smoke-testdocker/patch/*/megatron.patch—from slime.utils.routing_replay→from vime.utils.routing_replaydocker/justfile— image build/push targets (slimerl/slime→vimerl/vime)Why
The just-merged Vime branding work left the package folders themselves named
slime*. An equivalent rename (PR #42) was landed ongcl/pr18-docsrather thanmain, somain's tree still hadslime/. This ports the rename tomaindirectly viagit 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/slimeURLs, "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 grepfor functionalfrom slime/import slime/slime/paths /slime_plugins→ zero remaining (outside docs/.github prose & preserved attribution comments)