←返回文章列表

Verbal-R3:RAG 缺的不是更多文本,而是能被模型使用的有效内容

RAG智能体大语言模型
8 分钟-阅读

解读 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 的流程很熟悉:

  1. 用户提出问题。
  2. 系统把问题改写成检索查询。
  3. 检索器返回若干候选文档。
  4. 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 应用的人来说,这篇论文的启发很直接:不要只问“检索到了什么”,还要问“这些内容如何被模型使用”。当答案质量卡在复杂推理、长文档噪声或多轮检索上时,证据批注层可能比继续扩上下文窗口更值得尝试。

YL

我是姚磊

大模型应用开发者,关注 RAG、Agent 和产品化工程。沉淀实践中的判断、踩坑记录和可复用方法。联系我:yaolei_agent@163.com

LLM AppsRAGProductEngineering Notes