Prhub

#26760 Drop dead ScheduleBatch return_routed_experts/return_indexer_topk fields

原始 PR 作者 hnyls2002 合并时间 2026-05-30 14:16 文件变更 2 提交数 2 评论 3 代码增减 +0 / -6

执行摘要

删除 ScheduleBatch 死亡字段

PR body 指出:这两个 ScheduleBatch dataclass 字段在 init_new 中通过 any(req...) 计算,但从未在 batch 级别被读取。实际的捕获路径由全局 server 参数 + 每个请求的 req 标志控制,因此 batch 粒度的聚合字段自引入以来就是无效的。

建议快速合并。这是典型的死代码清理变更,逻辑清晰且经过 CI 验证。

讨论亮点

无 review 评论。PR 作者使用 /rerun-test 命令触发了 CI,并确认两个受影响测试均在对应 GPU 环境中通过,表明删除操作不会引起回归。

实现拆解

  1. 删除字段定义:在 python/sglang/srt/managers/schedule_batch.pyScheduleBatch 类中移除 return_routed_experts: bool = Falsereturn_indexer_topk: bool = False 两行。
  2. 删除初始化逻辑:在 init_new 方法中移除对这两个字段的赋值语句(return_routed_experts=any(req.return_routed_experts for req in reqs) 等)。
  3. 移动测试文件:将 test/registered/8-gpu-models/test_return_indexer_topk.py 移动到 test/registered/rl/test_return_indexer_topk.py,与其他 RL 相关测试(如 test_return_routed_experts.py)放在一起。
文件 模块 状态 重要度
python/sglang/srt/managers/schedule_batch.py 调度器 modified 5.19
test/registered/rl/test_return_indexer_topk.py 测试 renamed 3.11

关键源码片段

python/sglang/srt/managers/schedule_batch.py core-logic

核心变更文件:删除了两个无用的字段定义和初始化逻辑,精简 ScheduleBatch 数据类。

# 变更前(已删除的行)
# return_routed_experts: bool = False
# return_indexer_topk: bool = False# 以及在 init_new 中:
# return_routed_experts=any(req.return_routed_experts for req in reqs),
# return_indexer_topk=any(req.return_indexer_topk for req in reqs),# 变更后:这些行被完全移除,不会影响功能,因为实际控制逻辑在 per-request 级别。

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。删除的字段未被任何代码引用,仅用于测试中启动服务器时通过全局参数控制捕获行为。移动测试文件可能会影响 CI 路径依赖,但作者已通过 rerun 验证。

影响范围仅限于代码整洁性:减少了 ScheduleBatch 的数据成员初始化和计算开销(尽管极小)。对用户无感知,对开发者降低维护负担。

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论