R1-Searcher++: Incentivizing the Dynamic Knowledge Acquisition of LLMs via Reinforcement Learning 2025.05
- 对于LLMs而言,在大规模数据上的广泛预训练已赋予它们丰富的内部知识。因此,为模型配备根据需求在内部和外部知识源之间动态切换的能力至关重要。此外,还应鼓励模型将训练过程中遇到的知识内化,逐步丰富内部知识并持续向更高智能进化。
- 此外,R1-Searcher经过RL训练之后会过度依赖外部搜索引擎。
训练分为两个阶段:
第一阶段:SFT冷启动阶段,让模型以正确的格式响应问题。
通过拒绝采样收集符合格式要求的数据,使用 SFT 进行冷启动训练,初步使模型学会自主使用外部检索,输出融合内外知识的格式化回答。
该阶段的损失函数:
其中,
Mi=1M_i = 1Mi=1 → 如果这个 token 是模型内部知识生成的();
Mi=0M_i = 0Mi=0 → 如果这个 token 属于外部检索内容()
只在 <internal>
的 token 上计算监督损失,让模型学会哪些信息应该由内部生成,哪些留给检索填补。
第二阶段:RL用于动态知识的获取,鼓励内部知识的利用。
给定问题qqq和第iii个模型响应oio_ioi ,设计该阶段的奖励函数:
**格式奖励:**奖励符合格式的响应
调用外部检索器时查询必须用 <external>
标签包裹,最终答案必须用 \boxed{}
包裹,且内容不能乱码。
**答案奖励:**奖励正确且长度符合要求的答案
使用CEM指标评估最终答案的正确性。为防止模型通过生成冗长答案发生hacking,答案长度超过10个词将被视为不正确。正确且符合长度要求的答案奖励为1,否则为0。
**组奖励:**奖励正确且外部检索调用次数少的奖励,目的是减少对外部检索的过度依赖。
基于同一问题的多个正确响应中调用检索器次数的标准差来计算奖励。
-
其中tit_iti是模型对同一个问题oio_ioi生成的第iii个回答对应的外部检索器的调用次数。
-
标准差描述了:在回答同一个问题时,模型对于调用检索的行为是否一致。
-
如果标准差大,说明行为不稳定,模型对是否需要检索的判断不确定 → 不是好事。
-
η 是可调超参数,用于平衡稳定性与奖励强度
外部知识记忆化:让模型不仅会“查”,还学会“记”
在训练中记住正确的答案,减少后续不必要的检索。
Step1:采用SFT阶段采样的数据训练一个额外的Rewriter模型。
Step2:在RL阶段重写模型的知识背景。
1.选择 LLM 生成的正确响应,提取其中的检索文档。
2.将文档连同原始问题作为输入,送入“Rewriter模型”。
3.ewriter模型输出内容逻辑完整的推理路径,使这些文档转化为符合模型内部知识使用的模式。
4.选择推理路径正确的样本构成记忆数据集T,使用损失函数LM(θ)L_M(θ)LM(θ)训练记忆这些信息。
对筛选出的样本的token进行最大似然训练。
总损失:
JMask(θ)J_\text{Mask}(\theta)JMask(θ):是RL的策略优化目标(比如 REINFORCE 或 policy gradient);
μ\muμ:是一个超参数,用于控制记忆损失在总训练中的“话语权”,防止它压过策略训练
<internal> </internal >是内部知识。
<external></external>是发出查询。
<document></document>是检索到的内容。
实验结果:
SFT的训练数据:HotpotQAd的720个样本和2wikiQA的85个样本。
RL阶段的训练样本:HotpotQAd的4561个样本和2wikiQA的3581个样本。
使用Qwen-2.5-7B-Instruct作为骨干,使用FlashRAG进行答案评估。
使用Wikipedia作为搜索环境。
在线搜索场景下的泛化性测试
拒绝采样: