Prhub

#41102 [CI] Stabilize cpu offload compressed tensors test

原始 PR 作者 AndreasKaratzas 合并时间 2026-05-04 13:22 文件变更 2 提交数 1 评论 1 代码增减 +47 / -25

执行摘要

修复 CPU offload 压缩张量测试的不稳定性

Avoid flaky stochastic sampling in the compressed-tensors MoE CPU offload test. 通过禁用 temperature=1 的 seeded sampling 部分,消除随机性带来的测试不稳定。

该 PR 属于小型测试稳定性修复,适合快速合并。可关注后续是否需要对其他测试也应用类似模式。

讨论亮点

无 review 讨论。

实现拆解

  1. 修改 tests/utils.py 中的 _test_completion 函数:新增 include_seeded_sampling: bool = True 参数,当参数为 False 时跳过 seeded sampling 测试块。
  2. 修改 tests/utils.py 中的 compare_two_settingscompare_all_settings 函数:同样新增 include_seeded_sampling 参数并透传到 _test_completion,使得上层调用可以控制是否执行 seed 采样检测。
  3. 修改 tests/quantization/test_cpu_offload.py 中的 test_cpu_offload_compressed_tensors 测试:在调用 compare_two_settings 时传入 include_seeded_sampling=False,显式禁用不稳定 seed 采样部分,其余确定性检验(贪婪、token IDs、list、流式)保持不变。
文件 模块 状态 重要度
tests/utils.py 测试工具 modified 5.82
tests/quantization/test_cpu_offload.py CPU 卸载 modified 3.46

关键符号

_test_completion compare_two_settings compare_all_settings

关键源码片段

tests/utils.py test-coverage

核心修改文件:新增 `include_seeded_sampling` 参数,使 `_test_completion`、`compare_two_settings`、`compare_all_settings` 可选择性跳过 seed 采样测试,是测试稳定性的关键控制点。

def _test_completion(
    client: openai.OpenAI,
    model: str,
    prompt: str,
    token_ids: list[int],
    include_seeded_sampling: bool = True, # 新增:控制是否执行 seed 采样测试
):
    results = []
    # ... 其他确定性测试(greedy, token_ids, list, streaming)始终执行 ...
​
    if include_seeded_sampling:
        # 原来无条件的 seed 采样现在被包裹在条件判断中
        completion = client.completions.create(
            model=model, prompt=prompt, max_tokens=5, seed=33, temperature=1.0
        )
        results.append({"test": "seeded_sampling", ...})
​
        # 多 prompt 的 seed 采样
        completion = client.completions.create(
            model=model, prompt=[prompt, prompt], max_tokens=5, seed=33, temperature=1.0
        )
        results.append({"test": "seeded_sampling", ...})
​
    return results

评论区精华

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

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

风险与影响

低风险。仅影响测试辅助函数与单个测试用例,不涉及生产代码。修改后其他测试若默认使用 include_seeded_sampling=True,行为不变;没有回归风险。

影响范围局限于 test_cpu_offload_compressed_tensors 测试:移除了 seed 采样检测,减少因随机性导致的 CI 不稳定。其他测试不受影响。对用户和系统无影响。

无生产代码变更 测试重要性低

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论