执行摘要
本PR将流式会话正确性测试的轮数从150减少到30,以解决由GPU浮点非确定性引起的CI测试flakiness,提高测试稳定性,同时保持其他延迟测试不变。
功能与动机
动机是解决测试flakiness问题。PR body明确指出:“GPU floating-point non-determinism causes greedy decoding to diverge on long multi-turn contexts, leading to cascading mismatches”,并引用了一个失败的CI运行。这表明在长上下文测试中,浮点计算的非确定性导致输出不匹配,因此需要调整测试参数来缓解此问题。
实现拆解
实现非常简单,仅修改了一个文件:test/registered/sessions/test_session_latency.py。关键改动如下:
- 在
test_streaming_session_correctness函数中,引入局部变量correctness_turns = 30。
- 将
_run_concurrent_session调用中的num_turns参数设为该变量,例如:
python
reg = self._run_concurrent_session(
streaming=False, num_concurrent=1, num_turns=correctness_turns
)
- 其他测试函数如
test_regular_session和test_streaming_session保持150轮不变,确保延迟测试不受影响。
评论区精华
该PR没有收到任何review评论,由作者直接合并,表明变更被认为直接且必要,无技术争议或设计权衡讨论。
风险与影响
风险:减少测试轮数可能降低对长上下文场景的验证强度,潜在隐藏浮点非确定性问题。具体到test_streaming_session_correctness函数,轮数减少后,可能无法充分捕获GPU计算在更长时间序列中的不匹配,从而遗漏潜在错误。
影响:正面影响是CI测试更稳定,减少不必要的失败和资源浪费;负面影响是测试覆盖略有降低,可能需要在未来通过其他方式(如增强测试设计或增加容忍度)来弥补。
关联脉络
与此PR相关的其他CI优化PR包括:
- PR 21305:增加缓存刷新超时,提升CI稳定性。
- PR 21330:默认启用failfast,优化测试执行以减少不稳定测试的干扰。
这些PR共同反映了团队对CI测试可靠性的持续改进趋势,旨在减少flakiness和提高开发效率。
参与讨论