Prhub

THUDM/slime · 标签视图

标签列表

聚合结果

refactor 相关 PR

2026-08-25

#2323 [cleanup] Refactor rollout.py

原始 PR · 作者 zhuzilin · 合并时间 2026-08-25 11:06

重构 重要性 9.18 洞察度 6.00

重构 rollout.py,拆分 SGLang 部署逻辑至 sglang_utils 子模块

值得精读。本 PR 是典型的「大文件拆分」重构示范,展示了如何将散落的部署逻辑按职责边界重新聚合为 engine-group / deployment / disaggregation 三层。重点关注 engine_group.py 中 GPU 槽位校验逻辑(`required_gpu_slots` 判断)和 deployment.py 中 router 的启动与复用策略,这些是后续排查部署问题的基础。

2026-08-24

#2322 [cleanup] Remove rollout_validation.py

原始 PR · 作者 zhuzilin · 合并时间 2026-08-24 21:38

重构 重要性 6.98 洞察度 3.00

删除 rollout_validation 模块,GPU 放置校验内联至 rollout.py

值得快速浏览,重点确认 slime/ray/rollout.py 内联后的行为等价性与测试移除的取舍。若团队重视该校验的回归保护,可考虑在后续 PR 中补充针对 ServerGroup.start_engines 的集成测试或参数化单元测试。

重构 重要性 7.35 洞察度 5.00

新增 create_weight_updater 工厂,精简 actor 初始化

值得快速浏览,重点学习两点:一是如何用函数级延迟导入 + monkeypatch sys.modules 注入假模块来零成本测试内部 import 分支;二是把散落在核心初始化函数里的分派逻辑收敛为工厂函数时,如何用断言保住配置约束。若后续需要扩展权重同步通道,此工厂是天然的挂载点。

重构 重要性 8.10 洞察度 4.00

清理死代码与未访问分支,精简 32 个文件

该 PR 可作为仓库清理死代码的范式,适合需要了解如何系统识别未访问分支的工程师阅读。不建议深入学习具体业务逻辑,但可以重点关注其删除策略:先搜索调用方,再合并分支,最后同步测试。同时提醒在删除公共 API 前确认是否存在插件或外部依赖。

#2318 [ci] move fanout_test_helpers to tests/

原始 PR · 作者 zhuzilin · 合并时间 2026-08-24 16:03

重构 重要性 4.62 洞察度 4.00

将 fanout 测试辅助模块迁至 tests/ 并改用 PYTHONPATH 注入

值得花两三分钟快速阅读,作为测试基础设施组织的样例,不建议精读。核心关注点是两点:一是 importlib.import_module 无法解析文件名带点的模块路径,导致测试辅助代码被迫寻找「无点模块名 + 可导入」的位置;二是通过 extra_env_vars 注入 PYTHONPATH 让 Ray driver 与 worker 都能看到 tests/ 目录的做法,这是 slime 仓库 E2E 测试中一个可复用的模式。该 PR 展示了作者在包边界上的审慎:避免测试代码渗入运行库。

#2316 Remove megatron_patch for memory optimization

原始 PR · 作者 zhuzilin · 合并时间 2026-08-24 15:07

重构 重要性 7.73 洞察度 4.00

删除 megatron_patch 梯度合并补丁,简化 Megatron 适配层。

值得快速精读,重点在于理解 Slime 如何通过移除运行时 monkeypatch 来收敛对上游框架的侵入。合并前建议确认目标 Megatron 版本已具备等效的分块梯度同步机制,并在大模型 TP 场景做一次 OOM 回归验证;若无法确认,可先保留补丁并仅注释导入以避免直接行为回退。

2026-08-21

#2298 [NFC] Add observability subfolder

原始 PR · 作者 zhuzilin · 合并时间 2026-08-21 17:14

重构 重要性 9.00 洞察度 4.00

新增 observability 子模块并迁移日志指标工具

值得作为大型 Python 项目做 NFC 结构整理的参考案例浏览。重点关注三点:一是新建子包时如何通过 rename 保留 git 历史;二是跨模块搬移后如何通过 import 集中更新与测试迁移保证行为不变;三是 rollouts_metrics 与 train_metric_utils 的职责划分(rollout 侧指标 vs 训练侧归约)可复用到其他 RL 训练框架。对功能理解而言本 PR 无新逻辑,不必深入精读每个函数。

缺陷修复 重要性 6.25 洞察度 5.00

eval-only 跳过优化器与调度器构建

该 PR 值得精读,尤其是“为什么不用 train_iters=1”的设计权衡。建议在合入后补一条 CPU 侧测试:断言 num_rollout == 0 时 setup_model_and_optimizer 返回 (model, None, None)、create_training_models 不分配 critic,并验证正常训练路径仍构造 optimizer 与 scheduler。