Prhub

Slime 仓库周报:2026 第 33 周(08-10 至 08-16)

本周 Slime 以训练正确性修复为主,聚焦 Megatron 后端、数据管线与 rollout 的缺陷收敛,并新增 GLM-5 训练 / 推理对齐路径;29 个 PR 中 bugfix 占比超七成,测试覆盖同步增强。

仓库:THUDM/slime 周期:2026-08-10 至 2026-08-16 来源 PR:29 · 重点 PR:24 自动生成 · 生成于 2026-08-17 01:04

本周亮点

  • bugfix 主导:29 个 PR 中 21 个为缺陷修复(72%),其中 keepkeen 提交 9 个,集中于训练正确性、数据管线和 rollout。
  • GLM-5 对齐路径(#2262)成为本周最重要变更:新增约 1.2 万行代码,使 Megatron 训练与 SGLang 推理在 DeepGEMM、DeepEP、稀疏注意力和 FP8 KV cache 上数值对齐,报告 4096-token logprob MAE 1.89e-7,并配套 e2e layerwise 测试。
  • 多个隐蔽训练 bug 被修复:CP 下 advantage whitening 错用进程组(#2235)、DP>1 下 --log-correct-samples 的 IndexError 与错配(#2234)、load_other_checkpoint 未还原 ckpt_step(#2243)等。
  • 配置参数透传类问题集中暴露:eval.defaults 丢键(#2242)、--start-rollout-id 被静默覆盖(#2236)、dual-clip PPO 的 eps_clip_c 未生效(#2247),反映参数接线缺少系统性校验。
  • 性能优化亮点:REINFORCE++ 折扣回报改为分块并行扫描(#2205),长响应大 batch 下 CPU 加速最高 357x,并复用 GAE。
  • 数据管线修复多且都补了测试:filter_long_prompt 多模态顺序错乱(#2237)、负索引切片崩溃(#2241)、tau-bench 推理模板 token 增量错误(#2213)等。
  • 后端兼容性持续投入:最新 Megatron 模型转换(#2267)、ROCm INT4 QAT 内核(#2274)、NPU IPv6 补丁(#2199),但兼容层多为点状修复。

风险观察

  • 核心训练路径改动集中:本周多个高重要性 PR 涉及 loss 计算、checkpoint 加载和 rollout 预算逻辑,建议针对这些路径补充端到端回归测试。
  • 缺少测试覆盖仍是主要风险标签(6 次),尤其 #2243、#2261、#2246 等修复未附带测试,后续回归风险较高。
  • 配置参数静默失效问题反复出现(eval.defaults、eps_clip_c、start-rollout-id),建议建立参数声明与消费点的一致性检查工具。
  • 外部依赖兼容存在版本漂移风险:Megatron API、ROCm/HIP、NPU 补丁均为适配性修改,需持续跟踪上游变更。
  • 数据格式契约发生变更(如 #2234 新增 local_raw_reward、#2266 重写 debug dump 格式),下游消费方需要同步验证。

完整周报

Slime 仓库周报:2026 第 33 周(08-10 至 08-16)

执行摘要

本周(2026-08-10 至 08-16)仓库共有 29 个 PR,其中 24 个为重点分析对象。标签分布显示 bugfix 21 个、test 16 个、backends 14 个,本周主旋律是“围绕 Megatron 后端修正确性,并同步补测试”。平均重要性 6.01、平均洞察度 4.52,高信号 PR 占比不低。作者侧 keepkeen 一人贡献 9 个 PR,覆盖 rollout、数据管线、配置校验与 agent sandbox,是本周最主要的修复力量。

从整体变化看,本周没有明显的新功能扩张,更多是“还旧账”:修复了 CP 下 advantage whitening 的进程组误用、DP>1 下 log-correct-samples 的崩溃、eval 配置静默丢键、fully-async rollout 丢弃已完成组等一批影响训练结果或用户体验的缺陷。性能优化也有亮点,REINFORCE++ 回报计算向量化后最高获得 357 倍 CPU 端加速。风险上,“缺少测试覆盖”出现 6 次,加上多处核心训练路径变更,需要警惕修复本身引入新回归。

本周重点变化

第一,训练正确性修复密集落地。#2235 修正了 context parallelism 下 advantage whitening 使用排除 CP 的 DP 组做 all-reduce 的统计错误,修复前后序列两半的 whitened advantage 从 +1.707/+1.274 收敛到一致;#2234 为 --log-correct-samples 增加 DP 本地奖励视图,解决 DP>1 时的 IndexError 与指标错配;#2243 处理了 load_other_checkpoint 未还原 args.ckpt_step 导致的错误迭代加载;#2261 修复 partial rollout 续跑时未扣除已生成 token 数,避免请求超过上下文限制被 SGLang 拒绝。

第二,配置与参数验证成为另一个高频主题。#2242 修复 eval.defaults 只透传 14 个字段导致 rm_type、repetition_penalty 等被静默丢弃,以及 per-dataset 的 stop/min_new_tokens 成为死配置的问题;#2236 修复 --start-rollout-id 被无条件重置为 0;#2247 补上 eps_clip_c 从参数到损失函数的透传,使 dual-clip PPO 真正生效。这类问题都表现为“配置写了但没起作用”,根因是参数在多层函数调用之间丢失,建议后续引入更严格的接线校验。

第三,数据管线修复与测试同步增强。#2237 修复 filter_long_prompt 在混合多模态数据下按组拼接导致的顺序重排;#2241 恢复负索引切片(如 path@[-100:])的能力;#2213 修复 tau-bench 在 Qwen3 推理模板下 token 增量计算截断用户输入与遗漏生成前缀。这些 PR 都新增了 CPU 单元测试,并把部分测试接入 .github/workflows/pr-test.yml(该文件本周被 7 个 PR 改动)。

模块与主题趋势

按涉及文件看,热点集中在四个区域:

  • Megatron 后端:loss.py 涉及 advantage whitening、dual-clip 透传、debug train data 捕获;actor.py 涉及 checkpoint 加载与 debug dump;arguments.py 与 slime/utils/arguments.py 承载参数校验;模型转换相关改动分布在 megatron_to_hf 与 tools/convert_hf_to_fp8.py,修复 FP8 量化与最新 Megatron 的兼容性。
  • 数据与配置:slime/utils/data.py 被 3 个 PR 修改,覆盖 process_rollout_data 的本地视图、filter_long_prompt 顺序恢复、read_file 负切片;slime/utils/eval_config.py 是 eval 配置解析的核心修复点。
  • Rollout:sglang_rollout.py 与 fully_async_rollout.py 分别修复 partial 续跑预算和异步队列丢组问题。
  • 基础设施与兼容性:pr-test.yml 高频改动体现 CI 扩展;docker/npu_patch/slime.patch 和 int4_qat 内核则是面向 NPU 与 ROCm 的适配。

主题趋势上,仓库明显在为大规模训练做准备:GLM-5 对齐路径(#2262)把训练与推理的数值差异压到 1e-7 量级;debug train data 重构为与 rollout dump 对齐的单文件格式并支持 CP 恢复(#2266)。这些不是简单修 bug,而是为可复现训练、问题定位和生产调优打基础。同时,大量 CP/DP 维度相关修复表明,并行维度的组合(尤其是 context parallelism + data parallelism)是当前正确性薄弱点,需要更多针对性测试。

风险观察

本周最突出的风险是“核心训练路径变更 + 测试覆盖不足”的组合。#2262、#2266、#2235、#2234 都直接改动损失计算、数据打包或 checkpoint 加载逻辑,而 top_risks 中“缺少测试覆盖”出现 6 次,意味着部分修复没有回归测试支撑。例如 #2243 和 #2261 均被明确标注缺少测试,建议安排跟踪补测。

第二个风险是配置参数静默失效的反复出现。从 eval.defaults 到 eps_clip_c,再到 --start-rollout-id,本周至少 3 个 PR 在修同一类问题。这提示仓库缺少“参数声明—消费点”的一致性校验机制,未来新增配置项时仍可能重蹈覆辙。

第三个风险是数据格式契约的不兼容变更。#2234 在 rollout_data 中新增 local_raw_reward 字段,#2266 重写了 debug train data 的文件布局,这些都会影响下游日志解析、指标聚合和外部工具。若有外部使用者,需要确认同步更新。

第四个风险是外部依赖兼容的长期维护。Megatron 新版本 API 变化(#2267)、ROCm 的 hipcc 差异(#2274)以及 NPU 补丁(#2199)都属于“跟着上游走”的修法,缺少统一兼容层,上游再次变动时相似问题可能反复。

重点 PR 速览

PR 标题 要点
#2262 feat(glm5): align Megatron DeepEP training with SGLang rollout 新增约 1.2 万行确定性对齐路径,覆盖 DeepGEMM/DeepEP/稀疏注意力/FP8 KV cache,训练与推理 logprob MAE 1.89e-7
#2266 Refactor --save-debug-train-data 重写调试数据转储为单文件格式,支持 CP 恢复,并新增训练期 log-prob 捕获钩子
#2213 Fix tau-bench token deltas for reasoning templates 修复多轮对话 token 增量计算在历史重写和生成前缀上的错误
#2242 fix: honor every eval.defaults key... 修复 eval.defaults 丢键与 per-dataset stop/min_new_tokens 失效
#2238 fix: stop the fully-async rollout dropping completed groups 修复异步 rollout 排空队列导致丢组,并把有界队列改为无界 + qsize 门控
#2235 fix: whiten advantages over the DP group that includes context parallel 修复 CP 下 advantage whitening 用错进程组
#2234 fix: pair --log-correct-samples rewards with DP-local samples 修复 DP>1 下 log-correct-samples 崩溃与指标错配
#2205 perf: vectorize REINFORCE++ discounted returns 向量化折扣回报计算,长响应大 batch 下 CPU 加速 357x
#2237 fix: keep dataset order in filter_long_prompt... 修复混合多模态数据顺序重排
#2241 fix: restore negative dataset slice bounds 修复数据集路径负索引切片崩溃
#2267 Fix model convert when use latest megatron 兼容最新 Megatron 的 tokenizer 导入、Gloo 进程组等 API 变化

此外,#2274 让 INT4 QAT 内核可在 ROCm 下构建,#2199 为 NPU 补丁增加 IPv6 地址包裹,#2132 修复多 head MTP 训练日志崩溃,#2247 打通 dual-clip PPO 的 eps_clip_c 透传。文档侧有 5 个 PR,主要澄清 PPO/Critic、OPD 反向 KL 定义等,风险较低。

后续建议

  1. 为核心训练路径变更建立回归护栏:针对 CP/DP 组合场景扩充 #2235 中多进程 gloo 测试的覆盖范围;对 #2262 的对齐路径,在 CI 中保留 layerwise 对比任务,防止后续优化破坏数值一致性。
  2. 补测无测试覆盖的修复:优先为 #2243(ckpt_step)、#2261(partial rollout 预算)、#2246(gpu_id 排序)补充单元测试;#2261 明确回归自 1eed2493 重构,应加入针对续跑预算的测试。
  3. 构建配置接线的一致性检查:可借鉴 #2242 中反射校验 + setdefault 的做法,将参数校验从运行时发现前移到启动时报错,并为 eval、PPO、rollout 等配置项建立完整字段注册表。
  4. 跟踪外部依赖兼容:关注 Megatron 新版本发布节奏,评估是否引入版本适配层;ROCm 内核构建条件编译的正确性建议增加 AMD GPU 冒烟测试。
  5. 数据格式变更需通知下游:local_raw_reward、debug dump 新布局等变更应在 changelog 与文档中标注,并检查 log_rollout_data 等消费端是否已正确处理新字段。

参与讨论