数据源可能暂停更新:最后一次成功检查是 UTC,距今已超过 3 小时。页面上的时间仍按官方原帖计算,但最近几小时的新公告可能还没收录——以官方账号为准。
Codex 重置概率回测:24 小时 / 48 小时,走查真实历史
本页不是简单展示一个百分比,而是把几种候选算法放到真实历史数据上逐步前推验证:只用「当时已经知道」的信息做预测,对比预测和实际发生的差距(Brier 分数,越低越好),选出真正经得起验证的模型再发布——方法参照第三方独立基准 codex-reset-benchmark 的目标事件定义和检查点规则。
方法
- 检查点:每天 00:00、06:00、12:00、18:00 UTC 四个时刻,与上述第三方基准一致。
- 目标事件:全员硬重置(含 global 与 global_paid 两种覆盖范围),不含储备重置(banked)、个人滚动窗口恢复——对应本站
event_kind() == "regular",与该基准「qualifying public reset event」定义等价。 - 只用检查点之前已知的信息:从第 6 个历史事件之后开始(这样至少有 5 个完整间隔),每个检查点只用「该时刻之前」发生的事件建模,逐步前推模拟到今天,从不用到未来数据。
- 时间戳近似:真实数据里 0/53 条「regular」事件只记录了日期、没有具体时刻,这些事件用「当天 12:00 UTC」代替真实发生时刻。这意味着已等待天数和窗口是否命中,在这些事件附近可能有最多约 12 小时的误差——这是数据本身的限制,不是算法的限制,如实写在这里。
- 只回测 Codex:Claude 历史事件数太少(历史间隔仅个位数),回测结论对它意义不大;
/api/forecast?product=claude仍会输出概率,但不附带经过验证的 Brier 分数。
候选模型与全部结果(不藏差的)
下表是 1189 个可结算的历史检查点(2026-10-14 为止)上,每个候选模型的表现。「弃权」的模型(会员本站现有算法就是这一种)只在给出数字时才计入分数,覆盖率单独列出;其余模型从不弃权。
24h 窗口(1189 个可结算检查点)
| 模型 | Brier ↓ | Log loss | 样本数 | 覆盖率 |
|---|---|---|---|---|
| climatology(历史频率基线,全样本) ← 发布模型 | 0.1284 | 0.5855 | 1189 | 100% |
| empirical_guarded(本站现有算法,护栏版,会弃权) | 0.1629 | 1.2621 | 854 | 71.8%(854/1189) |
| climatology(与上一行同一弃权后子集,公平对比) | 0.1542 | 0.5735 | 854 | 100% |
| empirical_shrunk(α=2,窗口 30 个间隔) | 0.134 | 0.5868 | 1189 | 100% |
| empirical_shrunk(α=5,窗口 30 个间隔) | 0.1316 | 0.5644 | 1189 | 100% |
| empirical_shrunk(α=10,窗口 30 个间隔) | 0.1301 | 0.5536 | 1189 | 100% |
| empirical_shrunk_fullhist(α=2,全历史间隔,无窗口) | 0.1344 | 0.5848 | 1189 | 100% |
| empirical_shrunk_fullhist(α=5,全历史间隔,无窗口) | 0.132 | 0.565 | 1189 | 100% |
| empirical_shrunk_fullhist(α=10,全历史间隔,无窗口) | 0.1306 | 0.5551 | 1189 | 100% |
48h 窗口(1185 个可结算检查点)
| 模型 | Brier ↓ | Log loss | 样本数 | 覆盖率 |
|---|---|---|---|---|
| climatology(历史频率基线,全样本) ← 发布模型 | 0.1938 | 0.5704 | 1185 | 100% |
| empirical_guarded(本站现有算法,护栏版,会弃权) | 0.2488 | 1.1561 | 850 | 71.7%(850/1185) |
| climatology(与上一行同一弃权后子集,公平对比) | 0.2267 | 0.6476 | 850 | 100% |
| empirical_shrunk(α=2,窗口 30 个间隔) | 0.2075 | 0.6162 | 1185 | 100% |
| empirical_shrunk(α=5,窗口 30 个间隔) | 0.2026 | 0.5966 | 1185 | 100% |
| empirical_shrunk(α=10,窗口 30 个间隔) | 0.1993 | 0.5858 | 1185 | 100% |
| empirical_shrunk_fullhist(α=2,全历史间隔,无窗口) | 0.2092 | 0.6199 | 1185 | 100% |
| empirical_shrunk_fullhist(α=5,全历史间隔,无窗口) | 0.2043 | 0.6009 | 1185 | 100% |
| empirical_shrunk_fullhist(α=10,全历史间隔,无窗口) | 0.2009 | 0.5899 | 1185 | 100% |
发布模型与理由
24h:发布模型是 climatology(Brier 0.1284)。
我们尝试的所有不弃权模型,全样本 Brier 都没有优于 climatology 基线(0.1284)——如实报告这个结果,不硬选一个「看起来更聪明」但实际更差的模型,所以发布模型就是 climatology 本身。
48h:发布模型是 climatology(Brier 0.1938)。
我们尝试的所有不弃权模型,全样本 Brier 都没有优于 climatology 基线(0.1938)——如实报告这个结果,不硬选一个「看起来更聪明」但实际更差的模型,所以发布模型就是 climatology 本身。
这和这次任务背景里提到的现象一致:至少有一个同类站点的「更复杂」模型(越等越该到、加暗示帖权重)实测比「每次都报一个历史平均概率」的基线还差。基线不容易打败,不代表基线就是真相,只代表这几种更复杂的写法在这份数据上没有帮上忙。
站内首页/产品页的重置概率行自 2026-09-23 起也改用该发布模型(climatology)——本页选出的模型不只是用在 /api/forecast 上,也是首页/产品页「24 小时内/48 小时内/7 天内」三个百分比的唯一来源,不再使用按已等待天数条件化的旧算法,详见 重置概率算法说明。
局限
- 样本量小:Codex 历史「regular」事件只有 1189 个可结算的 24h 检查点,48h 略少;换一段更长的历史,结论可能不同。
- 官方节奏会变:两家官方都从未承诺过重置节奏,历史频率不代表未来会一样。
- 重置常和发布/故障相关,不是纯随机事件:新模型上线、故障恢复、里程碑庆祝都会触发额外重置,这类原因不会体现在纯粹的时间间隔统计里。
- 时间戳近似(见上方「方法」)会在数据边界附近引入误差。
- 这是实验性估算,不是预测;两家官方从未承诺过重置节奏。
实时接口
GET /api/forecast(默认 Codex)与 GET /api/forecast?product=claude 用同一套发布模型,按请求时刻实时计算,返回字段:
probabilities.raw_24h/raw_48h:0–1 之间的概率(fraction)。hours_since_last:距上一次「regular」重置已经过去多少小时。sample_n:用来估算的历史间隔个数。backtest:本页回测结果的精简版(仅 Codex;brier_24h/brier_48h/climatology_brier_24h/climatology_brier_48h/cases/as_of),由构建期写入,不在每次请求时重新跑回测。method_url:指回本页。
CORS 开放(Access-Control-Allow-Origin: *),无需密钥,响应带 X-Robots-Tag: noindex(数据接口本身不参与搜索收录,本页参与)。字段详情、curl/Python/JS 示例见 /api/ 文档页。
常见问题
这个回测是怎么跑的?
从真实历史第 6 个 Codex「regular」重置事件之后开始,每天 00/06/12/18 UTC 四个检查点,每个检查点只用「那一刻之前」已经发生的事件去预测未来 24 小时、48 小时内会不会有新的重置,再和真实是否发生对比算 Brier 分数——从不用到未来数据,也不会拿全部历史直接算一个数字就当预测。
为什么发布模型是 climatology,不是听起来更聪明的模型?
因为在这份真实数据上,我们试过的几种「按已等待时长调整」的模型,全样本 Brier 分数都没有比 climatology(历史频率基线)更低——如实报告这个结果,不硬选一个实测更差的模型。
Brier 分数是什么,越低越好还是越高越好?
Brier = (预测概率 − 实际是否发生)²,取值 0–1,越低越好。预测 100% 结果真的发生,或预测 0% 结果真的没发生,Brier 都是 0;预测 50% 永远是 0.25。
这个页面和首页/产品页上的「24 小时内 xx%」是同一个数字吗?
是的,2026-09-23 起是同一个模型。首页/产品页 /tools/reset-odds/ 说明的那一套算法,以前是按已等待天数条件化的经验概率(会弃权),本次回测证明它更不准之后,改成了本页选出的发布模型(climatology)——本页的回测结论直接决定了首页/产品页现在怎么展示,不再是两套互不相关的算法。
回到 Codex 重置记录 · 重置概率算法说明(首页展示用的那一套) · API 文档 · 全部工具 · 第三方独立基准