论文阅读-Search-R1

这篇文章的点没有啥细节算法设计,整体来说比较好理解。

1. Search-R1整体框架

1.1 研究问题与核心思想

Search-R1(2025,arXiv:2503.09516)研究如何让大语言模型通过强化学习自主学习"何时搜索、搜索什么、是否继续搜索以及如何利用检索结果"。传统RAG通常采用"问题→检索→回答"的单轮模式,而Search-R1将搜索引擎直接纳入RL环境,使模型能够执行"推理→搜索→读取→继续推理→再次搜索→回答"的多轮交互。

核心转变:传统RAG的检索策略通常由外部系统预先确定;Search-R1则将检索行为变成LLM自身的策略决策,并使用最终答案的正确性作为RL信号。

对比维度 传统RAG Search-R1
检索时机 通常在回答前固定检索 模型自主决定何时检索
检索次数 通常单轮 支持多轮搜索
Query来源 Retriever或固定模板 LLM自主生成
搜索结果 外部上下文 RL环境返回的Observation
Reward 通常无RL 最终答案Outcome Reward
学习目标 生成有依据的答案 学习推理与搜索协同策略

核心结构:问题→LLM生成thought/query→Search Engine返回docs→LLM继续推理→必要时再次query→最终answer→Outcome Reward→RL更新。

1.2 RL环境与Agent角色

Search-R1将LLM视为Agent,将搜索引擎视为Environment。LLM负责产生thought、query和answer等动作;搜索引擎接收query后返回documents,documents进入后续上下文并影响模型继续生成。

对象 Search-R1中的角色 是否直接参与Policy Gradient
Thought Agent Action
Query Agent Action
Answer Agent Action
Retrieved Documents Environment Observation
Outcome Reward 环境反馈 用于更新Agent

因此最核心的角色划分是:thought/query/answer属于Agent决策,docs属于Environment返回结果。

2. 多轮搜索与Trajectory

2.1 Search交互机制

模型生成<search>query</search>后,系统解析query并调用搜索引擎;搜索结果被包装为<information>docs</information>重新插入当前上下文,模型随后继续生成thought、query或最终answer。若再次生成search标记,则进入下一轮检索。

搜索交互:LLM生成query→Search Engine执行query→返回documents→documents加入上下文→LLM继续生成→决定继续搜索或回答。

特殊标记 功能
<think>...</think> 表示模型推理过程
<search>...</search> 表示模型发起搜索请求
<information>...</information> 表示搜索引擎返回的信息
<answer>...</answer> 表示最终答案

2.2 Trajectory形式化

传统LLM RL中的trajectory主要由模型生成token组成,而Search-R1的trajectory同时包含Agent生成内容和Environment返回内容,因此可以表示为:

τ=(thought₁,query₁,docs₁,thought₂,query₂,docs₂,...,thoughtₖ,queryₖ,docsₖ,answer)

更一般地写成:

τ=(t₁,q₁,d₁,t₂,q₂,d₂,...,tₖ,qₖ,dₖ,a)

其中tᵢ表示第i轮thought,qᵢ表示第i轮query,dᵢ表示搜索结果,a表示最终answer。

对于第i轮搜索:qᵢ∼πθ(·|sᵢ),dᵢ=R(qᵢ)。其中πθ是LLM策略,R是搜索环境。

因此Trajectory并不是单纯的文本序列,而是"Agent Action + Environment Observation"的交错序列。

2.3 多轮搜索的策略学习

第一个query只依赖问题和已有推理状态:

q₁∼πθ(·|x)

搜索结果d₁加入上下文后,第二个query可以依赖之前的信息:

q₂∼πθ(·|x,t₁,q₁,d₁)

进一步:

q₃∼πθ(·|x,t₁,q₁,d₁,t₂,q₂,d₂)

因此后续搜索具有状态依赖性:前一轮检索结果会改变当前状态,当前状态再决定下一轮搜索。

多轮搜索:当前问题→thought→query₁→docs₁→重新理解信息→query₂→docs₂→继续推理→answer。

其核心不是简单增加搜索次数,而是学习自适应检索策略:

学习能力 含义
Search Triggering 判断当前知识是否不足,需要搜索
Query Generation 根据当前推理状态生成搜索query
Search Iteration 判断是否需要继续搜索
Information Utilization 从检索结果中提取并利用有效信息
Search Termination 判断信息是否足够并停止搜索

3. Retrieved-Token Masking

3.1 为什么需要Mask

Search-R1的trajectory中既存在LLM生成token,也存在搜索引擎返回token。如果直接按照普通LLM RL的方法对所有token计算Policy Gradient,就会错误地把retrieved token当作Agent Action。

关键区别:模型决定生成query,但模型没有决定搜索引擎返回的具体文字。因此docs是Observation而不是Action。

例如:

Question→thought→query→docs→thought→answer

其中thought、query、answer由Agent产生,而docs由Environment产生。

3.2 Agent Token与Retrieved Token

定义token mask:

Iₜ=1,当yₜ由LLM生成;Iₜ=0,当yₜ来自检索结果。

Token区域 来源 Mask Iₜ 是否参与Policy Loss
Thought LLM 1
Search标记 LLM 1
Query LLM 1
Information/Docs Search Engine 0
后续Thought LLM 1
Answer LLM 1

因此可以统一定义:Iₜ=1表示Agent Token,Iₜ=0表示Retrieved Token。

3.3 只对Agent Token求梯度

普通Policy Gradient可以写成:

∇θJ=EτΣₜ Aₜ∇θlogπθ(yₜ\|sₜ)

Search-R1加入retrieved-token mask后:

∇θJ=EτΣₜ IₜAₜ∇θlogπθ(yₜ\|sₜ)

当yₜ为Agent Token时:

Iₜ=1

因此:

IₜAₜ∇θlogπθ(yₜ|sₜ)=Aₜ∇θlogπθ(yₜ|sₜ)

当yₜ为Retrieved Token时:

Iₜ=0

因此:

IₜAₜ∇θlogπθ(yₜ|sₜ)=0

最终得到:

∇θJ=EτΣₜ:yₜ∈Agent Aₜ∇θlogπθ(yₜ\|sₜ)

这就是"只对Agent token求梯度"的核心公式。

3.4 Mask后的Policy Loss

采用Loss最小化形式,可以写成:

L(θ)=−EτΣₜ IₜAₜlogπθ(yₜ\|sₜ)

等价地:

L(θ)=−EτΣₜ:yₜ∈Agent Aₜlogπθ(yₜ\|sₜ)

因此:

Retrieved Token→Iₜ=0→对应Loss=0→对应Policy Gradient=0。

这里的"mask"并不表示删除检索文本。docs仍然完整进入模型上下文,并影响后续hidden states以及未来thought/query/answer,只是不把docs自身作为Policy Action进行优化。

3.5 PPO中的Mask

PPO的重要性采样比率为:

rₜ(θ)=πθ(yₜ|sₜ)/πold(yₜ|sₜ)

普通PPO目标为:

Lᴾᴾᴼ=Eₜmin(rₜAₜ,clip(rₜ,1−ε,1+ε)Aₜ)

加入Search-R1的token mask后:

LSearch-R1ᴾᴾᴼ=EₜIₜmin(rₜAₜ,clip(rₜ,1−ε,1+ε)Aₜ)

所以retrieved token对应Iₜ=0,其Policy Loss直接为0。

核心逻辑:docs可以影响未来action,但docs自身不属于被优化的action。

4. Outcome Reward与RL优化

4.1 Outcome Reward定义

Search-R1采用最终答案正确性作为主要RL奖励,而不是为每一步搜索分别设计复杂的process reward。

对于预测答案a_pred和标准答案a_gold:

R(τ)=EM(a_pred,a_gold)

其中EM表示Exact Match:

EM(a_pred,a_gold)=1,当a_pred=a_gold;否则EM(a_pred,a_gold)=0。

结果 Outcome Reward
最终答案正确 1
最终答案错误 0

因此奖励只关注最终任务是否完成,而不直接规定"正确的query应该怎样写"。

4.2 Outcome Reward如何训练搜索策略

完整trajectory可以写成:

τ=(t₁,q₁,d₁,t₂,q₂,d₂,...,tₖ,qₖ,dₖ,a)

假设最终:

R(τ)=1

则trajectory中的Agent actions共同构成成功轨迹:

Pθ(τ)∝∏ₜ∈Agent πθ(yₜ|sₜ)

因此:

logPθ(τ)=Σₜ∈Agent logπθ(yₜ|sₜ)

于是最基本的Policy Gradient可以写成:

∇θJ=EτR(τ)Σₜ∈Agent∇θlogπθ(yₜ\|sₜ)

加入advantage后:

∇θJ=EτΣₜ∈Agent Aₜ∇θlogπθ(yₜ\|sₜ)

所以最终答案的正确性能够反向影响此前的thought、query以及其他Agent-generated tokens。

4.3 为什么Outcome Reward能够学习"何时搜索"

假设两个模型面对相同问题:

Trajectory 搜索行为 最终答案 Reward
τ₁ 不搜索 错误 0
τ₂ 搜索一次 正确 1
τ₃ 搜索两次 正确 1

经过大量rollout后,RL会比较不同trajectory的最终结果,从而逐渐改变搜索相关action的概率。

因此模型不是被显式告知"这个问题必须搜索",而是通过最终结果逐渐学习:

问题→判断信息不足→生成query→获得docs→利用docs→得到正确答案。

4.4 稀疏Reward与信用分配

Outcome Reward的优点是目标清晰、规则简单、不需要训练额外Reward Model;缺点是reward稀疏。

例如:

t₁→q₁→d₁→t₂→q₂→d₂→answer→R=0

即使q₁本身是合理的,只要后续推理或搜索失败,最终仍可能得到0 reward。

因此Search-R1依靠大量rollout以及PPO/GRPO的相对优势估计进行credit assignment,而不是人为定义大量中间奖励。

5. GRPO与完整优化目标

5.1 GRPO中的相对优势

对于同一个问题x,采样G条trajectory:

τ₁,τ₂,...,τG

得到对应reward:

R₁,R₂,...,RG

GRPO根据group内reward计算相对优势,简化表示为:

Aᵢ=(Rᵢ−μR)/σR

其中:

μR=(1/G)ΣᵢRᵢ

σR表示group reward标准差。

因此成功trajectory相对于group平均水平具有正优势,失败trajectory具有负优势。

5.2 GRPO中的Retrieved-Token Masking

GRPO同样需要区分Agent Token和Retrieved Token,因此:

LGRPO∝ΣᵢΣₜ Iᵢₜmin(rᵢₜAᵢ,clip(rᵢₜ,1−ε,1+ε)Aᵢ)

其中:

Iᵢₜ=1表示第i条trajectory的第t个token由Agent生成;Iᵢₜ=0表示该token属于retrieved documents。

因此无论采用PPO还是GRPO,核心原则都不变:只有LLM真正选择生成的token参与Policy Optimization。

5.3 KL约束

Search-R1还可以使用reference policy进行KL约束,使训练后的policy不要过度偏离初始模型:

J(θ)=EτR(τ)−βDKL(πθ||πref)

其中β控制KL正则强度。

在Search-R1中,检索token不属于Agent action,因此与Policy相关的token-level优化仍需要遵循retrieved-token masking原则。

6. Search-R1核心机制总结

6.1 三个重点的统一关系

核心机制 解决的问题 数学对象
多轮搜索 LLM如何与Search Environment交互 τ=(thought,query,docs,...,answer)
Retrieved-token Masking 谁是Agent、谁是Environment Iₜ∈{0,1}
Outcome Reward 如何评价完整搜索推理过程 R(τ)=EM(answer_pred,answer_gold)

三者统一起来就是:

Trajectory:τ=(thought,query,docs,...,answer)

Action/Observation划分:thought/query/answer=Agent Action;docs=Environment Observation。

Policy Gradient:∇θJ=EτΣₜ IₜAₜ∇θlogπθ(yₜ\|sₜ)

Outcome Reward:R(τ)=EM(answer_pred,answer_gold)

最终形成:

多轮搜索生成trajectory→区分Agent token与Retrieved token→只优化Agent token→最终答案产生Outcome Reward→Reward反向训练搜索与推理策略。

6.2 最值得记忆的四个公式

Trajectory:

τ=(t₁,q₁,d₁,t₂,q₂,d₂,...,tₖ,qₖ,dₖ,a)

Retrieved-token mask:

Iₜ=1_{yₜ由Agent生成}

只对Agent token求梯度:

∇θJ=EτΣₜ IₜAₜ∇θlogπθ(yₜ\|sₜ)

Outcome Reward:

R(τ)=EM(a_pred,a_gold)

6.3 Search-R1的本质

Search-R1可以理解为将普通Reasoning RL扩展为:

Reasoning RL + Interactive Search Environment。

其中最关键的思想不是"让LLM能够调用搜索引擎",而是把"搜索"变成RL中的Agent Action,同时把搜索结果明确建模为Environment Observation;最终通过答案正确性这一Outcome Reward,让模型自己学习搜索时机、query构造、多轮检索和信息利用策略。

最核心的一句话:Search-R1让LLM在"思考→搜索→阅读→再思考→再搜索→回答"的交互轨迹上进行RL,但只对LLM自己生成的Agent token进行策略优化,检索文本仅作为环境Observation参与后续推理,最终由答案正确性提供统一的Outcome Reward。

相关推荐
代码方舟2 小时前
零信任架构实战:基于天远二手车VIN估值构建自动化车险承保网关
人工智能·ai·工具分享
灵海之森2 小时前
大模型时代对话意图识别全景实践:从80个细粒度小类到生产级架构演进
人工智能
jimmyleeee2 小时前
大模型安全之二十二:AI 安全实践:真实案例研究与经验教训
人工智能·安全
Ivanqhz2 小时前
Slope One 算法详解:与矩阵分解、共现矩阵的异同
java·服务器·网络·人工智能·深度学习
天国梦2 小时前
实测天学网AI作文批改:三篇作文,语法纠错与语篇逻辑的真实表现
人工智能·学习
m4Rk_3 小时前
【论文阅读】Agent 记忆机制(75):TiMem——用时间记忆树实现长期记忆的层级巩固
论文阅读·人工智能·学习·开源·github
mysqloffice3 小时前
数智时代,核心系统数据库架构往哪走
数据库·人工智能
别动我齐刘海3 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
甲维斯3 小时前
ZCode 19号更新来了,偷偷上传问题“已修复”?!
人工智能