Prhub

#49244 [Misc] Remove old now unsupported `max_num_partial_prefills` and `max_long_partial_prefills`

原始 PR 作者 NickLucche 合并时间 2026-07-21 16:52 文件变更 3 提交数 2 评论 2 代码增减 +4 / -60

执行摘要

移除过期的预填配置字段

PR 说明这些字段是 V0/V1 混合期遗留的产物,在 V1 中从未被启用(#13726 明确拒绝),V0 移除后成为死配置,只能触发 UnsupportedFeatureError。清理它们可以减小 API 面、降低用户疑惑。

值得合并,清理遗留的死代码可以减少 API 误导。建议在 release notes 中注明这两个 CLI 参数已被移除。

讨论亮点

评论中 noooop 表示虽然个人认为该功能有用,但既然长期未重新启用,同意删除这两个配置字段。无其他争论。

实现拆解

  1. 删除字段定义和校验:在 vllm/config/scheduler.pySchedulerConfig 中移除 max_num_partial_prefillsmax_long_partial_prefills 两个字段,并删除 __post_init__verify_max_model_len 中相关的条件逻辑和校验。
  2. 清理 CLI 参数:在 vllm/engine/arg_utils.pyEngineArgs 中移除对应的类属性、add_cli_args 中的两个 --max-num-partial-prefills--max-long-partial-prefills 参数注册,以及在 create_engine_config 中向 SchedulerConfig 传递这两个参数的代码。
  3. 移除禁止检查:删除 _check_feature_supported 中针对这两个字段的非默认值检查(_raise_unsupported_error)。
  4. 调整测试:在 tests/lora/test_worker.py 中移除 SchedulerConfig 构造函数中 max_num_partial_prefills=32 的传参(因为字段已不存在)。
  5. 无功能变化:由于这些字段此前已无实际使用者,变更不会影响现有行为。
文件 模块 状态 重要度
vllm/config/scheduler.py 调度器配置 modified 7.16
vllm/engine/arg_utils.py 引擎参数 modified 6.49
tests/lora/test_worker.py 测试 modified 3.46

关键符号

verify_max_model_len create_engine_config _check_feature_supported add_cli_args

关键源码片段

vllm/config/scheduler.py core-logic

核心配置文件,移除了两个字段及相关校验逻辑,是主要变更所在。

# 删除的字段(原位置约在第 70-78 行):
# max_num_partial_prefills: int = Field(default=1, ge=1)
# max_long_partial_prefills: int = Field(default=1, ge=1)# __post_init__ 中删除的块(原位置约在第 257-268 行):
# if self.max_num_partial_prefills > 1:
# if self.long_prefill_token_threshold == 0:
# self.long_prefill_token_threshold = int(max_model_len * 0.04)
# logger.info("...")# verify_max_model_len 中删除的校验(原位置约在第 298-311 行):
# if self.max_num_partial_prefills > 1:
# if not self.enable_chunked_prefill:
# raise ValueError(...)
# if self.long_prefill_token_threshold > max_model_len:
# raise ValueError(...)
# if self.max_long_partial_prefills > self.max_num_partial_prefills:
# raise ValueError(...)

评论区精华

功能是否应保留 设计

noooop 表示虽然个人认为该功能有用,但长期未重新启用,同意删除。

结论:同意删除两个配置字段。 · 已解决

风险与影响

风险极低。这些字段在 V1 中已无消费者,仅作为死参数存在。删除后,任何尝试使用它们的代码会直接报属性错误,而非静默忽略,反而更清晰。

直接影响:使用 --max-num-partial-prefills--max-long-partial-prefills CLI 参数的用户会收到 argparse 错误。间接影响:清理代码库,降低维护成本。

CLI 参数移除 向后兼容性

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论