Verbal-R3:RAG 缺的不是更多文本,而是能被模型使用的有效内容
解读 Verbal-R3 如何用 Verbal Reranker 和 Verbal Annotation,把原始检索文本转换成更适合大语言模型推理的有效内容。
论文:Verbal-R3: Verbal Reranker as the Missing Bridge between Retrieval and Reasoning
作者:Sangkwon Park, Donghun Kang, Jisoo Mok, Sungroh Yoon
arXiv:2605.01399v1,2026-05-02
项目:https://github.com/0k9d0h1/VerbalR3
RAG 系统常见的失败,并不总是因为“没搜到”。更尴尬的情况是:检索器已经把答案附近的材料找回来了,模型还是答错。文档里有有效内容,但有效内容没有变成推理过程中的可用信息。
Verbal-R3 这篇论文抓住的正是这个关键问题。它没有把重点放在更大的检索器、更长的上下文,或者更复杂的提示词模板上,而是在检索结果和生成模型之间插入一个“语言化的重排序器”:不只判断文档相关不相关,还用自然语言说明这段文档为什么和当前查询有关、哪些部分能支撑答案、哪些部分只是噪声。
论文把这种说明称为 Verbal Annotation。它是 Verbal-R3 的核心,也是这篇文章主要介绍的内容。
传统 RAG 的问题:有效内容进入上下文,不等于进入推理
标准 RAG 的流程很熟悉:
- 用户提出问题。
- 系统把问题改写成检索查询。
- 检索器返回若干候选文档。
- LLM 读取这些文档并生成答案。
这个流程默认了一件事:只要相关文档进入上下文,LLM 就能自己完成有效内容的筛选和逻辑连接。但在复杂问答里,这个假设经常不成立。
以论文图 1 里的例子为例,问题是:
When was the last year the Raiders won the Super Bowl?
检索结果可能包含一段关于 Raiders 历史的文字,其中提到他们在 1980 和 1983 赛季赢得 Super Bowl。原始文档本身并不难读,但它没有直接替模型完成这一步判断:问题问的是“最后一次是哪一年”,所以 1983 比 1980 更关键。
传统 RAG 把原文交给模型;Verbal-R3 希望交给模型的是更接近下面这种信息:
这段文档说明 Raiders 在 1980 和 1983 赛季赢得 Super Bowl。
因为问题询问的是最后一次夺冠年份,所以 1983 是直接支持答案的有效内容。
这不是简单摘要。摘要会压缩原文,Verbal Annotation 则明确写出“查询”和“文档”之间的逻辑关系。它更像一条有效内容批注:告诉生成器该看哪里、为什么看、如何把这段材料接到答案上。
Verbal Annotation 为什么不是“润色后的上下文”
论文先做了一个很关键的动机实验:同样基于 Search-R1 3B,比较三种把检索结果交给模型的方式。
| 输入方式 | 平均 EM | 平均效果变化 |
|---|---|---|
| 原始检索文本 | 38.75 | 基线 |
| 改写成更像 LLM 喜欢的表达 | 37.78 | 下降 |
| Verbal Annotation | 41.92 | 明显提升 |
这个结果很有意思。把文档改写得更流畅,并没有帮助模型,反而可能损失细节或引入偏差。真正起作用的是“关系解释”:这段材料如何回答查询、哪些有效内容应该被保留、哪些噪声应该被忽略。
论文还引入了一个分析指标 CUE(Context Utilization Efficacy):
CUE = P(答案正确 | 检索结果准确)
它衡量的是:当系统已经检索到可用证据时,模型到底有没有把证据用好。
在 Search-R1 上加入 Verbal Annotation 后,平均 EM 从 38.75 提升到 41.92,F1 从 46.31 提升到 49.86。更关键的是,CUE-R 从 64.77 提升到 70.76,CUE-L 从 69.04 提升到 74.10。也就是说,它的收益不只是“检索更准”,而是模型对已检索证据的利用率变高了。
这解释了 Verbal-R3 的设计动机:RAG 的中间层不应只负责排序,还要负责把检索结果翻译成生成器更容易使用的推理材料。
Verbal-R3 的两部分:Generator 和 Verbal Reranker
Verbal-R3 的全称可以理解为 Retrieve-Rerank-Reason。系统由两个 LLM 模块组成。
Generator 负责推理和行动。它读取用户问题,决定下一步要搜什么,接收检索结果,继续推理,直到生成最终答案。它不是一次性检索,而是在推理过程中反复提出查询。
Verbal Reranker 负责评估和批注。每当 Generator 产生一个查询,检索器返回 n 个候选文档,Verbal Reranker 会对每个文档输出两样东西:
Verbal Annotation:文档与查询之间的逻辑说明
Relevance Score:1 到 5 的相关性分数
之后系统选出 top-k 个结果,把它们以带注释的形式放回 Generator 的上下文中。论文默认推理设置里,候选文档数 n=15,返回 top-k=3。
一个简化流程如下:
flowchart TD
Q[用户问题] --> G[Generator 生成检索查询]
G --> R[检索器返回候选文档]
R --> VR[Verbal Reranker]
VR --> S[相关性评分]
VR --> A[Verbal Annotation]
S --> T[选择 top-k]
A --> T
T --> G2[Generator 更新推理上下文]
G2 --> C{是否已有答案}
C -- 否 --> G
C -- 是 --> O[输出最终答案]
这套设计的微妙之处在于,Verbal Reranker 不是传统意义上的 reranker。传统 reranker 通常只改变文档顺序;Verbal Reranker 同时改变了文档进入生成器时的形态。它把“候选文档”变成“带解释的证据”。
轻量 Verbal Reranker:把 120B 教师模型蒸馏成 1.5B / 3B 模块
如果每次检索都调用一个超大模型来写批注,系统成本会很高。论文的解决方案是蒸馏。
作者使用 GPT-OSS-120B 作为教师模型,生成大量 query-document-Verbal Annotation 三元组。每个样本包括:
输入:评估提示词 + 查询 q + 文档 d
输出:Verbal Annotation v + 相关性分数 s
分数是 1 到 5 的整数,用于后续排序。作者还专门搜索和优化了教师模型提示词,目标不是让它写泛泛的摘要,而是让它给出有区分度、带批判性的关系判断。生成的数据再经过 Gemini 2.5 Pro 做合理性评估,论文报告的通过率是 98.5%。
学生模型则通过 SFT 学习教师输出,规模包括 1.5B 和 3B。这样 Verbal Reranker 可以在迭代检索循环里高频调用,而不至于让系统成本失控。
这个做法对工程实践也有启发:如果业务场景里已经有高质量但昂贵的评估模型,可以先让它生成“查询-文档-解释-分数”数据,再蒸馏一个小模型专门做检索后处理。小模型未必需要回答用户问题,它只需要稳定完成证据判断和批注。
Generator 如何学会使用这些批注
只有 Verbal Reranker 还不够。Generator 也必须学会读懂并利用这些批注。
论文沿用 Search-R1 的训练思路,用 Qwen2.5-3B 和 Qwen2.5-7B 作为 Generator backbone,并通过 GRPO 进行强化学习。训练过程中,Generator 会产生查询,检索器返回文档,Verbal Reranker 生成批注和分数,然后这些信息被追加到 Generator 的轨迹中。
轨迹里的信息大致长这样:
<information>
[Doc 1] 这份文档说明了……它和查询的关系是……
(Relevance score: 5)
[Doc 2] 这份文档只涉及……不能直接回答当前问题……
(Relevance score: 2)
</information>
奖励函数同时关注答案正确性和输出格式。换句话说,Generator 不只是被训练成“会答题”,还要学会在多轮搜索、批注阅读、答案抽取之间保持结构一致。
相关性引导的测试时扩展:把算力给更有希望的轨迹
复杂问题往往不止一条推理路径。测试时可以让模型采样多条轨迹,再通过多数投票得到答案。但朴素多数投票的问题是,它会平均扩展所有路径,算力没有偏好。
Verbal-R3 利用 Verbal Reranker 的相关性分数做测试时算力分配。直观地说:如果某条轨迹产生的查询能检索到高相关证据,就更值得继续扩展;如果检索结果分数很低,就少给它预算。
论文的算法维护一组分支,每个分支带有当前上下文、最高相关性分数和对应 logit。每轮推理时,系统根据剩余预算生成若干响应;如果响应里已经有答案,就加入候选答案集合;如果响应里产生新查询,就调用 Verbal Reranker 评估查询对应的检索结果。之后系统按相关性采样下一轮分支,相关性越高,继续扩展的概率越大。
论文默认设置里,总轨迹预算 N=5,缩放超参数 α=7.5。这个 α 控制分数差异被放大的程度:越大,系统越偏向高相关分支。
这个设计让 Verbal Reranker 多了一个角色:它不仅是文档评估器,也是推理轨迹评估器。
实验结果:收益来自“更会用证据”
论文在 7 个 QA benchmark 上评估,包括单跳任务 NQ、TriviaQA、PopQA,以及多跳任务 2WikiMultiHopQA、Bamboogle、MuSiQue、HotpotQA。指标使用 EM 和 F1。
几个结果值得单独看。
首先,Verbal Reranker 可以作为插件接到普通 RAG 系统里。论文报告,1.5B Verbal Reranker 已经能达到接近更大 reranker 的效果,3B Verbal Reranker 则稳定超过 MonoT5、RankLLaMA、Rank1 等 baseline。
其次,完整 Verbal-R3 在复杂问答上超过了 Direct Answer、Standard RAG、IRCoT、ITER-RETGEN 和 Search-R1 等方法。它的优势尤其体现在需要多轮检索和证据组合的问题上,因为这类问题最容易暴露“检索到了但没用好”的缺陷。
第三,消融实验说明 Verbal Annotation 本身确实重要。论文比较了 Verbal-R3、去掉 Verbal Annotation 但保留 reranking 的版本,以及 Search-R1:
| 模型 | EM | F1 | RA-R | RA-L | CUE-R | CUE-L |
|---|---|---|---|---|---|---|
| Search-R1 | 38.74 | 46.31 | 61.79 | 48.26 | 64.77 | 69.04 |
| Verbal-R3 w/o VA | 42.73 | 51.75 | 66.73 | 53.52 | 65.21 | 69.76 |
| Verbal-R3 | 45.36 | 54.66 | 69.06 | 52.86 | 67.54 | 71.64 |
去掉 Verbal Annotation 后,系统仍然因为 reranking 变强而超过 Search-R1;但完整 Verbal-R3 的 EM、F1 和 CUE 继续提升。这说明 Verbal Annotation 不只是漂亮的解释文本,它确实改善了生成器对上下文的使用。
成本:多一个小模型,但可能比直接放大 Generator 更划算
Verbal-R3 的代价也很清楚:系统多了一个 LLM 模块。每轮检索都要调用 Verbal Reranker,部署复杂度和推理成本都会增加。
论文在附录里用 Qwen2.5-32B-Instruct 做了额外分析。在迭代检索设置下,加入 3B Verbal Reranker 后,平均 F1 从 50.3 提升到 51.9,FLOPs 从 0.207 × 10^15 增加到 0.236 × 10^15。作者总结为:F1 增加 3.13%,额外 FLOPs 约 13.8%。
相比之下,把 Search-R1 backbone 从 3B 扩到 7B,F1 提升 8.18%,但 FLOPs 增加约 133%。这个对比不表示 Verbal Reranker 永远比放大模型更好,但它说明了一个实用方向:当系统瓶颈在证据利用,而不是纯生成能力时,增加一个小型证据解释模块,可能比继续堆大 Generator 更有效率。
这篇论文对 RAG 工程的启发
Verbal-R3 不一定适合所有 RAG 场景。简单事实查询、低延迟客服、短文档问答,直接 rerank 加上下文压缩可能已经够用。它更适合下面几类场景:
| 场景 | 为什么适合 |
|---|---|
| 多跳问答 | 需要把多个证据片段串成推理链 |
| 长文档知识库 | 原文噪声多,生成器容易被无关段落干扰 |
| 高价值决策支持 | 需要知道答案依据来自哪里,以及证据如何支撑结论 |
| Agentic RAG | 查询会随推理动态变化,需要评估每一步检索是否有价值 |
从工程角度看,可以把 Verbal Annotation 理解成一种“证据中间表示”。它介于原始文档和最终答案之间,比摘要更有任务指向性,比纯分数更可解释,也比直接塞全文更节省生成器的注意力。
一个可落地的简化版本未必需要完整训练两个模型。很多团队可以先从提示词版本开始:
给定用户问题、当前检索查询和候选文档:
1. 判断文档是否能回答当前查询,给出 1-5 分。
2. 指出最相关的句子或事实。
3. 用两句话说明它如何支持或不支持答案。
4. 不要改写无关内容,不要补充文档中没有的信息。
如果这种批注能稳定提升答案质量,再考虑蒸馏成轻量 reranker,或者把批注结果缓存到知识库侧。
局限:批注层也会犯错
论文自己也强调了几个限制。
第一,Verbal-R3 使用两个 LLM 模块,部署成本高于普通 RAG。即使 Verbal Reranker 被蒸馏到 1.5B 或 3B,它仍然会增加延迟和工程复杂度。
第二,Verbal Annotation 的错误会沿着迭代推理累积。如果 reranker 错把无关文档解释成强相关,Generator 反而可能更自信地走向错误答案。
第三,实验主要基于离线检索器和公开 QA 数据集。真实 Web 搜索、企业知识库、更新频繁的数据源,会带来更多噪声、过期信息和权限问题。
所以 Verbal-R3 的价值不在于“彻底解决 hallucination”,而在于指出了一个可控的改进点:让系统在生成答案前,先显式建模证据和问题之间的关系。
结语
Verbal-R3 最有价值的地方,是把 RAG 里的一个隐性步骤显性化了。
传统 RAG 把检索结果交给模型,希望模型自己完成证据筛选、关系判断和推理连接。Verbal-R3 则在中间加了一个 Verbal Reranker,用相关性分数和 Verbal Annotation 把“原始文本”变成“带解释的证据”。实验结果显示,这个中间表示能提高模型对检索上下文的利用效率,也能让测试时推理预算分配得更聪明。
对做 RAG 应用的人来说,这篇论文的启发很直接:不要只问“检索到了什么”,还要问“这些内容如何被模型使用”。当答案质量卡在复杂推理、长文档噪声或多轮检索上时,证据批注层可能比继续扩上下文窗口更值得尝试。
我是姚磊
大模型应用开发者,关注 RAG、Agent 和产品化工程。沉淀实践中的判断、踩坑记录和可复用方法。联系我:yaolei_agent@163.com



