Prhub

verl-project/verl · 标签视图

标签列表

聚合结果

fsdp 相关 PR

2026-09-14
缺陷修复 重要性 5.49 洞察度 4.00

补齐蒸馏 teacher 字段填充并支持 fsdp2 策略

值得精读,但只需读源码不必读讨论——PR 本身讨论为零。重点关注三个设计决策:一是 padding 模板选择 "按模板序列长度重建" 而非 "裁剪/丢弃教师字段",意味着合成样本仍需保持可被蒸馏 loss 消费的完整张量结构;二是用 .new_full/.new_zeros 保留 topk 维与 dtype/device,写法克制,便于后续扩展更多 teacher 字段;三是把 fsdp2 直接并入 fsdp/veomni 分支而不是新建实现。建议阅读者在本地补一条 CPU 单测覆盖 teacher_ids/teacher_logprobs 存在与不存在两种情况,并确认跨 tokenizer 场景下 eos_token_id 作为 teacher topk id 的合法性。

2026-09-03
功能 重要性 3.59 洞察度 3.00

更新 Qwen3.5-35B GRPO 示例脚本的序列长度和训练参数。

该 PR 值得精读,特别是对于负责维护训练示例和配置的工程师。虽然实现简单,但它展示了一个针对特定模型(Qwen3.5-35B)、特定后端(FSDP-Turbo)、特定硬件(NPU)和特定任务(长上下文 GRPO)的完整训练配置调整范例。关键的设计决策在于参数间的耦合调整(如增大序列长度后相应调整 `max_num_batched_tokens` 和 `val_before_train` 等流程控制)。

2026-09-01
性能优化 重要性 7.27 洞察度 5.00

FSDP 引擎跳过温度为 1 时的全词表 logits 缩放,降低峰值内存。

建议精读。这是一个小范围但设计精良的性能优化 PR。它清晰地识别了一个可以安全跳过的计算(温度=1 时的恒等缩放),通过引入清晰的辅助函数和状态传递实现了优化,同时配套了完备的测试和容错处理。其“识别并跳过 no-op”的优化思路和“保持兼容性”的实现方式,对于处理类似场景具有参考价值。

重构 重要性 6.61 洞察度 4.00

FSDP-Turbo e2e 测试从 GPU 迁移至 NPU,清理空梯度同步上下文

值得精读,尤其是想了解“如何将一个后端的 e2e 测试从 GPU 迁移到 NPU”以及“如何处置历史 workaround”的读者。关注点:删除 `_gradient_sync_context` 是否真的安全,建议在 PR 描述或后续提交中补充原因;同时留意是否有计划为 GPU 侧补充单元测试或恢复轻量 e2e,避免 fsdp_turbo 在 CUDA 上失去回归保护。

2026-08-31
功能 重要性 5.40 洞察度 4.00

新增 Qwen3.5-2B 对策略蒸馏 FSDP 双平台脚本

值得精读的人群是需要在 GPU/NPU 双平台跑通 on-policy distillation 的用户,可将其作为 OPD 示例模板;关注 `DEVICE` 自动探测、NPU 环境变量分支和 uv gate 的组合方式。核心代码无改动,评审价值主要体现在示例脚本的可维护性与仓库惯例一致性上。

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

修复 FSDP 合并器误拼接 replicated buffer 崩溃与 shape 损坏

值得精读。这是一个小而完整的数据契约修复:核心决策是识别 FSDP 下“非 DTensor 即完整复制”的语义,并用 fail-fast 替代静默损坏。可借鉴的点包括:错误信息携带 key 名与 rank 号、用 torch.equal 做全量一致性校验、配套聚焦的 CPU 单测直接锁定回归。

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

修复 trl 新版本下 value-head critic 导入崩溃

建议快速精读(约 5 分钟),是低风险、高收益的兼容性修复样板。值得关注的设计决策:(1)用 try/except 而非版本条件判断(如 `packaging.version` 比较)处理依赖 API 迁移,写法更简洁且天然向前兼容;(2)与 #6539 保持完全一致的导入模式,避免同一仓库出现多种兼容写法;(3)PR body 中「先自查 open PR 再提交」的去重流程值得团队沿用。后续动作建议:在 trl 1.x 依赖升级(#7478)落地时,全局扫描 `from trl import` 确认无其他受影响符号,并考虑补充导入级回归测试。

2026-08-28
功能 重要性 6.93 洞察度 5.00

FSDP 延迟梯度同步新增开关,实际默认改为 false

值得精读,尤其是 `_gradient_sync_context` 的 `getattr` 兼容写法与配置默认值在数据类/YAML 两层的分歧。建议关注合入后默认值调整的决策背景(内存优先),并留意后续是否有统一默认值的跟进 PR。