Prhub

#5682 [fsdp, model] feat: add qwen3.5 fsdp grpo training support.

原始 PR 作者 Zhang1Sheng 合并时间 2026-03-30 13:48 文件变更 8 提交数 1 评论 31 代码增减 +674 / -3

执行摘要

新增 Qwen3.5 模型的 FSDP GRPO 训练支持,涵盖适配器、补丁和示例脚本。

PR body明确表述“enables FSDP GRPO training for Qwen3.5 models”,旨在响应用户对Qwen3.5模型FSDP训练的需求,Issue评论中用户如winnieyangwannan直接询问支持情况,表明这是提升框架实用性的功能扩展。

该PR值得精读,特别是qwen3_5.py中的适配器设计展示了如何修复FSDP2 CPU卸载bug,以及monkey_patch.py的扩展模式。建议关注配置参数设置、依赖版本管理和测试覆盖策略,以避免常见部署问题。

讨论亮点

Review中核心讨论包括:

1) CI看护:beirong8kmiles建议将模型加入CI,作者Zhang1Sheng回复因vllm0.18版本当前NPU CI无法直接看护,突显测试覆盖缺口。
2) 配置参数:wucong25质疑update_weights_bucket_megabytes设置过大,作者解释当前配置影响不大,参数未调整。
3) 依赖版本:wucong25询问transformer版本要求,作者回答需要v5.0以上,明确了兼容性约束。
4) 文件格式:gemini-code-assist[bot]指出脚本缺少换行符,建议修复以预防解析错误。

实现拆解

实现拆解为三部分:

1) 模型适配器:新增verl/models/transformers/qwen3_5.py文件,包含fast_pos_embed_interpolate函数修复FSDP2 CPU卸载bug,并提供前向传播函数。
2) 补丁集成:修改monkey_patch.py添加qwen3_5模型类型支持;更新npu_patch.py为Qwen3.5和Qwen3.5 MoE添加NPU补丁;调整npu_vllm_patch.py版本检查范围。
3) 示例脚本:新增四个训练脚本(examples/grpo_trainer/run_qwen3_5_*),配置GRPO算法、FSDP2策略及关键参数,支持普通和NPU环境。

文件 模块 状态 重要度
verl/models/transformers/qwen3_5.py model added 8.0
verl/models/transformers/monkey_patch.py model modified 7.0
examples/grpo_trainer/run_qwen3_5_27b_vllm_fsdp.sh examples added 6.0
verl/models/transformers/npu_patch.py model modified 5.0
verl/utils/vllm/npu_vllm_patch.py vllm modified 4.0

关键符号

fast_pos_embed_interpolate forward_with_normal_backend qwen3_5_base_forward qwen3_5_moe_experts_forward_npu

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

CI 测试覆盖 测试

beirong8kmiles 建议将模型加入 CI,作者 Zhang1Sheng 回复因 vllm0.18 版本当前 NPU CI 无法直接看护。

结论:暂未解决,需后续 CI 更新以覆盖新版本依赖。 · pending

配置参数优化 设计

wucong25 质疑 update_weights_bucket_megabytes 设置过大,作者 Zhang1Sheng 解释当前配置影响不大。

结论:参数保持原样,未进行调整,依赖经验设置。 · 已解决

依赖版本管理 other

wucong25 询问 transformer 版本要求,作者 Zhang1Sheng 回答需要 v5.0 以上。

结论:明确了依赖要求,确保兼容性。 · 已解决

文件格式规范 style

gemini-code-assist[bot] 指出多个脚本文件缺少换行符,建议修复以避免解析错误。

结论:建议已提出,但 PR 中未体现是否采纳,状态未知。 · unknown

风险与影响

技术风险包括:

1) 回归风险:monkey_patch.py新增条件分支可能干扰其他模型前向传播。
2) 兼容性风险:依赖特定版本(vllm0.18.0、transformer v5.0+),可能导致环境配置问题或升级困难。
3) 性能风险:示例脚本中配置参数(如update_weights_bucket_megabytes)未优化,可能影响训练效率。
4) 测试覆盖不足:由于CI无法看护,缺乏自动化测试,Issue评论中用户报告激活卸载错误等bug未完全解决。
5) 补丁复杂度:新增适配器和补丁增加了代码维护负担。

影响分析:

1) 用户影响:为Qwen3.5模型用户提供了FSDP GRPO训练能力,扩展VERL框架的模型支持范围,降低部署门槛。
2) 系统影响:新增模块化代码(如qwen3_5.py)有助于隔离变更,但增加了维护成本;修复FSDP2 CPU卸载bug提升了框架稳定性。
3) 团队影响:需后续PR支持ulysses sequence parallel等功能,并可能需更新CI以覆盖新依赖版本。

缺少测试覆盖 依赖版本锁定 配置矛盾风险 补丁集成复杂度

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论