Prhub

#23287 [CI][LoRA] Drop flaky all-None batch from multi-LoRA parity test

原始 PR 作者 fortunecookiee 合并时间 2026-04-21 05:43 文件变更 1 提交数 2 评论 2 代码增减 +0 / -16

执行摘要

移除多 LoRA 测试中不稳定的全 None 批次,修复 CI 随机失败。

PR body指出,测试test_ci_lora_models_multi_batch在CI中因全None批次(lora_paths=[None, None, None])的ROUGE-L分数漂移而随机失败。该批次仅验证基础模型生成对等性,并非LoRA行为测试,且已有test_generation_models.py覆盖相同功能。移除该批次可消除CI不稳定因素,避免因CUDA/驱动版本差异导致的脆弱性。

该PR变更简单直接,适合快速浏览以理解CI测试优化策略。重点关注测试用例设计的合理性:移除不提供特定功能信号的测试,避免CI脆弱性。

讨论亮点

Review中无实质性讨论,仅由Fridge003批准。PR body已详细阐述移除理由:全None批次不提供LoRA特定信号,且基础模型对等性已有其他测试覆盖。

实现拆解

  1. 移除全None批次生成逻辑:在python/sglang/test/lora_utils.pycreate_multiple_batch_test_samples函数中,删除原本在_use_aiter标志控制下添加的[None, None, None]测试用例。
  2. 清理无用导入:移除不再使用的get_bool_env_varis_hip导入。
  3. 保留核心测试覆盖:函数仍保留两个LoRA混合批次测试用例(如[None, lora_paths[0], lora_paths[1]][lora_paths[0], lora_paths[1], None]),确保LoRA多批次功能测试完整性。
  4. 无其他配套改动:未修改测试配置、部署或文档,仅调整测试数据生成逻辑。
文件 模块 状态 重要度
python/sglang/test/lora_utils.py LoRA 测试 modified 4.19

关键符号

create_multiple_batch_test_samples

关键源码片段

python/sglang/test/lora_utils.py test-coverage

唯一变更文件,移除了导致 CI 不稳定的测试用例生成逻辑。

def create_multiple_batch_test_samples(
    prompts: List[str], lora_adapter_paths: List[str]
):
    random.seed(42)
    # 移除了原本的导入:from sglang.srt.utils.common import get_bool_env_var, is_hip
    # 移除了 _use_aiter 标志及相关逻辑
​
    test_cases = [
        ([
            random.choice(prompts),
            random.choice(prompts),
            random.choice(prompts),
        ], [
            None,
            lora_adapter_paths[0],
            lora_adapter_paths[1],
        ]),
        # 保留其他 LoRA 混合批次用例,例如:
        ([
            random.choice(prompts),
            random.choice(prompts),
            random.choice(prompts),
        ], [lora_adapter_paths[0], lora_adapter_paths[1], None]),
    ]
    # 移除了原本在此处添加的 [None, None, None] 批次
    # 理由:该批次仅测试基础模型生成对等性,非 LoRA 行为,且已有其他测试覆盖
    return test_cases

评论区精华

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

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

风险与影响

低风险

  • 回归风险:移除的是非LoRA相关测试用例,不影响LoRA功能正确性验证。
  • 测试覆盖缺口:基础模型生成对等性测试仍由test_generation_models.py覆盖,无实质性缺口。
  • 兼容性:仅删除测试数据,不影响运行时或API。

对CI系统:减少因随机分数漂移导致的测试失败,提升CI稳定性。
对开发团队:简化测试维护,避免因环境差异(如CUDA版本)导致的脆弱断言。
对用户:无直接影响,LoRA功能行为不变。

测试覆盖调整

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论