#271·SkillOpt

assign_splits 自己的非空值保证在每个真实任务都映射到测试时不会触发

作者: AmirF194创建于 2026年9月6日更新于 2026年9月10日

`skillopt_sleep/mine.py` 中的 `assign_splits` 在自己的注释中明确指出:"保证当我们有 >=2 个真实任务时,val(门)不为空",但存在一个漏洞: `_promote_one` 只从 `train`(用于补充 val)或从 `val`(用于补充 train)中提取数据,从未从 `test` 中提取数据。如果每个真实任务的哈希桶都落在 `[val_cut, test_cut)` 之间,那么 `train` 和 `val` 都会为空,因此两个保证调用都没有可推进的内容,并默默地执行无操作。每个夜间批次都会挖掘 N 个真实任务,全部都会进入 `test`,并且 `run_sleep_cycle` 会以 `gate_action='reject'`、`edits=0` 结束,没有错误,没有警告,`holdout_leaked` 也不会标记它。

内容来源: microsoft/SkillOpt