# verl-project/verl 第 30 周周报 (2026-07-20 至 2026-07-26)

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

---

# 执行摘要

本周（2026 年第 30 周）verl 仓库共合并 23 个 PR，涵盖性能优化、算法框架、模型兼容性、正确性修复及基础设施等多个方面。整体来看，本周是“性能与稳定性”主题的一周：FSDP 梯度延迟同步和动态资源调度显著提升训练效率；多项竞争条件 Bug 得以修复；Qwen3.5 系列模型的全面支持进一步完善了模型生态。然而，部分核心修改缺乏测试覆盖，动态资源调度存在未解决的阻塞问题，需在后续迭代中重点解决。

# 本周重点变化

### FSDP 梯度延迟同步（#7095）
将梯度累积中每个微批后的 reduce-scatter 同步推迟到最终微批，同步次数从 M 次降至 1 次，M=8 时延迟降低约 40%。此优化默认启用，显著减少通信开销，但可能增加峰值显存占用。

### 动态资源调度（#6556）
在完全异步 PPO 框架中引入混合推理资源动态切换，使 Trainer GPU 在训练与 rollout 间动态复用，端到端时间缩短约 15%。内置自适应调度策略和可插拔设计，但存在 ray.get() 阻塞问题尚未修复。

### ReplayBuffer 升级（#7082）
统一处理过期、DAPO 过滤和失败 rollout 组的驱逐与回填，新增 WandB 表格记录过滤奖励，为 DAPO 算法提供完整采样支持。但 max_num_gen_batches 配置未被使用可能引发 OOM 风险。

### Qwen3.5 系列全面支持
- #6660 修复线性注意力 Ulysses SP 的序列边界问题，利用 FLA packed 内核和 CP context 实现正确训练。
- #5599 修复 LoRA/MTP 权重同步，将权重名称归一化移至接收端，增强兼容性。

### 正确性修复
- #7139 修复 SGLang rollout 中 NCCL buffer 竞争条件，改用 _base 属性检测视图。
- #7083 在 NCCL checkpoint engine 中添加 CUDA stream 同步，避免权重损坏。

# 模块与主题趋势

### 性能优化
本周性能相关 PR 达 6 个，涵盖 FSDP 通信、rollout GPU 复用、profiler、checkpoint 传输等多个维度。fsdp/perf 标签显著增多，表明团队正系统性地提升大规模训练效率。

### 算法与训练
ReplayBuffer 重构和 Tinker 输出保留为 DAPO 等高级算法铺平道路，显示算法工程化进入深水区。

### 模型支持
Qwen3.5 线性注意力和 LoRA/MTP 的修复使得该系列模型在 verl 上达到全功能支持，体现了对主流模型快速迭代的响应能力。

### 基础设施
CI 配置改进和文档更新持续进行，尤其是 Ascend 相关 CI 的完善和 ROCm Docker 简化，提高了多平台可维护性。日志系统独立化是微服务化的有益步骤。

### 测试与风险
多个 PR 明确标记“缺少测试覆盖”，动态资源调度等新功能代码审查中发现阻塞问题但未全部解决，测试债有所增加。

# 风险观察

1. **核心路径变更密集**：本周修改涉及 trainer_base.py、transformer_impl.py 等核心文件多次，任何潜在回归都可能影响整体训练稳定性，建议部署前执行完整回归测试。
2. **测试覆盖不足**：PR#7139、#6556、#7103 等高重要性 PR 均指出缺少测试覆盖，需优先补全以防止隐式 Bug。
3. **动态资源调度遗留问题**：PR#6556 中多个 reviewer 指出 ray.get() 阻塞事件循环和返回类型错误，虽已合入但未完全解决，可能在生产环境中引发不可预期行为。
4. **性能权衡**：FSDP 梯度延迟同步在降低通信延迟的同时，因累积更多梯度可能导致内存压力上升，共享集群用户需监控实际显存占用。
5. **硬件兼容性碎片**：NPU 专用修复（#7147、#7103）表明不同硬件平台间仍存在适配鸿沟，建议未来统一测试框架，降低维护成本。

# 重点 PR 速览

| PR 编号 | 标题 | 重要性 | 领域 |
|--------|------|--------|------|
| #7095 | FSDP 梯度延迟同步 | 7.3 | fsdp/perf |
| #6556 | 动态资源调度 | 9.4 | fully_async/perf |
| #7082 | ReplayBuffer DAPO 支持 | 9.2 | trainer/algo |
| #7139 | SGLang NCCL 竞争修复 | 5.7 | rollout/bugfix |
| #6660 | Qwen3.5 线性注意力 Ulysses SP | 9.2 | model/bugfix |
| #7144 | 分片 delta 块放置优化 | 9.2 | ckpt/perf |
| #7109 | Tinker 保留模型输出 | 8.1 | trainer/rollout |
| #7083 | NCCL checkpoint 同步修复 | 6.3 | ckpt/bugfix |

此外，#7140（ROCm Docker 简化）和 #7133（日志隔离）等基础设施改进也值得关注。

# 后续建议

1. **解决遗留 bug**：优先处理动态资源调度中的 ray.get() 阻塞和类型错误，确保完全异步训练的稳定性。
2. **补全测试覆盖**：为多个缺少测试的 PR（#7139、#6556、#7103）补充单元测试和集成测试，特别是针对边界条件和竞争场景。
3. **监控性能回归**：FSDP 梯度延迟同步上线后需跟踪显存和吞吐量，防范峰值 OOM；建议在 CI 中增加显存压力测试。
4. **推进硬件抽象**：继续设备统一抽象工作（如 #7128），减少 NPU 专用代码，提升在 XPU 等新硬件上的可移植性。
5. **知识沉淀**：ROCm Docker 重建和示例脚本存根化（#7091）展示了良好的维护实践，建议团队推广到其他过时配置和脚本。
6. **强化代码审查**：对于涉及核心路径的 PR，应要求明确的测试计划，并重点关注 review 中提出的未解决问题。