Prhub

#49853 [CI] Fix speech correctness check rejecting improved WER

原始 PR 作者 taneem-ibrahim 合并时间 2026-07-26 14:24 文件变更 1 提交数 1 评论 0 代码增减 +6 / -1

执行摘要

修复 CI 中语音正确性测试的 WER 断言

在 Buildkite build #80224 中,Cohere 模型的 WER 为 11.698929,低于基线 11.92,但因 torch.testing.assert_close 的双向对称检查而失败。该 PR 旨在修复这一断言语义问题,使 CI 能够正确接受改进的 WER。

建议合并。该 PR 修复了测试断言语义,逻辑清晰,代码简洁,风险很低。

讨论亮点

无 review 讨论。PR 由维护者直接批准。

实现拆解

  1. test_transcription_api_correctness.pytest_wer_correctness 函数中,将 torch.testing.assert_close(wer, expected_wer, atol=1e-1, rtol=1e-2) 替换为单向上限比较。
  2. 计算最大允许 WER:max_wer = expected_wer + wer_atol + wer_rtol * abs(expected_wer)
  3. 使用 assert wer <= max_wer 进行断言,失败时输出清晰的错误信息。
  4. 保留与之前相同的容忍度和上限边界,确保仅改变方向。
  5. 有意识不修改长格式测试(test_long_audio_wer_correctness),因为未观察到失败。
文件 模块 状态 重要度
tests/entrypoints/speech_to_text/correctness/test_transcription_api_correctness.py 语音测试 modified 4.37

关键源码片段

tests/entrypoints/speech_to_text/correctness/test_transcription_api_correctness.py test-coverage

这是唯一变更的文件。将短格式 WER 断言从对称 `assert_close` 改为单向上限 `assert wer <= max_wer`。

# tests/entrypoints/speech_to_text/correctness/test_transcription_api_correctness.py
# 变更后:单向上限检查,避免因 WER 低于基线而误报
if expected_wer:
    wer_atol, wer_rtol = 1e-1, 1e-2
    # 按原始双向断言的公式计算最大允许 WER,保持上限一致
    max_wer = expected_wer + wer_atol + wer_rtol * abs(expected_wer)
    assert wer <= max_wer, (
        f"WER {wer:.6f} exceeds maximum allowed {max_wer:.6f} "
        f"(baseline {expected_wer:.6f})"
    )

评论区精华

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

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

风险与影响

低风险。变更仅修改一个测试函数中的断言逻辑,计算方式与之前的上限保持一致。不会影响生产代码或其它测试。唯一风险是如果长格式测试未来出现类似问题,需要单独处理。

仅影响短格式语音正确性 CI 测试。不再因 WER 优于基线而失败,使 CI 更可靠。对用户无影响,对系统无影响。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论