Prhub

#51153 [Bugfix] Enable chunked prefill for qwen3.5-0.8B ppl test

原始 PR 作者 music-dino 合并时间 2026-08-05 21:21 文件变更 1 提交数 2 评论 2 代码增减 +3 / -0

执行摘要

为 Qwen3.5 PPL 测试补 enable_chunked_prefill 修复 CI 失败

PR body 明确说明:PR #50991 默认启用 prefix caching 并将默认模式改为 align,同时更新了多个 hybrid 模型测试以同步启用 chunked prefill,但遗漏了 models/language/generation_ppl_test/test_qwen.py::test_ppl[model_info2],导致该测试在 nightly 上失败。失败时抛出 pydantic_core.ValidationError,提示 Chunked prefill is required for mamba cache mode 'align',即 hybrid 模型在默认 align 缓存模式下必须启用 chunked prefill 才能启动。

本 PR 是一次很小的测试修复,不需要精读;但值得留意的是它揭示了 PR #50991 的默认行为变更对 hybrid 模型测试配置的连带影响。若有多个 hybrid 模型测试依赖 align 缓存模式,建议后续用统一的 fixture 或公共配置管理 enable_chunked_prefill,避免每次都要按模型手动硬编码。

讨论亮点

Review 过程没有产生实质性技术讨论:claude[bot] 因 PR 来自 fork 自动禁用了 review,并提示维护者可评论 @claude review 触发一次性人工 review,未给出代码意见;noooop 无评论直接 APPROVED,并触发 /ci run 验证 CI(github-actions[bot] 确认 Buildkite CI #82485 已启动)。整个变更没有设计争议或未解决疑虑。

实现拆解

  1. 定位失败根因:PR #50991 将 prefix caching 默认开启并把缓存模式默认值改为 align;align 模式对 hybrid 模型的 mamba 缓存有强制约束,必须启用 chunked prefill。test_qwen.py 中的 Qwen3.5-0.8B 用例没有同步该配置,于是启动时校验失败。
  2. 修改测试配置:在 tests/models/language/generation_ppl_test/test_qwen.py 的 test_ppl 中,针对 Qwen/Qwen3.5-0.8B 分支追加 vllm_extra_kwargs["enable_chunked_prefill"] = True,与 PR #50991 中对其他 hybrid 模型测试的更新保持一致;改动共 +3 行(含注释)。
  3. 验证与 CI:本地运行 pytest -v -s models/language/generation_ppl_test/test_qwen.py::test_ppl[model_info2] 从失败转为通过;维护者 noooop 批准后触发 /ci run,Buildkite CI #82485 启动验证。

配套说明:本次仅涉及测试文件,无生产代码、配置或部署改动。

文件 模块 状态 重要度
tests/models/language/generation_ppl_test/test_qwen.py 测试脚本 modified 3.56

关键符号

test_ppl

关键源码片段

tests/models/language/generation_ppl_test/test_qwen.py test-coverage

唯一变更文件:为 Qwen3.5-0.8B 的 PPL 测试追加 enable_chunked_prefill=True,修复 PR #50991 将默认缓存模式改为 align 后触发的验证错误。

# tests/models/language/generation_ppl_test/test_qwen.py
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
​
import pytest
​
from tests.models.utils import GenerateModelInfo
​
from .ppl_utils import wikitext_ppl_test
​
MODELS = [
    # for Qwen3
    GenerateModelInfo("Qwen/Qwen3-0.6B", hf_ppl=23.864173889160156),
    GenerateModelInfo("Qwen/Qwen3-0.6B-FP8", hf_ppl=24.313045501708984),
    # for Qwen3.5
    GenerateModelInfo("Qwen/Qwen3.5-0.8B", hf_ppl=19.38858413696289),
]
​
​
@pytest.mark.parametrize("model_info", MODELS)
def test_ppl(hf_runner, vllm_runner, model_info: GenerateModelInfo):
    vllm_extra_kwargs = {}
    if model_info.name == "Qwen/Qwen3.5-0.8B":
        vllm_extra_kwargs["language_model_only"] = True
        # PR #50991 将 prefix caching 默认开启并将缓存模式默认值改为 align;
        # hybrid 模型在 align 模式下必须启用 chunked prefill,否则启动时报错。
        vllm_extra_kwargs["enable_chunked_prefill"] = True
​
    wikitext_ppl_test(
        hf_runner, vllm_runner, model_info, vllm_extra_kwargs=vllm_extra_kwargs
    )

评论区精华

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

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

风险与影响

风险极低:变更仅涉及单个测试文件中的参数补充,不触及生产代码路径,不会影响推理逻辑。需要注意两点:(1) 修复是按模型名硬编码,若其他 hybrid 模型测试(如 Qwen3.5 其他规模或类似 mamba 架构模型)存在相同遗漏,需要逐个排查;(2) 该测试依赖 enable_chunked_prefill 与默认 align 缓存模式的耦合,若未来 prefix caching 默认行为再次调整,此类测试配置需持续同步。

影响范围限于 nightly CI 的 Language Models Test (PPL) 任务:修复后 Qwen3.5-0.8B 用例恢复通过,CI 回归到绿色。对最终用户无影响,对团队的影响是消除了默认行为变更带来的测试回归,并为后续 hybrid 模型测试提供一致配置范本。

仅测试变更 同类用例可能遗漏

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论