# verl-project/verl 2026 第 21 周周报 (05-18 ~ 05-24)

- 仓库：`verl-project/verl`
- 周期：2026-05-18 至 2026-05-24
- 来源 PR：31
- 重点 PR：24
- 生成方式：自动生成
- 原文链接：http://prhub.com.cn/verl-project/verl/reports/2026-05-18-to-2026-05-24

---

# 执行摘要

本周（2026.05.18 – 2026.05.24）verl 项目累计合入 31 个 PR（其中 24 个为重点 PR），平均重要度 5.24。变更主线围绕 **引擎覆盖补齐**、**基础设施升级 **和 **NPU 生态增强 **展开。最重要的三个动作是：VeOmni 原生 critic 训练支持、vLLM 0.20.2 大规模升级、Megatron 后端向 Megatron-Bridge 新 API 迁移。同时，团队修复了多个影响训练稳定性的 bug，包括 FP8 异步 RL 配置、FSDP2 异构缓冲区死锁、LoRA 检查点元数据缺失等。风险方面，Megatron 重构和 vLLM 升级引入了默认配置兼容性与维护性问题，需尽快回归验证。

# 本周重点变化

1. **VeOmni 补齐 critic 训练 **（#6453）—— 新增 `VeOmniCriticConfig` 配置类与 `VeOmniEngineWithValueHead` 引擎，使 VeOmni 能够支持价值模型训练。设计上通过提取共享输入变换方法 `_apply_veomni_input_transforms` 消除代码重复，并添加了 SP 与 GPU 数量的兼容性校验。

2. **vLLM 升级至 0.20.2**（#6393）—— Dockerfile 参数化重构（CUDA 12.9→13.0、PyTorch 2.10→2.11、vLLM 0.18.0→0.20.2）；通过 `unittest.mock.patch` 替换内部函数以保留 FP8 权重加载子类参数属性；调整 `build_app` 新参数和 `max_tokens` 验证（下限从 0 改为 1）。该 PR 还解决了个 fork 依赖等兼容性问题。

3. **Megatron 后端统一重构 **（#6335）—— 删除本地 `megatron_qat_patch.py` 等 monkey patch 文件，将 PEFT/DDP/checkpoint 等逻辑替换为 Megatron-Bridge 辅助 API。但 reviewer 指出重构后 `provider.configure()` 不再设置 MoE 和注意力后端等默认值，可能导致模型行为变化；`adapter_path` 访问方式也不兼容 dict 配置。

4. **FP8 异步 RL 与多节点修复 **（#6344）—— 修复 `load_format` 中 FP8 检查点的特殊处理路径，将 NCCL 全局禁用改为通过环境变量 `TLLM_DISABLE_NVLS_MNNVL` 选择性启用，避免影响同步 RL 的多节点 rollout。

5. **训练器 I/O 异步化 **（#6324）—— 将 `_dump_generations` 的同步写文件改为后台线程池异步写，并引用 `_shutdown_dump_executor` 管理线程生命周期；异常通过 future 传播至主循环。该 PR 同时同步修改了 `main_ppo_sync.py`，确保弃用路径后的一致性。

6. **NPU 生态持续厚植 **—— 集成 Liger-Kernel 加速（#6244），通过复用 `use_liger` 配置跳过冲突的 `npu_patch`；重构 expandable segments 设置（#6346），统一到 `set_expandable_segments` 函数；新增 Qwen3-VL-30B（#5275）、Qwen3.5-35B（#6318）等多款模型的 Ascend 训练脚本。

7. **弃用启动 **（#6384）—— 标记 `main_ppo.py` 和 `RayPPOTrainer` 为弃用，但 deprecation 消息存在拼写错误（"wil"）和冗余问题，合并前未修正，可能影响用户理解。

# 模块与主题趋势

本周 **bugfix**标签以 12 次高居榜首，说明在功能快速迭代的同时，回归问题也被高度重视。**cfg**（8 次）和 **npu**（7 次）紧随其后，反映出配置管理和 NPU 适配是当前并行推进的两大主题。热文件集中在 FSDP 引擎（`transformer_impl.py` 出现 3 次），表明 FSDP 引擎的修改最为频繁。**VeOmni**相关 PR 有 3 个，且分别覆盖 critic 和 GRPO 两种训练模式，说明该引擎正快速走向成熟。此外，**doc**（5 个）PR 中大部分与 Ascend 文档相关，团队在 NPU 生态文档建设上投入明显。值得关注的是，**refactor**（5 个）中有两个较大规模重构（#6335、#6324），表明团队在主动减少技术债务。

# 风险观察

| 风险 | 影响 | 相关 PR |
|------|------|--------|
| Megatron 重构后默认配置缺失（MoE、attention backend） | 可能改变模型训练行为 | #6335 |
| vLLM FP8 monkey patch 依赖 unittest.mock，长期维护脆弱 | 升级时易失效 | #6393 |
| 缺少测试覆盖（VeOmni critic、checkpoint 路径等） | 隐患不易暴露 | #6453、#6409、#6318 |
| FP8 异步 RL 的 NCCL 环境变量影响同步 RL | 全局配置污染 | #6344 |
| main_ppo.py 弃用消息有误 | 误导用户，影响迁移 | #6384 |

其中，**Megatron 重构 **和 **vLLM 升级 **的风险最为紧迫，建议在后续一到两周内安排专项回归测试，确保核心训练 pipeline 不受影响。对于 **测试覆盖不足 **的问题，建议要求涉及新引擎或 checkpoint 变更的 PR 必须附带至少一个集成测试用例。

# 重点 PR 速览

- **#6453 — [veomni] VeOmni 原生 critic 支持**：新增配置、引擎和注册，修复共享方法设计。重要度 7.9。
- **#6393 — [docker] vLLM 0.20.2 升级**：Dockerfile 参数化、FP8 补丁、server API 适配。重要度 8.3。
- **#6335 — [megatron] Megatron 后端重构**：使用 Megatron-Bridge 新 API 替换本地实现，但引入默认配置缺失风险。重要度 9.2（本周最高）。
- **#6344 — [rollout] FP8 异步 RL 修复**：修复 FP8 配置路径和 NCCL 挂起。重要度 6.4。
- **#6324 — [trainer] generation dump 异步化**：消除大 batch I/O 阻塞，异常传播。重要度 8.2。
- **#6406 — [tool] Gemma4 工具解析器**：支持 agent 循环中工具调用，stop token 注入。重要度 7.7。
- **#6409 — [ckpt] LoRA 训练元数据保存**：修复 PPO actor 检查点缺少 lora_train_meta.json。重要度 7.0。
- **#6244 — [npu] Liger-Kernel 集成**：复用 `use_liger` 配置跳过 npu_patch 冲突。重要度 5.4。
- **#6318 — [megatron] Qwen3.5-35B 脚本 & checkpoint strict**：新增训练脚本，修复 checkpoint 序列化。重要度 5.9。
- **#5275 — [veomni] Qwen3-VL-30B VeOmni GRPO 脚本**：新增训练脚本并修复参数注入安全风险。重要度 4.8。

# 后续建议

1. **回归验证**：优先对 Megatron 重构（#6335）和 vLLM 升级（#6393）进行完整的 E2E 测试，重点关注 MoE 模型行为变化和 FP8 加载兼容性。
2. **补充测试**：为 VeOmni critic 和新增 checkpoint 功能编写单元 / 集成测试，避免后续迭代打破现有逻辑。
3. **跟踪上游**：关注 Megatron-Bridge 和 vLLM 的后续版本，尽早评估是否可以移除 monkey patch。
4. **弃用迁移**：在 v0.8.0 发布前，提供清晰的迁移指南，确保 `main_ppo_sync.py` 与旧接口行为完全兼容，并修正 deprecation 消息。
5. **审查流程**：建议在 PR 模板中强化“测试覆盖”环节，要求变更关键路径时附带测试或说明无测试覆盖的理由。