执行摘要
此PR通过将测试test_eagle标记为预期失败来临时修复CI中的flaky问题,针对EAGLE + DP > 1与异步spec decode组合的错误输出问题,但未解决根本原因,旨在稳定CI流程。
功能与动机
动机源于issue #31913报告的flaky测试,作者尝试避免CI失败干扰开发。PR body中提到这是试探性修复,并讨论禁用async with DP>1可能太严厉,但希望获取更多上下文确认是否需要此限制。
实现拆解
实现集中在单个文件tests/v1/distributed/test_eagle_dp.py中:
- 添加新的
@pytest.mark.xfail装饰器,条件为not current_platform.is_rocm(),原因字符串说明EAGLE + DP > 1产生错误输出且root cause在调查中。
- 更新现有ROCm相关xfail装饰器的原因字符串。
代码变更示例:
@pytest.mark.xfail(
not current_platform.is_rocm(),
reason="EAGLE + DP > 1 produces wrong outputs when async spec decode "
"correction is active. Root cause under investigation. "
"See: https://github.com/vllm-project/vllm/issues/31913",
strict=False,
)
评论区精华
review讨论中突出两点:
- 设计权衡:MatthewBonanni在issue评论中表示禁用async spec decode for DP > 1可能不正确,因为测试flaky可能源于batch invariance。> MatthewBonanni: "Like you mention, I don't think disabling async spec decode for DP > 1 is the right move..."
- 文档建议:gemini-code-assist[bot]建议在
gpu_model_runner.py中添加注释和TODO以记录限制并跟踪未来工作,但此建议未在本PR中实施。
风险与影响
- 风险:跳过测试可能掩盖底层逻辑问题(如EAGLE与异步spec decode的组合bug),导致未发现的回归;未解决root cause可能影响系统正确性。
- 影响:短期提升CI稳定性,减少false失败信号;长期需关注根本修复,否则可能延迟相关功能开发和测试。
关联脉络
与此PR紧密相关的是PR #38584,它同样处理Eagle DP测试的flaky行为,通过禁用AOT调度来修复,表明该测试区域存在持续问题。结合近期历史PR,vLLM项目在v1模块和speculative decoding功能上有较多测试和修复工作,此PR是临时措施,可能为后续根本性修复铺路。
参与讨论