Prhub

#22140 [Fix] Fix nightly tests

原始 PR 作者 Fridge003 合并时间 2026-04-05 17:26 文件变更 5 提交数 5 评论 2 代码增减 +12 / -12

执行摘要

修复夜间测试的多个不稳定和配置问题,提升 CI 可靠性。

根据PR body,动机是:'Unregister test_lora_qwen3.py for cuda, since it's flaky and has been covered by some other tests... Fix register_custom_op import failure on hardware other than cuda... Lower threshold for nemotron 3 super nightly test... Skip qwen3 cp test on b200... Change dpsk-r1-fp4 nightly test to dpsk-v3-fp4 test'

建议关注CI测试维护的工程师精读此PR,了解如何识别和修复不稳定测试;对于核心模型或内核开发者,可快速浏览以知晓测试环境变化。

讨论亮点

无review评论,PR由作者Fridge003直接合并,表明变更被视为小修复且无争议。

实现拆解

实现包括五个主要变更:1. 在deepseek_v2.py中调整import语句,确保register_custom_op只在CUDA条件下导入,避免非CUDA硬件失败。2. 在test_nvidia_nemotron_3_super_nightly.py中将GSM8K_BASELINE阈值从0.96降至0.935。3. 在test_qwen3_235b.py中添加@unittest.skipIf(is_blackwell_system(), ...)装饰器跳过B200上的cp测试。4. 从test_lora_qwen3.py中移除register_cuda_ci调用,取消该测试的CUDA注册。5. 重命名并更新test_dpsk_r1_fp4_4gpu_perf.py为test_dpsk_v3_fp4_4gpu_perf.py,更改模型路径和测试配置以使用DeepSeek V3 FP4。

文件 模块 状态 重要度
python/sglang/srt/models/deepseek_v2.py models modified 5.0
test/registered/lora/test_lora_qwen3.py test modified 4.0
test/registered/8-gpu-models/test_nvidia_nemotron_3_super_nightly.py test modified 4.0
test/registered/8-gpu-models/test_qwen3_235b.py test modified 4.0
test/registered/perf/test_dpsk_v3_fp4_4gpu_perf.py test renamed 5.0

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

关键符号

register_custom_op GSM8K_BASELINE test_qwen3_235b_fp8_cp TestLoRAQwen3 TestDeepseekV3FP4Unified

评论区精华

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

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

风险与影响

风险包括:1. 导入修复可能引入条件编译错误,导致在特定硬件上运行时失败;具体在deepseek_v2.py中,需确保非CUDA路径正确。2. 阈值降低从0.96到0.935可能掩盖模型性能下降问题,需验证Nemotron 3超级模型的实际精度。3. 跳过B200上的Qwen3 cp测试可能遗漏该硬件上的兼容性问题。4. 取消LoRA测试注册可能减少测试覆盖,尽管声称已被其他测试覆盖,但需确认无遗漏。

影响范围:对最终用户无直接影响,因为是内部测试变更。对系统:提高CI测试的稳定性和可靠性,减少因flaky测试导致的失败和资源浪费。对团队:简化测试维护,通过移除不稳定测试和调整阈值降低CI噪音,但需监控调整后的测试有效性。

硬件条件导入错误 阈值调整可能掩盖问题 测试覆盖减少 硬件特定跳过

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

本PR修复了SGLang仓库夜间测试的多个不稳定和配置问题,包括取消不稳定测试注册、修复导入失败、调整精度阈值和更新测试模型,旨在提升CI流程的可靠性。

功能与动机

动机源于测试套件中的不稳定性和硬件兼容性问题。PR body明确指出:"Unregister test_lora_qwen3.py for cuda, since it's flaky and has been covered by some other tests... Fix register_custom_op import failure on hardware other than cuda... Lower threshold for nemotron 3 super nightly test... Skip qwen3 cp test on b200... Change dpsk-r1-fp4 nightly test to dpsk-v3-fp4 test"。

实现拆解

  • deepseek_v2.py: 调整import语句,确保register_custom_op只在CUDA条件下导入,避免非CUDA硬件失败。
    python from sglang.srt.utils.custom_op import register_custom_op if _use_aiter:
  • test_nvidia_nemotron_3_super_nightly.py: 将GSM8K_BASELINE阈值从0.96降至0.935。
    python -GSM8K_BASELINE = 0.96 +GSM8K_BASELINE = 0.935
  • test_qwen3_235b.py: 添加@unittest.skipIf(is_blackwell_system(), ...)装饰器跳过B200上的cp测试。
  • test_lora_qwen3.py: 移除register_cuda_ci调用,取消CUDA测试注册。
  • test_dpsk_v3_fp4_4gpu_perf.py: 重命名文件并更新配置,使用DeepSeek V3 FP4模型替换R1版本。

评论区精华

无review评论,PR由作者直接合并,表明变更被视为小修复且无争议。

风险与影响

风险:

  • 导入修复可能引入条件依赖错误,需验证非CUDA硬件路径。
  • 阈值降低可能掩盖模型性能问题,需监控实际精度。
  • 跳过B200测试可能遗漏硬件兼容性问题。
  • 取消LoRA测试注册可能减少覆盖,需确认其他测试充分。

影响:

  • 对用户无直接影响。
  • 提升CI稳定性,减少资源浪费。
  • 团队需适应测试配置变化。

关联脉络

与近期PR相关:

  • PR #22137: 删除不稳定测试,类似策略减少CI flaky。
  • PR #22100: 调整测试阈值,同为修复不稳定测试。
  • PR #22141: 优化CI工作流,提升测试效率。

这些PR共同反映了团队在持续改进测试可靠性和CI流程。

参与讨论