执行摘要
移除 e2e-test-short,扩展 Megatron 测试矩阵
根据 commit message 和变更内容,此 PR 旨在清理 CI 配置,简化维护:将分散的短测试合并到核心 Megatron 测试矩阵,减少重复的 job 定义,并移除不再推荐的测试路径。
值得关注:
- 确认被删除的测试是否被其他测试充分覆盖,必要时添加缺失用例。
- 该 PR 展示了将临时/短测试合并到统一矩阵的模式,可评估是否对新 PR 的测试组织有参考价值。
本次 PR 无 review 评论和讨论。
根据 commit message 和变更内容,此 PR 旨在清理 CI 配置,简化维护:将分散的短测试合并到核心 Megatron 测试矩阵,减少重复的 job 定义,并移除不再推荐的测试路径。
值得关注:
本次 PR 无 review 评论和讨论。
.github/workflows/pr-test.yml.j2:移除 e2e-test-short job 定义,在 megatron_tests 列表新增大量测试用例(如 test_full_disk_weight_update.py、test_quick_start_glm4_9B.py 等),并调整 e2e-test-image 使其复用 megatron_tests 矩阵。.github/workflows/pr-test.yml:移除了整个 e2e-test-short job(85 行删除),只保留必要的结构定义(3 行新增)。tests/test_delta_weight_update.py(143 行)和 tests/test_qwen2.5_0.5B_ppo_critic_only_short.py(129 行)。docs/en/developer_guide/ci.md 和 docs/zh/developer_guide/ci.md):移除关于 run-ci-short 的描述,修改 run-ci-image 的描述以反映其复用 megatron 矩阵的变化。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
tests/test_delta_weight_update.py |
测试 | removed | 7.12 |
tests/test_qwen2.5_0.5B_ppo_critic_only_short.py |
测试 | removed | 6.79 |
.github/workflows/pr-test.yml |
CI 工作流 | modified | 5.5 |
.github/workflows/pr-test.yml.j2 |
CI 工作流 | modified | 5.59 |
docs/en/developer_guide/ci.md |
开发者文档 | modified | 2.02 |
docs/zh/developer_guide/ci.md |
开发者文档 | modified | 2.02 |
tests/test_delta_weight_update.py
deletion
被删除的 E2E smoke 测试文件,直接导致对应功能失去独立 CI 覆盖
# 该文件已被删除,之前用于测试 disk-backed delta weight updates。
# 它通过 prepare() 准备数据,execute() 运行训练并验证 delta 文件生成。
# 下方是被删除的完整源码片段:
"""E2E smoke test for disk-backed delta weight updates.
Runs a tiny Qwen3.5-0.8B job so the first weight update seeds the delta
snapshot and the post-train update publishes sparse delta files through
``update_weights_from_disk(load_format="delta", files=...)``.
"""
import os
import tempfile
from pathlib import Path
import slime.utils.external_utils.command_utils as U
MODEL_NAME = "Qwen3.5-0.8B"
MODEL_TYPE = "qwen3.5-0.8B"
NUM_GPUS = 4
TORCH_DIST_CKPT = f"/dev/shm/{MODEL_NAME}_torch_dist"
def prepare():
U.exec_command("mkdir -p /root/models /root/datasets")
U.exec_command(f"hf download Qwen/{MODEL_NAME} --local-dir /root/models/{MODEL_NAME}")
U.hf_download_dataset("zhuzilin/gsm8k")
U.convert_checkpoint(
model_name=MODEL_NAME,
megatron_model_type=MODEL_TYPE,
num_gpus_per_node=NUM_GPUS,
dir_dst="/dev/shm",
)
def execute():
with tempfile.TemporaryDirectory(prefix="slime_delta_weight_update_") as delta_dir:
ckpt_args = f"--hf-checkpoint /root/models/{MODEL_NAME}/ " f"--ref-load {TORCH_DIST_CKPT} "
# ...(中间 args 省略,详见上下文)
pass
if __name__ == "__main__":
prepare()
for proxy_var in ("http_proxy", "https_proxy", "HTTP_PROXY", "HTTPS_PROXY"):
os.environ.pop(proxy_var, None)
execute()
.github/workflows/pr-test.yml.j2
infrastructure
Jinja2 模板核心变更,移除 e2e-test-short 并扩展 megatron_tests,控制整个 CI 生成
{# 以下是模板文件的部分片段,展示 megatron_tests 定义和 jobs 调整 #}
<% set megatron_tests = [
{'test_file': 'test_full_disk_weight_update.py', 'num_gpus': 4},
{'test_file': 'test_quick_start_glm4_9B.py', 'num_gpus': 8, 'enable_eval': '0'},
{'test_file': 'test_glm4.7_30B_A3B_pd_mooncake.py', 'num_gpus': 8},
# ... 更多测试已添加,覆盖多种模型和场景
] %>
<% set jobs = {
# 'e2e-test-short' 已被移除
'e2e-test-sglang-config': {
'label': 'run-ci-sglang-config',
'tests': [ ... ]
},
'e2e-test-megatron': {
'label': 'run-ci-megatron',
'tests': megatron_tests # 现在 megatron 矩阵包含更多测试
},
# ... 其他 jobs
} %>当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
主要风险在于测试覆盖的丢失:直接删除的两个测试文件(delta weight update 和 PPO critic-only)并未显式包含在新 megatron_tests 列表中,可能导致对应功能缺乏 CI 验证。虽然部分场景可能被其他 megatron 测试间接覆盖,但需要确认。另外,CI 工作流依赖生成的 YAML,模板变更需确保生成正确。
影响主要限于开发者和 CI 维护者:e2e-test-short job 不再可用,需要使用 run-ci-megatron 或 run-ci-changed 触发相关测试。对最终用户无影响。团队需要更新 PR 标签使用习惯(不再使用 run-ci-short)。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论