执行摘要
修复 CPU offload 压缩张量测试的不稳定性
Avoid flaky stochastic sampling in the compressed-tensors MoE CPU offload test. 通过禁用 temperature=1 的 seeded sampling 部分,消除随机性带来的测试不稳定。
该 PR 属于小型测试稳定性修复,适合快速合并。可关注后续是否需要对其他测试也应用类似模式。
无 review 讨论。
Avoid flaky stochastic sampling in the compressed-tensors MoE CPU offload test. 通过禁用 temperature=1 的 seeded sampling 部分,消除随机性带来的测试不稳定。
该 PR 属于小型测试稳定性修复,适合快速合并。可关注后续是否需要对其他测试也应用类似模式。
无 review 讨论。
tests/utils.py 中的 _test_completion 函数:新增 include_seeded_sampling: bool = True 参数,当参数为 False 时跳过 seeded sampling 测试块。tests/utils.py 中的 compare_two_settings 和 compare_all_settings 函数:同样新增 include_seeded_sampling 参数并透传到 _test_completion,使得上层调用可以控制是否执行 seed 采样检测。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 |
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 链接,后续同步到相关引用后会出现在这里。
参与讨论