Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
15f2f0e
[release] bump to v0.2.2
zhuzilin Jan 6, 2026
68920ed
bugfix
zhuzilin Jan 6, 2026
1bb9068
Merge branch 'main' into feature/release
zhuzilin Jan 6, 2026
d44a94e
Merge branch 'main' into feature/release
zhuzilin Jan 6, 2026
872ce55
fix ci
zhuzilin Jan 6, 2026
c225848
bugfix
zhuzilin Jan 6, 2026
33ee227
delete qwen3 vl true on policy
lilei199908 Jan 7, 2026
c756058
delete qwen3 vl true on policy
lilei199908 Jan 7, 2026
6fcadb9
delete qwen3 vl true on policy
lilei199908 Jan 7, 2026
3c43203
delete qwen3 vl true on policy
lilei199908 Jan 7, 2026
061b6bc
delete qwen3 vl true on policy
lilei199908 Jan 7, 2026
4153510
Merge branch 'main' into feature/release
zhuzilin Jan 9, 2026
a3a6714
Merge branch 'main' into feature/release
zhuzilin Jan 11, 2026
a2fc5d7
Merge branch 'main' into feature/release
zhuzilin Jan 12, 2026
e9c3bc9
Merge branch 'main' into feature/release
zhuzilin Jan 12, 2026
366259e
Merge branch 'main' into feature/release
zhuzilin Jan 12, 2026
90015d5
Merge branch 'main' into feature/release
zhuzilin Jan 12, 2026
831831a
Merge branch 'main' into feature/release
zhuzilin Jan 12, 2026
ada927b
Merge branch 'main' into feature/release
zhuzilin Jan 13, 2026
54ddfa4
Merge branch 'main' into feature/release
zhuzilin Jan 13, 2026
9b753d7
fix fsdp gpu nums
lilei199908 Jan 13, 2026
7cbb7d4
Merge branch 'main' into feature/release
zhuzilin Jan 13, 2026
712ff55
Merge branch 'main' into feature/release
zhuzilin Jan 15, 2026
4eceba6
Merge branch 'main' into feature/release
zhuzilin Jan 15, 2026
20a8db6
Merge branch 'main' into feature/release
zhuzilin Jan 16, 2026
3311c3c
Merge branch 'main' into feature/release
zhuzilin Jan 16, 2026
ce2b3fb
Merge branch 'main' into feature/release
zhuzilin Jan 16, 2026
ecb4c80
Merge branch 'main' into feature/release
zhuzilin Jan 16, 2026
65dc154
Merge branch 'main' into feature/release
zhuzilin Jan 16, 2026
10127ef
Merge branch 'main' into feature/release
zhuzilin Jan 17, 2026
8a9e394
Merge branch 'main' into feature/release
zhuzilin Jan 17, 2026
9e91d7c
Merge branch 'main' into feature/release
zhuzilin Jan 17, 2026
100f34b
Merge branch 'main' into feature/release
zhuzilin Jan 17, 2026
f1bbe0b
Merge branch 'main' into feature/release
zhuzilin Jan 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/pr-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
strategy:
fail-fast: false
matrix:
info: [{"num_gpus": 4, "test_file": "test_qwen2.5_0.5B_gsm8k_async_short.py"}, {"num_gpus": 4, "test_file": "test_qwen2.5_0.5B_gsm8k_short.py"}, {"num_gpus": 2, "test_file": "test_qwen3_0.6B_fsdp_colocated_2xGPU.py"}]
info: [{"num_gpus": 4, "test_file": "test_qwen2.5_0.5B_gsm8k_async_short.py"}, {"num_gpus": 4, "test_file": "test_qwen2.5_0.5B_gsm8k_short.py"}]
defaults:
run:
working-directory: ${{ github.workspace }}
Expand Down Expand Up @@ -95,7 +95,7 @@ jobs:
strategy:
fail-fast: false
matrix:
info: [{"num_gpus": 2, "test_file": "test_qwen3_4B_fsdp_true_on_policy.py"}, {"num_gpus": 8, "test_file": "test_qwen3_vl_4B_fsdp.py"}, {"num_gpus": 2, "test_file": "test_qwen3_0.6B_fsdp_distributed.py"}, {"num_gpus": 4, "test_file": "test_qwen3_0.6B_megatron_fsdp_align.py"}]
info: [{"num_gpus": 4, "test_file": "test_qwen3_4B_fsdp_true_on_policy.py --colocated"}, {"num_gpus": 8, "test_file": "test_qwen3_vl_4B_fsdp.py"}, {"num_gpus": 2, "test_file": "test_qwen3_0.6B_fsdp_distributed.py"}, {"num_gpus": 4, "test_file": "test_qwen3_0.6B_megatron_fsdp_align.py"}]
defaults:
run:
working-directory: ${{ github.workspace }}
Expand Down Expand Up @@ -283,7 +283,7 @@ jobs:
strategy:
fail-fast: false
matrix:
info: [{"num_gpus": 2, "test_file": "test_qwen2.5_0.5B_gsm8k.py"}, {"num_gpus": 2, "test_file": "test_qwen2.5_0.5B_gsm8k_async.py"}]
info: [{"num_gpus": 2, "test_file": "test_qwen2.5_0.5B_gsm8k.py"}, {"num_gpus": 2, "test_file": "test_qwen2.5_0.5B_gsm8k_async.py"}, {"num_gpus": 2, "test_file": "test_qwen3_0.6B_fsdp_colocated_2xGPU.py"}, {"num_gpus": 2, "test_file": "test_qwen3_0.6B_fsdp_distributed.py"}]
defaults:
run:
working-directory: ${{ github.workspace }}
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/pr-test.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@
'tests': [
{'test_file': 'test_qwen2.5_0.5B_gsm8k_async_short.py', 'num_gpus': 4},
{'test_file': 'test_qwen2.5_0.5B_gsm8k_short.py', 'num_gpus': 4},
{'test_file': 'test_qwen3_0.6B_fsdp_colocated_2xGPU.py', 'num_gpus': 2},
],
},
'e2e-test-fsdp': {
'label': 'run-ci-fsdp',
'tests': [
{'test_file': 'test_qwen3_4B_fsdp_true_on_policy.py', 'num_gpus': 2},
{'test_file': 'test_qwen3_4B_fsdp_true_on_policy.py --colocated', 'num_gpus': 4},
{'test_file': 'test_qwen3_vl_4B_fsdp.py', 'num_gpus': 8},
{'test_file': 'test_qwen3_0.6B_fsdp_distributed.py', 'num_gpus': 2},
{'test_file': 'test_qwen3_0.6B_megatron_fsdp_align.py', 'num_gpus': 4},
Expand Down Expand Up @@ -48,6 +47,8 @@
'tests': [
{'test_file': 'test_qwen2.5_0.5B_gsm8k.py', 'num_gpus': 2},
{'test_file': 'test_qwen2.5_0.5B_gsm8k_async.py', 'num_gpus': 2},
{'test_file': 'test_qwen3_0.6B_fsdp_colocated_2xGPU.py', 'num_gpus': 2},
{'test_file': 'test_qwen3_0.6B_fsdp_distributed.py', 'num_gpus': 2},
],
},
'e2e-test-image': {
Expand Down
1 change: 1 addition & 0 deletions build_conda.sh
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ fi

# https://github.com/pytorch/pytorch/issues/168167
pip install nvidia-cudnn-cu12==9.16.0.29
pip install "numpy<2"

# apply patch
cd $BASE_DIR/sglang
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def get_tag(self):
setup(
author="slime Team",
name="slime",
version="0.2.1",
version="0.2.2",
packages=find_packages(include=["slime*", "slime_plugins*"]),
include_package_data=True,
install_requires=_fetch_requirements("requirements.txt"),
Expand Down
20 changes: 15 additions & 5 deletions tests/test_qwen3_4B_fsdp_true_on_policy.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
import os
from argparse import ArgumentParser
import slime.utils.external_utils.command_utils as U

ENABLE_EVAL = bool(int(os.environ.get("SLIME_TEST_ENABLE_EVAL", "1")))
NUM_GPUS = 2
NUM_GPUS = 4

MODEL_NAME = "Qwen3-4B"

parser = ArgumentParser()
parser.add_argument("--colocated", action="store_true", help="Whether to run with colocate.")


def prepare():
U.exec_command("mkdir -p /root/models /root/datasets")
Expand All @@ -14,7 +18,7 @@ def prepare():
U.hf_download_dataset("zhuzilin/aime-2024")


def execute():
def execute(args):
ckpt_args = f"--hf-checkpoint /root/models/{MODEL_NAME} "

rollout_args = (
Expand All @@ -29,7 +33,7 @@ def execute():
"--n-samples-per-prompt 8 "
"--rollout-max-response-len 4096 "
"--rollout-temperature 1 "
"--global-batch-size 32 "
"--global-batch-size 64 "
)

eval_args = (
Expand Down Expand Up @@ -75,7 +79,12 @@ def execute():

ci_args = "--ci-test "

misc_args = "--actor-num-nodes 1 " f"--actor-num-gpus-per-node {NUM_GPUS} " "--colocate "
if args.colocated:
misc_args = f"--actor-num-nodes 1 --actor-num-gpus-per-node {NUM_GPUS} --colocate "
else:
misc_args = (
f"--actor-num-nodes 1 --actor-num-gpus-per-node {NUM_GPUS // 2} --rollout-num-gpus {NUM_GPUS // 2} "
)

train_args = (
f"{ckpt_args} "
Expand Down Expand Up @@ -106,7 +115,8 @@ def execute():


if __name__ == "__main__":
args = parser.parse_args()
prepare()
for proxy_var in ("http_proxy", "https_proxy", "HTTP_PROXY", "HTTPS_PROXY"):
os.environ.pop(proxy_var, None)
execute()
execute(args)
14 changes: 10 additions & 4 deletions tests/test_qwen3_vl_4B_fsdp.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,13 @@ def execute():
"--sglang-mem-fraction-static 0.6 "
"--sglang-decode-log-interval 1000 "
"--sglang-enable-metrics "
# "--sglang-enable-deterministic-inference "
# "--sglang-rl-on-policy-target fsdp "
"--sglang-attention-backend fa3 "
"--attn-implementation flash_attention_3 "
"--sglang-cuda-graph-bs 1 2 4 8 16 24 32 40 48 56 64 "
# "--deterministic-mode "
# "--true-on-policy-mode "
)

ci_args = "--ci-test "
Expand All @@ -91,6 +96,9 @@ def execute():
)

extra_env_vars = {
# "NCCL_ALGO": "allreduce:tree",
# "NVTE_ALLOW_NONDETERMINISTIC_ALGO": "0",
# "CUBLAS_WORKSPACE_CONFIG": ":4096:8",
"CUDA_DEVICE_MAX_CONNECTIONS": "1",
}

Expand All @@ -104,8 +112,6 @@ def execute():

if __name__ == "__main__":
prepare()
os.environ.pop("http_proxy", None)
os.environ.pop("https_proxy", None)
os.environ.pop("HTTP_PROXY", None)
os.environ.pop("HTTPS_PROXY", None)
for proxy_var in ("http_proxy", "https_proxy", "HTTP_PROXY", "HTTPS_PROXY"):
os.environ.pop(proxy_var, None)
execute()
Loading