Prhub

#41421 [Ray] Enable RayExecutorV2 by default

原始 PR 作者 jeffreywang-anyscale 合并时间 2026-05-05 12:27 文件变更 1 提交数 6 评论 2 代码增减 +1 / -2

执行摘要

默认启用 RayExecutorV2

PR body 明确指出目的在于修复 CI 步骤失败(Elastic EP Scaling Test),通过默认启用 RayExecutorV2 来绕过编译图 bug;同时,RayExecutorV2 本就是计划中的默认后端,旧版 RayExecutor 正在逐步弃用。

这是一个预期中的配置翻转,变更本身逻辑简单,但影响面广。建议阅读者关注后续是否有与 RayExecutorV2 相关的 bugfix 或性能报告,并确保自己的部署环境兼容新后端。团队应同步更新相关文档,明确告知用户弃用路径和回退方法。

讨论亮点

无明显讨论。评论仅来自机器人(Claude, Gemini)和合入者 NickLucche 的极简批准。

实现拆解

  1. 修改默认值:在 vllm/envs.py 中,将 VLLM_USE_RAY_V2_EXECUTOR_BACKEND 的默认值从 "0" 改为 "1"
  2. 删除 TODO 注释:移除了之前标记为 # TODO (jeffreywang): Enabled by default in vLLM 0.20.0. 的注释,表示该变更已按计划执行。
  3. CI 配置调整(推测):虽然 PR 本身仅改动了 envs.py,但 body 提及“Use RayExecutorV2 for EP tests”,可能需要在 Buildkite 配置中显式设置该环境变量以确保测试使用新后端;不过从提交历史看,首个 commit 的 message 即为“Use RayExecutorV2 for EP tests”,可能包含额外的 CI 配置变更,但最终合并时仅保留了 envs.py 的修改。
文件 模块 状态 重要度
vllm/envs.py 环境配置 modified 5.47

关键源码片段

vllm/envs.py core-logic

集中管理环境变量默认值的配置文件,本次变更的核心文件,修改了 `VLLM_USE_RAY_V2_EXECUTOR_BACKEND` 的默认值。

# vllm/envs.py 中相关片段
# 当该环境变量为 True 且 distributed_executor_backend="ray" 时,
# 使用 RayExecutorV2(基于 MQ)而不是旧版 RayDistributedExecutor(基于编译图)。
"VLLM_USE_RAY_V2_EXECUTOR_BACKEND": lambda: bool(
    int(os.getenv("VLLM_USE_RAY_V2_EXECUTOR_BACKEND", "1")) # 默认值从 "0" 改为 "1",默认启用 V2
),

评论区精华

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

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

风险与影响

回归风险:修改了涉及分布式执行器选择的全局默认值。如果用户环境中存在与 RayExecutorV2 不兼容的配置(如特定 Ray 版本、网络设置、安全策略),可能导致分布式推理启动失败。性能风险RayExecutorV2 基于 MQ 而非编译图,在部分场景下延迟或吞吐可能略有差异,但 PR 描述中未提供基准测试数据。兼容性风险:旧版 RayExecutor 的使用者需要显式设置 VLLM_USE_RAY_V2_EXECUTOR_BACKEND=0 以回退,可能因文档未及时更新导致困扰。

用户影响:所有使用 distributed_executor_backend="ray" 的用户都将自动切换到 RayExecutorV2。旧版用户如需保留原有行为需手动设置环境变量。系统影响:CI 中的弹性 EP 测试预计将稳定下来,减少 flaky 失败。团队影响:开发者需关注 RayExecutorV2 的稳定性报告,并推进旧版 RayExecutor 的正式弃用。

核心路径变更 缺少基准测试 默认行为变更

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论