删除 rollout_validation 模块,GPU 放置校验内联至 rollout.py
值得快速浏览,重点确认 slime/ray/rollout.py 内联后的行为等价性与测试移除的取舍。若团队重视该校验的回归保护,可考虑在后续 PR 中补充针对 ServerGroup.start_engines 的集成测试或参数化单元测试。
slime is an LLM post-training framework for RL Scaling.
删除 rollout_validation 模块,GPU 放置校验内联至 rollout.py
值得快速浏览,重点确认 slime/ray/rollout.py 内联后的行为等价性与测试移除的取舍。若团队重视该校验的回归保护,可考虑在后续 PR 中补充针对 ServerGroup.start_engines 的集成测试或参数化单元测试。
新增 create_weight_updater 工厂,精简 actor 初始化
值得快速浏览,重点学习两点:一是如何用函数级延迟导入 + monkeypatch sys.modules 注入假模块来零成本测试内部 import 分支;二是把散落在核心初始化函数里的分派逻辑收敛为工厂函数时,如何用断言保住配置约束。若后续需要扩展权重同步通道,此工厂是天然的挂载点。
清理死代码与未访问分支,精简 32 个文件
该 PR 可作为仓库清理死代码的范式,适合需要了解如何系统识别未访问分支的工程师阅读。不建议深入学习具体业务逻辑,但可以重点关注其删除策略:先搜索调用方,再合并分支,最后同步测试。同时提醒在删除公共 API 前确认是否存在插件或外部依赖。
将 fanout 测试辅助模块迁至 tests/ 并改用 PYTHONPATH 注入
值得花两三分钟快速阅读,作为测试基础设施组织的样例,不建议精读。核心关注点是两点:一是 importlib.import_module 无法解析文件名带点的模块路径,导致测试辅助代码被迫寻找「无点模块名 + 可导入」的位置;二是通过 extra_env_vars 注入 PYTHONPATH 让 Ray driver 与 worker 都能看到 tests/ 目录的做法,这是 slime 仓库 E2E 测试中一个可复用的模式。该 PR 展示了作者在包边界上的审慎:避免测试代码渗入运行库。
删除 megatron_patch 梯度合并补丁,简化 Megatron 适配层。
值得快速精读,重点在于理解 Slime 如何通过移除运行时 monkeypatch 来收敛对上游框架的侵入。合并前建议确认目标 Megatron 版本已具备等效的分块梯度同步机制,并在大模型 TP 场景做一次 OOM 回归验证;若无法确认,可先保留补丁并仅注释导入以避免直接行为回退。
原始 PR · 作者 liuhao-labs · 合并时间 2026-08-24 11:20
删除过时 delta+NCCL 建议,明确 delta 仅支持 disk
PR 改动很小,不需要精读。值得留意的设计决策是:当代码功能被移除(#2089)而文档未同步时,决策表会继续推荐一条不存在的路径;本次通过“明确说明当前契约 + 声明不修复历史问题”的方式完成对齐。若关注 external rollout engine 的权重同步演进(#1806 引入 → #2089 移除 → #2209 报告 NaN → #2312 清理文档),可以顺着这条链路做复盘。
新增 observability 子模块并迁移日志指标工具
值得作为大型 Python 项目做 NFC 结构整理的参考案例浏览。重点关注三点:一是新建子包时如何通过 rename 保留 git 历史;二是跨模块搬移后如何通过 import 集中更新与测试迁移保证行为不变;三是 rollouts_metrics 与 train_metric_utils 的职责划分(rollout 侧指标 vs 训练侧归约)可复用到其他 RL 训练框架。对功能理解而言本 PR 无新逻辑,不必深入精读每个函数。
参与讨论