Prhub

radixark/miles

Miles is an enterprise-facing reinforcement learning framework for LLM and VLM post-training, forked from and co-evolving with slime.

监控状态:已开启 最近同步:2026-09-17 11:45 同步状态:空闲 下次计划:2026-09-17 12:45

PR 列表

更多筛选
2026-09-12

#3211 Fix MTP gradient detachment in AutoBridge mode

原始 PR · 作者 Shi-Dong · 合并时间 2026-09-12 04:26

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

修复桥接模式 MTP 梯度分离缺失,防止辅助损失污染共享权重

值得精读,重点看两点:一是 `getattr` 容错与“训练 flag 集中放置”的模块约定,二是测试文件用 AST 提取生产函数的技巧——它让无法在 CPU 导入的 GPU 模块函数获得回归覆盖,可复用到同类场景。由于 MTP 训练正确性还依赖后续的辅助损失缩放、label-mask 对齐等变更,建议与这些后续 PR 联动阅读。

2026-09-11

#2864 Add fused NVFP4 fake-QAT QDQ kernels

原始 PR · 作者 zianglih · 合并时间 2026-09-11 12:03

功能 重要性 9.18 洞察度 8.00

新增融合 NVFP4 fake-QAT QDQ 内核、Megatron 适配层与 W4A16 RL 端到端配方

值得精读,但建议按“契约 → 内核 → 测试”的顺序读:(1) 先读 `NVFP4QDQConfig.__post_init__` 与 `current_nvfp4_qdq_config()`,这是理解整个内核能力边界(哪些开关合法、哪些组合被拒绝)的最短路径;(2) 再看 `miles/utils/nvfp4_fake_qat.py` 的 env 门控 + 延迟 import 设计,它决定了这项功能是否会影响未启用它的用户;(3) 最后读 `tests/fast-gpu/test_nvfp4_quantizer.py` 的 `_te_qdq_reference` 与 bit-exact 断言,理解“逐比特一致”具体对齐了什么(含 +0/-0 的整数视图比较)。特别值得学习的设计决策有:用编译期特化代替运行时分支、保留 TE 变量名但在文档串/注释/测试三处澄清语义、以及用 `--no-gradient-accumulation-fusion` 保证 STE 梯度回落到原始专家参数。同时请带着两个疑问阅读:TE 版本升级后 bit-exact 契约如何维护,以及 Megatron 侧 hook 缺失时的静默失配如何被发现。

#2855 Restrict NVFP4 RL to routed experts

原始 PR · 作者 zianglih · 合并时间 2026-09-11 08:59

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

NVFP4 量化范围收紧至路由专家,共享专家保持高精度

值得精读,重点不在 diff 体量(+25/-51),而在于它把一条隐式契约变成默认行为:建议仔细阅读 `_is_routed_expert_weight_name` 的判定顺序(共享专家否决必须早于 `.experts.` 匹配)、`quantize_params_nvfp4` 的分发结构,以及三条路径的对齐关系,这是理解 miles NVFP4 RL 现状的关键。 需要额外关注的决策与后续动作:一是 `--ci-disable-kl-checker` 属于「绕过而非修复」,建议单独跟进 signed `train/ppo_kl < 1e-8` 门禁的判据缺陷(应改为绝对值或幅值阈值);二是 `tests/fast/test_nvfp4_scope.py` 被删除后没有替代守卫,建议补回一个纯 CPU 的名称判定单测,锁住单数/复数/嵌套共享专家三种命名;三是把 FlashInfer 0.6.18 固化到镜像/依赖,避免 E2E 长期依赖手工 wheel 覆盖;四是给用户一条明确的迁移提示——旧 NVFP4 checkpoint 需要重新转换导出。

基础设施 重要性 5.74 洞察度 5.00

Lark CI 卡片按相同失败分析合并 job 行,消除重复刷屏

值得快速精读:源码改动不到 30 行,但“分组键 + 非空护栏 + 保留每 job 链接”是一套通用的告警去重取舍,可直接迁移到其他通知渠道。阅读时建议重点确认三点:分组键选择(整段分析元组是否过严/过松)、空分析必须独立成行的护栏、以及截断(`jobs[:limit]`)在分组前后顺序上的语义。后续可考虑补一个“多个 job 逐条 `UNAVAILABLE_REASON`”的用例,或在分组键中显式过滤哨兵值,以对齐 PR 描述中的承诺。

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

修复 CI 门控:CPU 失败不再跳过 nightly 的全部 GPU stage

值得精读,但重点不是 22 行代码量,而是两个可复用的工程经验:一是 GitHub Actions 中「无 `if` 的 job 按整个依赖闭包判定 success()」这一反直觉语义导致的跨阶段级联跳过,任何多阶段流水线都可能踩到;二是把这类隐性约束固化成不变量测试的做法。建议进一步关注:把断言从硬编码两个 job 扩展为对 GPU stage 依赖链的遍历式检查;把 `if:`/`always()` 子串匹配升级为按行首正则或 YAML 解析,消除注释误命中;顺带排查 `resolve-ci-policy`、`docker-build` 等同类前置 job 是否都带显式 `always()` 保护。

缺陷修复 重要性 3.64 洞察度 3.00

为两个遗漏的 CUDA 测试补 hardware 声明,解除 PR CI 全局阻塞。

变更微小(2 个文件各 1 行),不构成精读对象,但值得作为 #2701 硬件感知调度演进链条中的一环来理解其上下文。值得关注的决策是:大规模必填参数迁移类 PR(如 #2701)存在"同天合并窗口"漏网问题,且由于 main 上无 PR 测试执行而未及时暴露,后续此类基础设施变更应考虑在合并后增加全量注册扫描的自动校验。

2026-09-10

#3181 docs: DeepSeek-V4.1 Flash cookbook

原始 PR · 作者 Zhichenzzz · 合并时间 2026-09-10 14:12

文档 重要性 4.75 洞察度 5.00

新增 DeepSeek-V4.1 Flash 训练配方文档并接入导航

值得精读,尤其是 §3.5 的必选 flag 解释与 §3.6 的预期指标表——它们把 colocated 引擎休眠释放 engram 表、全参数 Adam 状态必须落盘这些隐性坑写成了显式约束,是理解 V4.1 训练栈成本结构的最短路径。建议跟进三件事:① 明确 `dsv41_cut_cast.py` 的仓库路径或提供等价工具(回应 issue 评论);② 确认 docs.json 中 `developer/ci/*` → `ci/*` 的回退是否有意,必要时拆成独立 PR;③ 为文档中的脚本与参数增加轻量可用性检查,避免 cookbook 成为新的答疑入口。

参与讨论