Prhub

#7517 [ci] fix: enable fully sharded LoRA in Ascend E2E tests

原始 PR 作者 lxb007981 合并时间 2026-08-25 09:20 文件变更 1 提交数 2 评论 0 代码增减 +18 / -5

执行摘要

Ascend E2E 测试开启 fully sharded LoRA

PR body 明确指出启用 fully_sharded_loras 是为了绕过 vLLM 的 tensor-parallel shape bug,详见 vllm-project/vllm#47650。该 issue 描述了在 AutoRound int4 模型上启用 --enable-lora 后,在 TP>1 时因无条件 all_gather 导致非分片 LoRA 崩溃的问题。

该 PR 是 CI 配置调整,不值得精读,但可关注其规避的 vLLM bug 及后续修复,有助于理解 LoRA 分片在异构硬件上的兼容性问题。

讨论亮点

Review 过程中没有评论,仅 wucong25 审批通过。

实现拆解

  1. 修改 CI 工作流文件.github/workflows/e2e_ppo_trainer_megatron_vllm_2_ascend.yml):在三个不同的 E2E 测试步骤中追加 actor_rollout_ref.model.lora.fully_sharded_loras=True 参数,分别对应 GRPO LoRA、FSDP2 和 Qwen2.5-VL 场景。
  2. 增加 NPU 健康检查:在 'Check npu and CANN info' 步骤中,将 npu-smi info 输出重定向到临时文件,并通过 grep 检查是否存在 'Warning'、'Alarm'、'Critical'、'UNKNOWN' 等关键字段,若命中则直接退出,防止在异常硬件上运行测试。
  3. 无额外测试或文档改动:由于是 CI 配置调整,未引入新的单元测试或文档更新。
文件 模块 状态 重要度
.github/workflows/e2e_ppo_trainer_megatron_vllm_2_ascend.yml CI 配置 modified 4.4

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

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

回归风险:追加参数可能影响测试的 LoRA 行为,但该参数是为规避已知 bug,风险较低。健康检查误报风险:grep 匹配关键字可能因 NPU 输出格式变化导致误判。兼容性风险:依赖 vLLM 对 fully sharded LoRA 的支持,若底层版本变化可能失效。

用户影响:仅影响运行 Ascend CI 的开发和测试流程。系统影响:确保 NPU 健康后运行测试,减少失败干扰。团队影响:需要关注相关 CI 测试结果,确保问题被正确规避。

CI 配置变更 依赖 vLLM 行为

关联 Issue

#47650 [Bug][XPU] --enable-lora on AutoRound int4 (INC ark_linear) crashes at startup; unconditional all_gather in _mcp_apply breaks non-sharded LoRA at TP>1 (patches included)

完整报告

参与讨论