Prhub

#5724 [docker, ci] fix: all CIs, transformers upgrade to 5.3.0 and vllm==0.18.0

原始 PR 作者 ETOgaosion 合并时间 2026-04-03 13:44 文件变更 29 提交数 39 评论 11 代码增减 +234 / -137

执行摘要

修复所有 CI 流水线,升级 transformers 至 5.3.0 和 vLLM 至 0.18.0 以解决兼容性问题。

修复e2e_fully_async_policy_megatron的rope_theta参数错误(由于transformers升级),解决由PR 5717引入的megatron依赖循环,并尝试修复trtllm rollout权重传输错误,以提升CI稳定性。

建议工程团队精读此PR,重点关注模型兼容性修复(如rope_theta处理和visual输出解包)和权重同步逻辑重构,这些设计决策展示了处理重大依赖升级时的系统化方法,对类似升级有借鉴意义。

讨论亮点

核心讨论围绕engine_workers.py中的base_sync_done硬编码问题:HollowMan6指出硬编码为True可能导致LoRA权重同步错误,cavities12确认应使用self.base_sync_done。后续通过重构(commit 8e85750)解决:先获取peft_config判断是否需要基础同步,再分别获取基础权重和适配器权重进行更新。gemini-code-assist[bot]提示config_converter.py中函数移动可能导致NameError,需导入修复。讨论结论是重构方案正确,已解决兼容性问题。

实现拆解

实现分为四个模块:

1) CI配置更新:修改多个.github/workflows文件,升级Docker镜像标签至vllm018.dev1,移除transformers版本限制,添加缺失依赖如mbridge。
2) Dockerfile调整:更新docker/Dockerfile.stable.vllm基础镜像至Ubuntu 24.04,优化依赖安装顺序。
3) 模型兼容性修复:将get_hf_rope_theta函数从verl/models/mcore/config_converter.py移至verl/utils/megatron_utils.py以解决循环依赖;在verl/models/transformers/目录下更新GLM4V、Qwen2_VL等模型代码,适配transformers>=5.0.0的rope_parameters结构。
4) 权重同步逻辑优化:在verl/workers/engine_workers.py中重构LoRA权重同步流程,确保先同步基础权重再同步适配器权重,并更新对应测试文件。

文件 模块 状态 重要度
.github/workflows/e2e_fully_async_policy.yml ci modified 8.0
docker/Dockerfile.stable.vllm docker modified 7.0
verl/models/mcore/config_converter.py model modified 6.0
verl/utils/megatron_utils.py model modified 6.0
verl/workers/engine_workers.py worker modified 7.0

关键符号

get_hf_rope_theta update_weights unpack_visual_output

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

评论区精华

engine_workers.py 中 base_sync_done 硬编码问题 正确性

HollowMan6 指出硬编码 base_sync_done=True 可能导致 LoRA 权重同步错误,cavities12 确认应使用 self.base_sync_done,后续通过重构解决。

结论:重构方案确保先获取 peft_config,再分别同步基础权重和适配器权重,已修复问题。 · 已解决

config_converter.py 函数移动导致的导入错误 正确性

gemini-code-assist[bot] 提示移动 get_hf_rope_theta 函数后,config_converter.py 中缺少导入,可能导致 NameError。

结论:需添加导入语句或确保函数可用,基于 commit 历史可能已修复。 · partially resolved

风险与影响

技术风险包括:

1) 回归风险:transformers和vLLM版本升级可能引入未预见的bug,影响模型训练和推理流程,特别是在MoE权重格式变更(如Qwen3.5-MoE)时。
2) 兼容性风险:模型代码中对rope_parameters的处理可能不完全,导致RoPE计算错误。
3) 性能风险:Docker镜像更新和依赖调整可能增加构建时间或运行时开销。
4) 安全风险:依赖升级可能引入新漏洞,需后续监控。

影响范围:用户(开发者)将受益于更稳定的CI流水线,减少测试失败;系统层面确保所有端到端测试通过,提升开发效率;团队需适应新依赖版本,但长期看降低维护负担。影响程度中等,涉及多个CI作业和模型模块,但未改变核心算法逻辑。

依赖版本升级 模型兼容性变更 CI 配置变更

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论