Prhub

#6264 [veomni] feat: add Qwen3.5-122b-a10b GRPO trainer demo with EP enabled using VeOmniEngine

原始 PR 作者 deerlu 合并时间 2026-05-07 21:52 文件变更 7 提交数 1 评论 1 代码增减 +178 / -7

执行摘要

新增 Qwen3.5-122B GRPO 演示脚本及 VeOmni 依赖升级

为使用 VeOmniEngine 的用户提供参考示例,展示如何对 Qwen3.5-122B-A10B 大模型进行 GRPO 训练,并利用专家并行(EP)提升训练效率。同时保持 CI 依赖版本一致。

该 PR 主要是 demo 脚本的添加,对于使用 VeOmniEngine 的用户有参考价值,但核心逻辑简单。建议关注评论中提到的 rollout DP 配置问题,在正式场景中动态计算 infer_dp。CI 依赖升级部分属于常规维护。

讨论亮点

gemini-code-assist[bot] 指出新脚本中 infer_dp 硬编码为 1,在 8 节点 64 GPU 环境下会导致 rollout 阶段 56 张 GPU 闲置,建议改为 infer_dp=$((nnodes * 8 / infer_tp)) 以动态分配。该评论未被采纳(脚本维持原样),但 PR 仍获批合并,可能因当前仅用于 demo 或后续优化。

实现拆解

  1. 新增演示脚本:在 examples/grpo_trainer/run_qwen3_5-122b-a10b_veomni.sh 中编写完整的 GRPO 训练配置,包括算法参数(GRPO、GSPO、KL 系数)、数据路径、模型路径、并行度设置(USP、EP)以及 VeOmni 引擎专属配置(参数卸载、优化器卸载、全分片、注意力与 MoE 实现选择)。
  2. 升级 CI 依赖:在 5 个 CI 工作流文件(e2e_ppo_trainer_veomni_vllm.ymle2e_ppo_trainer_veomni_vllm_ascend.ymle2e_sft_llm.ymle2e_sft_llm_ascend.ymle2e_sft_vlm.yml)中将 veomni 依赖版本从 0.1.9a4 升级到 0.1.9a5,确保统一使用最新版本。
  3. 清理旧脚本:在 run_qwen3_5_35b_a3b_veomni.sh 中删除 2 行未使用的变量,保持脚本整洁。
文件 模块 状态 重要度
examples/grpo_trainer/run_qwen3_5-122b-a10b_veomni.sh 示例脚本 added 5.56
.github/workflows/e2e_ppo_trainer_veomni_vllm.yml CI 配置 modified 2.78
examples/grpo_trainer/run_qwen3_5_35b_a3b_veomni.sh 示例脚本 modified 2.31

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

评论区精华

rollout infer_dp 配置导致 GPU 闲置 性能

gemini-code-assist[bot] 指出 `infer_dp` 硬编码为 1,在 8 节点 64 GPU 环境下导致 56 张 GPU 在 rollout 阶段空闲,建议动态计算为 `infer_dp=$((nnodes * 8 / infer_tp))`。

结论:评论未被采纳,脚本保持 `infer_dp=1`,PR 仍获批合并。 · unresolved

风险与影响

rollout GPU 利用率低: infer_dp=1 导致大部分 GPU 在 rollout 阶段空闲,可能影响训练吞吐量,但 demo 场景下影响有限。依赖版本兼容性: veomni 从 0.1.9a4 升级至 0.1.9a5,需确保新版本在 CI 和用户环境中无意外行为。新脚本未包含在 CI 中: 新增的演示脚本未被任何 CI 工作流引用,无法自动验证其正确性,可能引入隐蔽问题。

用户: 提供了一份可直接参考的 Qwen3.5-122B 训练脚本,降低了 veomni 用户的上手成本。系统: CI 依赖升级确保后续测试统一使用 veomni 0.1.9a5。团队: 无需额外维护负担,但未来若完善该脚本需关注 rollout 配置优化。

rollout GPU 资源浪费 示例脚本未纳入 CI veomni 版本兼容性

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论