Prhub

#21349 [CI] Reduce session correctness test to 30 turns to fix flakiness

原始 PR 作者 hnyls2002 合并时间 2026-03-25 09:56 文件变更 1 提交数 1 评论 1 代码增减 +7 / -2

执行摘要

将流式会话正确性测试的轮数从 150 减少到 30 以解决 flakiness。

PR body指出:'GPU floating-point non-determinism causes greedy decoding to diverge on long multi-turn contexts, leading to cascading mismatches',并引用失败的CI运行(链接:https://github.com/sgl-project/sglang/actions/runs/23518261034/job/68455993786?pr=21338)。这解决了测试flakiness问题,提高CI可靠性。

建议快速浏览此PR以理解测试flakiness的缓解策略,但无需深入分析代码逻辑。对于涉及GPU非确定性的测试设计有参考价值,可关注如何在测试中平衡覆盖与稳定性。

讨论亮点

该PR没有收到任何review评论,由作者直接合并,表明变更简单且被团队接受,无争议点。

实现拆解

仅修改了test/registered/sessions/test_session_latency.py文件。在test_streaming_session_correctness函数中,引入局部变量correctness_turns = 30,并将其作为num_turns参数传递给_run_concurrent_session方法,替换了硬编码的默认轮数设置。其他测试函数如test_regular_sessiontest_streaming_session未作改动,保持150轮。

文件 模块 状态 重要度
test/registered/sessions/test_session_latency.py 测试套件(sessions) modified 3.0

关键符号

test_streaming_session_correctness _run_concurrent_session

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

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

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

风险与影响

风险:减少测试轮数可能降低对长上下文场景的验证强度,隐藏潜在的浮点非确定性问题。具体到test_streaming_session_correctness函数,轮数减少后,可能无法充分捕获GPU计算在更长时间序列中的不匹配。此外,如果依赖此测试作为质量门控,可能引入未被检测到的回归。

影响:正面影响是提高CI测试的稳定性和可靠性,减少不必要的失败和重试,从而优化开发流程和资源使用。负面影响是测试覆盖略有降低,可能需要在未来通过其他方法(如增加容忍度或改进测试设计)增强长上下文验证。对用户无直接影响,仅影响内部测试过程。

测试覆盖降低

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论