Prhub

THUDM/slime

slime is an LLM post-training framework for RL Scaling.

监控状态:已开启 最近同步:2026-09-01 15:21 同步状态:空闲 下次计划:2026-09-01 16:21

PR 列表

更多筛选
2026-08-12

#2266 Refactor --save-debug-train-data

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

重构 重要性 9.18 洞察度 6.00

重构 --save-debug-train-data 为单文件转储并支持 CP 恢复

值得精读。重点看 `restore_context_parallel_fields_to_cpu` 的逐 sample gather 与显存控制、`policy_loss_function` 中的捕获钩子设计,以及 `_build_dump_payload` 的排序与布局。对需要扩展训练数据转储或理解 Megatron 后端 CP/PP 数据流转的工程师有直接参考价值。

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

修复 eval.defaults 丢键与 per-dataset stop 失效

值得精读。这是一个高信号的配置解析 bugfix:`slime/utils/eval_config.py` 中反射校验 + setdefault 兜底的做法,以及 `slime/rollout/sglang_rollout.py` 中采样参数的三级回退,都是可复用的防御式配置设计。建议重点阅读 `build_eval_dataset_configs` 的完整实现、`DATASET_RUNTIME_SPECS` 的新增条目,以及 `tests/test_eval_config.py` 对契约的表述;合并后顺手核对仓库内现有 `eval.defaults` 配置是否存在拼写错误键。该 PR 也是很好的教学案例:说明 spec 表模式在字段漏配时如何静默失败,以及如何用反射消除硬编码清单。

缺陷修复 重要性 7.56 洞察度 6.00

修复全异步 rollout 丢弃已完成组并解除事件循环阻塞

值得精读。该 PR 是典型的“两个缺陷相互耦合、需联动修复”的案例,其背压转移设计(将有界队列改为无界、在生产者侧用 qsize 门控)是一个可复用的异步队列模式。建议关注 `get_completed_groups` 的 limit 语义与 `_loop` 门控条件,理解为何“无界队列 + 显式门控”优于“有界队列 + 阻塞 put”在事件循环线程中的表现。

缺陷修复 重要性 8.01 洞察度 6.00

修复 tau-bench 推理模板令牌增量与掩码错误

值得精读。该 PR 展示了处理『聊天模板重写历史』和『多轮生成前缀掩码』的完整思路,尤其是 fail-closed 设计、独立渲染单条消息并校验后缀、以及用掩码而不是删除来保留生成前缀的做法。对使用 Qwen3 推理模板的 tau-bench 类多轮训练场景具有直接参考价值。

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

修复校验覆写显式 --start-rollout-id 参数的问题

值得快速审阅,属于典型的参数覆盖 bugfix,修改直观且测试覆盖良好。可关注参数校验的既定设计,以及后续是否有类似被无条件覆盖的 fallback 参数。

缺陷修复 重要性 7.47 洞察度 6.00

修复 CP 下 advantage 归一化错用进程组的问题

值得精读。核心改动只有一行进程组参数与一处守卫删除,但 PR body 提供了完整的根因分析、数值验证和死锁论证,展示了分布式训练中集体操作进程组语义的调试方法论。测试设计(gloo 多进程 + 枚举 DP/CP 分解 + 空 mask 场景 + 有界 join)是分布式回归测试的范例,可复用到其他跨 rank 统计逻辑。建议重点关注 `loss.py` 中 `distributed_masked_whiten` 调用段及其注释,以及测试对空 mask 场景的处理。

缺陷修复 重要性 7.56 洞察度 6.00

修复 --log-correct-samples 在 DP>1 下的 IndexError 与错配

值得精读。这是一个典型的“全局与本地数据视图分离”的 bugfix,修复思路清晰:不破坏 pass@k 的全局分组需求,而是新增位置对齐的本地视图。重点关注 slime/utils/data.py 中 local_raw_reward 的派生方式、log_rollout_data 中的消费变更,以及测试对 dp1-permuted 的覆盖——这揭示了 first-fit packing 下 DP=1 也会错配的隐蔽点。附带的发现(--log-correct-samples 指标从未输出)值得跟进,但不在本 PR 内解决。

参与讨论