一句话结论
SearchHorizonBench 要回答的问题在于「再搜一次还能多答对多少」,而非「这题难不难」:它把这部分额外收益(搜索增益)从题目难度和生成噪声中剥离出来,做成可学习、可评测的基准,并给出一个不太好看的实测结论:现有历史估计器基本抓不住增益。
方法要点
先加一层减法。 单题单步的搜索价值定义成一个差值:
g = E[成功率 | 再搜一次] − E[成功率 | 立即作答]
答对概率只反映题目难度,而两个条件共享同一项难度,因此相减就消掉了。剩下的才是「搜索」这个动作本身的边际贡献。这一步是整个基准的地基:不先做减法,度量出来的只是题目难度,跟搜索无关。
再让差值可估。 两个采集设计:
- 配对续写:同一状态分叉出两条续写,一条继续检索、一条直接回答。两条续写共享前缀,难度项天然对齐,差值不会被题目差异污染。
- 重复执行:同一配置多次采样,用均值逼近期望,把单次生成的随机性平均掉。
这两步是论文的工程核心,也是复现成本的主要来源——它要求 agent 环境能对同一状态反复回放、可分叉。
评测分两个口径。 一个是概率预测质量,用 Brier 误差衡量;一个是决策效用,在参考 token 价格下累加「答对收益 − token 成本」,再与最佳恒定动作(永远搜 / 永远不搜)对比。前者问「估得准不准」,后者问「估得准有没有用」——两个口径会给出不同结论,必须一起看。
资源层提供可复用历史、冻结切分、强基线与评分工具。冻结切分的意义在于:训练集和留出集固定之后,不同估计器之间的差异才可比。
N = 重复采样次数
PRICE = 参考 token 价格 # 论文按此价格把 token 折算成效用
for q in questions:
s = agent.state(q) # 同一状态,可分叉
p_now = mean(agent.answer(s) == gold for _ in range(N))
p_search = mean(agent.search_answer(s) == gold for _ in range(N))
gain[q] = p_search - p_now # 减掉难度项后的搜索增益
model.fit(history_features, train_gains) # 用历史执行记录学
brier = mean((model.predict(q) - gain[q]) ** 2 for q in heldout)
utility = sum(reward(q) - tokens(q) * PRICE
for q in heldout if model.decide(q) >= 0)
compare(utility, best_constant_action) # 永远搜 / 永远不搜
关键数字
| 项目 | 数值 | 含义 |
|---|---|---|
| 基准规模 | 45,632 次执行 / 3,168 道题 | 资源总量 |
| 留出集 | 1,632 道题 | 冻结评测切分 |
| Brier 误差 | 相对降低 16.2% | 历史校准 vs 未校准 |
| 搜索增益波动 | 标准差 21.4 个百分点 | 题间差异极大 |
| 方差解释力 | 现有历史估计器不足 2% | 点估计几乎无效 |
| 效用空间 | 2.49 点 | 自由选择 vs 最佳恒定动作 |
这几个数字要连起来读。16.2% 的 Brier 改善说明历史记录里确实有信息,但作者指出改善集中在「成功率层面」——历史能告诉你这题大概多难。真正驱动决策的是增益,而增益的标准差高达 21.4 个百分点,现有历史估计器对这部分方差的解释不到 2%。
一句话概括:难度可学,增益几乎没学到。2.49 点的效用空间表示「如果增益估得准,能比永远搜或永远不搜多拿多少」,作者明确指出它主要由增益信息驱动,而不是难度信息。
局限与前提
- 规模有限:3,168 道题、45,632 次执行,相比通用评测集不算大;摘要未展开题目领域分布与难度分层,跨领域外推要看正文。
- 任务目前「学不动」:现有历史估计器解释不到 2% 的增益方差,这是作者自己给出的实测结论。基准的贡献是定义问题加提供可比底座,不是提供解法。
- 效用结论绑定价格假设:2.49 点是「参考 token 价格」下的结果。价格一变,搜与不搜的盈亏平衡点就变,最优策略得重算。
- 工程前提:配对续写要求同一状态可分叉、可回放;重复执行要求采样可控。对带副作用、不可回滚的调用,得先做环境隔离才能套这套采集流程。
- 学习曲线只覆盖匹配配置:作者用匹配配置下的学习曲线考察不同训练规模,摘要未给出跨模型、跨检索工具的可迁移结论。
能不能用
资源可用性。 论文明确提供可复用历史、冻结切分、强基线与评分工具——这四样是复用的关键。但摘要未给出代码仓库地址、许可证与数据下载方式,也没提权重发布。这是一篇基准类工作,实际交付物更可能是数据集加评分脚本,接入前需到正文或项目页确认。
复现前提:
- 一个能对同一问题状态重复执行的 agent harness,支持固定随机种子与状态分叉;
- 批量调度能力:45,632 次执行不是单机跑得动的量级,需要队列化调度与失败重试;
- 一个基线 agent 加检索工具,用来生成配对续写与重复执行样本;
- 评分链路同时搭 Brier 与效用两个口径,只跑一个容易得出反向结论。
判断。 如果你的团队正在做「要不要继续检索」这类停止决策,这个基准的采集设计和评分口径可以直接复用;如果目标只是提升单次问答准确率,它帮不上忙——它测的是边际收益,不是绝对能力。