One Policy, Any Budget: Internalizing Budget-Aware Search via Reinforcement Learning
Xiaowei Sun, Jin Li, Yili Hong, Yikun Fu, Yanghua Xiao
cs.AI
2026-09-01
复旦AnySearch用两阶段课程把预算感知搜进行为写进策略本身:Qwen2.5-7B-Instruct七项QA平均EM 0.431,高于StepSearch的0.403,且能泛化到训练未见的预算。
Search-R1 这类用强化学习训练的搜索代理,多半在固定预算下学「何时搜、搜什么」。部署时预算一变,策略不会跟着改:预算变紧就乱搜,预算变松又用不完。BATS 把预算状态跟进每一步,但推理时还要一个外部跟踪器,预算感知没有进模型本身。
复旦、东南大学、上海交大的 AnySearch 想要的是:推理时只告诉代理一个总预算 B,同一条策略自己决定怎么花。
搜索被写成带预算约束的序贯决策。每步可以 think、search 或 answer;每次 search 消耗 1 点预算,花完还能继续想,但不能再搜。
训练分两阶段,用 GRPO。
第一阶段打开脚手架。每轮开头注入 <budget> remaining=R; used=U; total=T </budget>,并要求在 <think> 里同时判断信息够不够、以及当前预算值不值得再搜。预算从 Bmax=5 线性降到 1,每个档位练同样步数,先在宽裕预算里学会搜,再在收紧时学会省。
第二阶段拆掉脚手架,只在episode开头给总预算 B,对齐推理条件。预算按滑动窗口里的准确率自适应采样:弱档位多练,同时用均匀平滑保住强档位不被遗忘。默认 λ=0.6。
奖励把正确率和搜的效率绑在一起。工具奖励是绝对项乘相对项:绝对项按「答对且省下多少预算」给分,相对项跟同组里最省的正确轨迹比。自适应权重 γq 随该题的组内正确率变:题容易时放大效率信号,题难时压低效率、先保正确。另有格式奖励和长度惩罚。Qwen3-4B 上拿掉格式奖励,大约第 175 步会出现回复变短、熵塌缩。
三条骨干、七个 QA(NQ / TriviaQA / PopQA / HotpotQA / 2Wiki / MuSiQue / Bamboogle),推理预算 B=5。
| 骨干 | AnySearch 平均 EM | 最强 RL 基线 |
| Qwen2.5-7B-Instruct | 0.431 | StepSearch 0.403 |
| Llama-3.1-8B-Instruct | 0.448 | ZeroSearch 0.424 |
| Qwen3-4B | 0.407 | StepSearch 0.383 |
没有 RL 的 BATS 和 Search-o1 明显落后(Qwen2.5-7B-Instruct 上分别是 0.227 和 0.266)。只给预算上限、不训练分配,不够用。
预算从 1 扫到 8,AnySearch 的准确率曲线单调上升,并能泛化到训练从未见过的 B=6–8。Bamboogle + Qwen2.5-7B-Instruct 上,B=5 大约 0.40,B=8 大约 0.42;Search-R1 在高预算处停在约 0.37。同一设置 B=3 时 AnySearch 约 0.38,Search-R1 约 0.34;Search-R1 要到 B=4 才摸到约 0.35。
工具生产率(每调用一次搜索答对多少题)也最高。HotpotQA 上 Qwen2.5-7B、B=6:AnySearch TP 0.354,StepSearch 0.276,Search-R1 0.212。检索文档占 token 大头,少搜直接降推理成本。
消融里,脚手架只在第一阶段用、第二阶段和推理都关掉,效果最好。训练全程带着脚手架、推理再摘掉,低预算明显掉点,代理学会了依赖显式预算标签。从不给脚手架,早期探索找不到分配策略。推理时把脚手架加回去,训练好的策略也没有额外好处。
效率奖励按正确率门控。2Wiki + Qwen3-4B、预算 5 的反事实里,AnySearch 因过早停搜而答错、对照答对的例子只占测试集 0.33%;它多答对的 3.32% 远大于这笔损失。
产品侧搜索预算本来就在变:低延迟场景只许一两次调用,深度研究可以放开。固定预算训练意味着每个档位一份模型。AnySearch 用一轮和固定预算基线相当的训练成本(500 step,单机 8×H800),交出一条能覆盖训练范围并外推到未见档位的策略。
对正在训搜索代理的人,可迁移的设计是:预算当状态来教,再把脚手架拆掉,用正确率门控的效率奖励,避免难题上为了省调用而提前交卷。
预算被定义成离散的搜索次数。真实成本是延迟、钱、系统负载叠在一起的,连续、多目标的成本函数这篇没做。
分配质量受骨干和语料上限约束。答案既不在参数里也不在检索库里,少搜也救不回来。训练和评测都用 2018 年 Wikipedia 静态库,跟 Search-R1 对齐,但没有测开放网页和知识过时。
Bmax=5 的训练范围偏窄。外推到 6–8 看起来稳,更大预算、以及「零次搜索」这种极端,论文没有展开。