执行摘要
- 一句话:更新 Megatron-Bridge 并新增 Qwen3.6 测试
- 推荐动作:建议关注 Bridge 版本切换后的集成测试结果,并验证 Qwen3.6 模型的训练收敛性。该 PR 的测试文件可作为模板,供开发者快速编写新模型的 PD Mooncake 测试。
功能与动机
为适配新发布的 Qwen3.6-35B-A3B 模型,需要添加对应的 CI 测试用例;同时,Megatron-Bridge 的维护仓库已迁移,因此更新 Docker 安装源以保证后续兼容性。
实现拆解
- 更新 Docker 依赖(
docker/Dockerfile):将 torch_memory_saver 的 git commit 从 dc6876905830430b5054325fa4211ff302169c6b 改为 d64a639;将 Megatron-Bridge 的安装源从 https://github.com/fzyzcjy/Megatron-Bridge.git@dev_rl 改为 https://github.com/radixark/Megatron-Bridge.git@bridge 并使用 --no-deps 标志。
- 新增 Qwen3.6 测试(
tests/test_qwen3.6_35B_A3B_pd_mooncake.py):将原 test_qwen3_30B_A3B_pd_mooncake.py 文件重命名为新模型名,并调整 MODEL_NAME、MODEL_TYPE、TORCH_DIST_CKPT 等常量。将 tensor-model-parallel-size 从 4 改为 2;在 sglang 参数字段中新增 --sglang-disaggregation-transfer-backend mooncake、--sglang-speculative-algorithm EAGLE 及相关推测解码参数(num-steps、eagle-topk、num-draft-tokens、mamba-scheduler-strategy)。
- 增强 GLM4.7 测试(
tests/test_glm4.7_30B_A3B_pd_mooncake.py):在 sglang 参数字段中追加与 Qwen3.6 测试相同的 EAGLE 推测解码参数,保持 CI 测试一致性。
- 更新 CI 配置(
.github/workflows/pr-test.yml 及模板 .pr-test.yml.j2):将测试矩阵中原 test_qwen3_30B_A3B_pd_mooncake.py 替换为 test_qwen3.6_35B_A3B_pd_mooncake.py。
- 同步文档:更新中英文 CI 文档、版本号及 README 中的测试列表,反映 CI 测试变更。
- 微调 Rollout 引擎(
slime/ray/rollout.py):删除 start_engines 方法中一处多余的空行,无逻辑影响。
关键文件:
tests/test_qwen3.6_35B_A3B_pd_mooncake.py(模块 PD测试;类别 test;类型 rename-or-move;符号 MODEL_NAME, MODEL_TYPE, NUM_GPUS, TORCH_DIST_CKPT): 核心变更文件,重命名并修改为新模型 Qwen3.6 的 PD Mooncake 测试,引入 EAGLE 推测解码等新参数,是本次 PR 的主要目的。
docker/Dockerfile(模块 Docker构建;类别 infra;类型 infrastructure;符号 torch_memory_saver, Megatron-Bridge): 核心基础设施变更,更新了 Megatron-Bridge 和 torch_memory_saver 的安装来源与版本。
tests/test_glm4.7_30B_A3B_pd_mooncake.py(模块 PD测试;类别 test;类型 test-coverage;符号 sglang_args, execute): 为 GLM4.7 测试添加 EAGLE 推测解码参数,保持一致性和增强测试覆盖。
.github/workflows/pr-test.yml(模块 CI配置;类别 infra;类型 infrastructure): CI 配置更新,将 Qwen3-30B 测试替换为 Qwen3.6 测试,确保新模型在 CI 中运行。
slime/ray/rollout.py(模块 Rollout引擎;类别 source;类型 core-logic): 仅删除一处空行,无逻辑实质变更,但属于核心文件。
关键符号:prepare, execute
关键源码片段
tests/test_glm4.7_30B_A3B_pd_mooncake.py
为 GLM4.7 测试添加 EAGLE 推测解码参数,保持一致性和增强测试覆盖。
# 在 sglang_args 中新增 EAGLE 推测解码四连参数
sglang_args = (
"--rollout-num-gpus 8 "
"--rollout-num-gpus-per-engine 4 "
"--sglang-enable-dp-attention "
"--sglang-dp-size 4 "
"--sglang-enable-dp-lm-head "
"--sglang-ep-size 4 "
"--sglang-moe-dense-tp-size 1 "
"--sglang-mem-fraction-static 0.45 "
"--sglang-cuda-graph-max-bs 8 "
"--sglang-max-running-requests 16 "
"--sglang-disaggregation-transfer-backend mooncake "
# 以下四行是本次新增的 EAGLE 推测解码参数
"--sglang-speculative-algorithm EAGLE "
"--sglang-speculative-num-steps 3 "
"--sglang-speculative-eagle-topk 1 "
"--sglang-speculative-num-draft-tokens 4 "
"--sglang-watchdog-timeout 1200 "
"--sglang-router-request-timeout-secs 1200 "
"--sglang-enable-metrics "
f"--sglang-config {sglang_config} "
)
评论区精华
本 PR 无 review 讨论,由作者直接合入。
风险与影响
关联脉络
- PR #1867 [docker] upgrade megatron to 1dcf0dafa: 同为 Docker 依赖升级(Megatron),与本 PR 的 Bridge 更新属于同一演进线。
- PR #1874 [docker] upgrade sglang to v0.5.10.post1: 同为 Docker 镜像更新与测试文件调整,背景一致。
参与讨论