Prhub

#51177 [CI Bug] Fix `Chunked prefill is required for mamba cache mode 'align'.`

原始 PR 作者 yewentao256 合并时间 2026-08-06 02:33 文件变更 1 提交数 2 评论 6 代码增减 +1 / -0

执行摘要

修复 Jamba 测试缺 chunked prefill 导致的 CI 失败

Buildkite CI 构建 #82455 报错:Assertion failed, Chunked prefill is required for mamba cache mode 'align'。该断言来自 VllmConfig 的 pydantic 校验,根因是 ai21labs/Jamba-tiny-random 模型的 mamba 缓存模式 align 必须配合 chunked prefill,而测试启动引擎时未开启该选项。

此 PR 为一行式测试修复,无需精读源码。可关注的要点是 mamba 缓存模式 align 与 chunked prefill 的硬约束,后续若新增 Mamba 架构模型测试应默认带上 enable_chunked_prefill=True

讨论亮点

Review 讨论极少且全部通过。AndreasKaratzas 评论 LGTM I was about to post the same thing 😅,表明修复方向直观、是社区预期中的改动;noooop 与 mgoin 均直接 APPROVED,未提出额外疑虑。另有多条 /ci run/ci retry 指令用于触发和重试 Buildkite CI,最终验证通过。

实现拆解

变更入口为 tests/quantization/test_experts_int8.py 中的 test_model_experts_int8_startup,实现步骤:

  1. vllm_runner 构造参数中加入 enable_chunked_prefill=True。该参数直接传入 VllmConfig,使 mamba 缓存模式 align 的断言校验通过。
  2. 无源码、配置或 schema 改动;测试行为上,Jamba 模型现在以 chunked prefill 方式运行,与 mamba 缓存模式的约束对齐。
  3. 该修复只影响此单测的启动配置,不改变专家 INT8 量化(experts_int8)本身的校验逻辑。
文件 模块 状态 重要度
tests/quantization/test_experts_int8.py 量化测试 modified 3.46

关键符号

test_model_experts_int8_startup

关键源码片段

tests/quantization/test_experts_int8.py test-coverage

唯一的变更文件,在 `vllm_runner` 中增加 `enable_chunked_prefill=True`,解决 Jamba mamba 缓存模式 `align` 的 CI 校验失败。

@pytest.mark.skipif(
    not is_quant_method_supported("experts_int8"),
    reason="ExpertsInt8 is not supported on this GPU type.",
)
@pytest.mark.parametrize("model", MODELS)
@pytest.mark.parametrize("dtype", ["bfloat16"])
@pytest.mark.parametrize("max_tokens", [4])
def test_model_experts_int8_startup(
    hf_runner,
    vllm_runner,
    example_prompts,
    model: str,
    dtype: str,
    max_tokens: int,
) -> None:
    model_info = HF_EXAMPLE_MODELS.find_hf_info(model)
    model_info.check_transformers_version(on_fail="skip")
​
    with vllm_runner(
        model,
        dtype=dtype,
        enforce_eager=True,
        quantization="experts_int8",
        # Jamba 的 mamba cache mode 为 "align" 时,VllmConfig 强制要求
        # 开启 chunked prefill,否则 pydantic 校验直接断言失败
        enable_chunked_prefill=True,
    ) as vllm_model:
        vllm_model.generate_greedy(example_prompts, max_tokens)

评论区精华

修复方向获得 Reviewer 认可 other

AndreasKaratzas 评论 `LGTM I was about to post the same thing 😅`,表达修复方案与自身预期一致;noooop 与 mgoin 直接 APPROVED。

结论:所有人工 review 均通过,无分歧。 · 已解决

CI 触发与重试验证 other

作者多次使用 `/ci run` 与 `/ci retry` 触发 Buildkite CI #82522 与 #82536,验证修复效果。

结论:CI 通过后 PR 被合入 main。 · 已解决

风险与影响

风险极低,属于测试配置修复:

  • 该测试现在强制启用 chunked prefill,可能掩盖未来 mamba 缓存模式对 chunked prefill 约束放宽后的问题,但当前约束仍有效。
  • 仅影响 tests/quantization/test_experts_int8.py,不涉及任何生产代码路径。
  • 若未来其它 mamba 相关测试出现同类报错,需要同步补充 enable_chunked_prefill

影响范围限定为 CI 测试通道:

  • 修复 Buildkite CI 上 experts_int8 启动测试的回归失败,恢复测试稳定性。
  • 对最终用户无运行时行为影响。
  • 对测试团队有提示意义:涉及 Mamba/Jamba 模型缓存模式 align 的测试均需显式开启 chunked prefill。
测试配置变更 Mamba 约束耦合

关联 Issue

#19 Use FP32 for log probabilities

完整报告

参与讨论