执行摘要
CI 测试中显式关闭推测解码 runner
在 AMD CI 运行中,参数化的 max-length 测试由于引擎未显式关闭,导致后续测试可能受前一个测试的引擎状态影响(如 GPU 内存不足或配置污染)。PR body 引用了 Buildkite 日志链接,表明需要显式关闭引擎以隔离测试环境。
值得合入 — 改进 CI 健壮性,无副作用。
无 review 讨论。
在 AMD CI 运行中,参数化的 max-length 测试由于引擎未显式关闭,导致后续测试可能受前一个测试的引擎状态影响(如 GPU 内存不足或配置污染)。PR body 引用了 Buildkite 日志链接,表明需要显式关闭引擎以隔离测试环境。
值得合入 — 改进 CI 健壮性,无副作用。
无 review 讨论。
test_ngram_max_len:函数签名新增 vllm_runner 参数,将 LLM(...) 调用替换为 with vllm_runner(...) as runner:,所有生成操作通过 runner.llm.generate() 完成。test_eagle_max_len:同样新增 vllm_runner 参数,将 LLM(...) 调用嵌入 vllm_runner 上下文管理器,生成逻辑相应调整。from vllm import LLM 导入,依赖仅由 vllm_runner 提供。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
tests/v1/spec_decode/test_max_len.py |
测试 | modified | 5.33 |
tests/v1/spec_decode/test_max_len.py
test-coverage
唯一改动文件;使用 vllm_runner fixture 替换直接 LLM 实例化,确保引擎在参数化测试间被正确关闭。
# 变更后:test_ngram_max_len 使用 vllm_runner 上下文管理器
# 确保引擎在每个参数化实例后释放,防止资源泄露
@pytest.mark.parametrize("num_speculative_tokens", [1, 3, 10])
def test_ngram_max_len(num_speculative_tokens: int, vllm_runner):
with vllm_runner(
"facebook/opt-125m",
trust_remote_code=False,
max_model_len=100,
enable_chunked_prefill=None,
enforce_eager=True, # For faster initialization.
speculative_config={
"method": "ngram",
"prompt_lookup_max": 5,
"prompt_lookup_min": 3,
"num_speculative_tokens": num_speculative_tokens,
},
) as runner:
sampling_params = SamplingParams(max_tokens=100, ignore_eos=True)
runner.llm.generate(_PROMPTS, sampling_params)
# 变更后:test_eagle_max_len 同样使用 vllm_runner 上下文管理器
@pytest.mark.parametrize("num_speculative_tokens", [1, 3, 10])
@pytest.mark.parametrize("attn_backend", get_attn_backend_list_based_on_platform())
def test_eagle_max_len(
monkeypatch: pytest.MonkeyPatch,
num_speculative_tokens: int,
attn_backend: str,
vllm_runner,
):
if attn_backend == "ROCM_AITER_FA" and current_platform.is_rocm():
monkeypatch.setenv("VLLM_ROCM_USE_AITER", "1")
with vllm_runner(
"meta-llama/Meta-Llama-3-8B-Instruct",
trust_remote_code=False,
enable_chunked_prefill=None,
enforce_eager=True,
speculative_config={
"method": "eagle",
"model": "yuhuili/EAGLE-LLaMA3-Instruct-8B",
"num_speculative_tokens": num_speculative_tokens,
"max_model_len": 80,
},
max_model_len=200,
attention_config={"backend": attn_backend},
) as runner:
# ... 测试逻辑不变
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
风险极低:纯测试变更,不影响生产代码;仅修改 fixture 使用方式,保持测试语义不变。
影响局限在 CI 测试阶段,特别是 AMD CI 上的 max-length 推测解码测试,提高了测试隔离性和可靠性。对其他硬件平台和测试无影响。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论