Prhub

verl-project/verl · 标签视图

标签列表

聚合结果

fully_async 相关 PR

2026-09-15
文档 重要性 3.31 洞察度 3.00

补充昇腾 NPU 上 Checkpoint Engine 后端配置文档

该 PR 无需精读代码,建议用 3-5 分钟浏览文档正文即可,重点关注三个设计决策:(1) `nccl` 在 NPU 上被隐式解析为 HCCL——这是一个“配置名与实现后端不一致”的接口约定,值得确认其实现位置并在代码侧保留注释,避免后续被误当作 bug 改掉;(2) Mooncake 在 NPU 上依赖源码编译 `ascend_direct`,属于部署前置条件,建议在昇腾镜像或安装脚本文档中交叉引用;(3) 参数表默认值(2048 MB 桶、`group_name=default`、`rebuild_group=False`)与实现的一致性没有自动化保障,建议后续修改 checkpoint engine 的 PR(如 Mooncake 相关修复)把更新本文档纳入 checklist。若团队有英文文档镜像,建议同步一份以覆盖英文用户。

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

V1 验证指标把失败会话按 acc=0 计入

值得精读。这是一个“小 diff、大语义”的指标修正:104 行改动里的核心只有三处(期望计数采集、源级 opt-in 补齐、None/has_pred 安全化),但直接改变了 Trainer V1 验证主指标的语义,阅读时建议重点看 `metric_utils.py` 的 `expected_acc_counts` 块与 `has_pred` 的判定条件,以及 `trainer_base.py` 中 `(str(data_source), str(uid))` 键的构造是否与指标侧分组严格对齐。建议配套动作:在监控中同时画 `acc` 与 `acc_success_only`,把两者差值作为失败率诊断;为 `_validate → _val_metrics_update` 补一个 CPU 级端到端单测(覆盖 `__rollout_n__` 缺省回退与键一致性);明确 `pred` 是否也应随 `acc` 补齐,避免 `maj` 指标与 `mean` 基数不一致。

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

NPU 补丁增加部分唤醒防护,修复 GLM-5.2 异步训练崩溃

建议精读。本 PR 是典型的“对外部引擎做安全 monkey-patch”的范本:源码指纹校验、幂等 marker、spawn 入口包装三件事结合得很好,对维护 vllm-ascend、sglang 等外部组件兼容层的开发者有直接参考价值。值得关注的设计决策是“先验证再替换”和“通过入口函数传播补丁到子进程”这两个模式。

2026-09-10
缺陷修复 重要性 7.85 洞察度 7.00

修复 V1 异步训练恢复后重复提交 warmup 导致的跳样本与窗口溢出

建议精读,尤其是维护 V1 异步训练与 checkpoint 恢复链路的同学。三个值得关注的设计决策:(1) 门控依据从「reissue 动作返回值」改为「恢复状态占用计数」,揭示了恢复类逻辑应以状态而非动作结果做门控;(2) 预取窗口的度量单位由 batch 改为 prompt,并配套 `_add_prompts_to_generate(missing_prompts)`;(3) 恢复池超额时「只保不缩」,用日志而非裁剪处理异常状态。此外,Begunner 在 review 中指出反例并直接提交修复的协作模式,以及 PR body 中明确标注 AI 辅助定位、人工逐行复核的做法,都值得作为流程参考。后续建议补齐两个覆盖缺口:带 `global_steps` 过滤的计数测试,以及打通真实 replay buffer / dataloader 的集成测试。

2026-08-31
fix 重要性 3.07 洞察度 4.00

修复 fully-async 脚本中缺失的 sleep_mode 启用配置,保障 KV 缓存回收功能正常。

此 PR 值得精读,虽然代码改动微小,但它揭示了 vLLM 组件间一个关键的配置依赖关系(sleep mode 对 KV 缓存回收 API 的必要性)。对于维护或扩展 fully-async 功能的开发者尤其重要,需确保所有启动脚本的配置一致。

2026-08-12
基础设施 重要性 6.82 洞察度 4.00

CI 工作流从 fully_async 迁移到 v1 separate_async

值得阅读,尤其关注其 CI 迁移方式和参数校验设计。建议合入后重点观察:1) `e2e_v1_separate_async_*` 系列工作流首次运行是否全绿;2) 被删除的 GenRM 覆盖是否需要补回 v1 路径;3) 后续 `fully_async` recipe 化是否按此方案推进。

2026-08-07
缺陷修复 重要性 7.14 洞察度 4.00

为 FSDP1 新增分片保存/恢复 handler,修复 Fully Async 崩溃

值得精读。该 PR 是一个小而清晰的 bugfix,展示了按「参数表示形态」拆分 handler 的设计思路:FSDP1 扁平 Tensor 与 FSDP2 DTensor 不能共用 CPU 保存/恢复工具。建议重点关注 fsdp_utils 中两个新函数的实现细节(barrier、跳过缺失参数、copy_ 语义)以及 engine_workers 中 strategy 分支的改动。但需注意测试缺失,后续应补一个 FSDP1 + fully_async + bypass_mode=False 的回归测试。

2026-07-20
功能 重要性 9.36 洞察度 7.00

引入动态资源调度提升异步训练 GPU 利用率

建议: - **优先解决 `ray.get()` 阻塞问题**:这是影响稳定性的关键 bug,应在合并前改用 `await`。 - **增加单元测试**:至少对 `DynamicScheduleContext` 计算、`DefaultDynamicSchedulePolicy` 决策逻辑、`DynamicResourceController` 状态转换进行模拟测试。 - **关注 `abort_replicas` 位置**:接受 wuxibin89 建议,将相关操作完全挪至 controller。 - **值得精读**:动态调度策略的设计模式(可插拔、上下文驱动)具有参考价值,可作为未来类似功能的样板。