Adaptive-RAG:按问题复杂度选择检索策略
Adaptive-RAG 是一种根据问题选择回答流程的 RAG 方法。它在执行检索之前,用经过训练的问题分类器预测复杂度,再选择不检索、单步检索或多步检索中的一条路径。分类器负责选路,后续的检索器和语言模型负责取得资料、生成答案。
这种选择用于处理不同问题对检索次数的需求。有的问题直接回答就足够,有的问题查到一段资料即可回答,还有的问题需要先查出一个实体,再围绕这个实体继续检索。如果全部采用多步检索,简单问题也要等待多轮调用;如果固定只查一次,需要中间结果的问题又容易答不完整。
分类器选择的是回答过程
论文将回答过程分为三档:
| 策略 | 执行过程 | 依赖的能力 |
|---|---|---|
| No retrieval | 问题直接交给语言模型 | 模型已有知识足以回答 |
| Single-step | 用问题检索一次,再基于返回资料生成答案 | 一次召回能够取得必要证据 |
| Multi-step | 检索与推理交替进行,再生成答案 | 根据中间结果继续寻找证据 |
这里的“复杂度”对应解决问题所需的过程。例如“法国的首都是哪里”可能由模型直接答出;“某篇论文报告了多大的训练集”往往需要查阅资料;“某篇论文第一作者此前任职的机构位于哪个城市”则可能需要先确定作者和任职机构,再查机构所在地。
第三个问题的后续查询依赖前面的结果。单纯把第一次检索的 top_k 调大,不一定能解决这种依赖,因为检索器开始时还不知道应搜索哪个机构。
用户问题
↓
问题分类器
├── No retrieval ──→ LLM 直接回答
├── Single-step ───→ 检索一次 ──→ LLM 回答
└── Multi-step ────→ 检索 ↔ 推理 ──→ LLM 回答论文以开放域问答为主要实验场景,多步路径采用 IRCoT。IRCoT 让模型利用已检索资料推进推理,再用中间推理内容形成后续检索查询。Adaptive-RAG 负责选择这条路径,具体怎样交替检索与推理由下游策略完成。
分类器怎样学到这些标签
如果只按问题字数、实体数量或是否含有“比较”来分类,很难判断实际需要多少次检索。一个很长的问题可能已经附带全部材料;一个很短的问题也可能包含多跳关系。
Adaptive-RAG 使用较小的语言模型作为分类器,并自动收集复杂度标签。标签构造结合两类信息:不同回答策略能否答对这个问题,以及数据集本身的任务特征。例如,较简单策略已经能够答对的问题,可以提供较低复杂度的训练信号;需要更多检索和推理才能解决的问题,则提供较高复杂度的信号。
分类器训练时学习的是“问题 → 策略标签”。上线推理时,它只需预测一次标签,不必为了选路先把三种回答过程都运行一遍。
这也解释了标签为什么与系统配置有关。同一道题,更强的生成模型可能无需检索就能答对;换了知识库后,原本需要多步的问题也可能在一次召回中获得完整资料。分类器所学习的复杂度依赖训练时使用的模型、检索器和数据,迁移到新系统后需要重新检查路由效果。
一道多跳题如何经过路由
假设问题是:“某篇论文第一作者此前任职的机构位于哪个城市?”分类器预测 Multi-step 后,执行过程可以展开为:
- 检索论文信息,确定第一作者。
- 根据作者姓名检索履历,找到问题所指的任职机构。
- 根据机构名称检索所在地,组合前面的关系生成答案。
第一步只知道论文,第二步才有作者,第三步才有机构。中间获得的实体成为后续查询条件,因此适合让检索与推理交替进行。
如果知识库中恰好有一篇完整介绍,同时写明论文、作者、任职机构和城市,单步检索也可能解决。路由器预测的是哪种路径更可能奏效;实际召回内容仍决定能否回答。工程上可以在执行路径中加入证据不足时的补查或停止规则,这部分控制需要另外实现,分类器本身只完成入口处的策略选择。
接入现有 RAG 时需要调整什么
检索路由通常选择查哪个知识库、哪个搜索接口;Adaptive-RAG 选择采用多复杂的回答过程。两者可以组合,例如先确定使用论文库,再决定在这个来源中进行单步还是多步检索。
现有系统若已经有单次 RAG 和多步问答流程,新增部分主要是分类器、策略标签到执行器的映射,以及各条路径共享的输入输出格式。分类器可以返回策略标签,由程序调用对应流程。用规则或通用 LLM 提示词也能先验证路由思路;复现 Adaptive-RAG 则需要匹配论文的标签构造、分类器训练和下游策略。
应用还应先限定允许的路径。公司制度、实时库存等问题需要访问当前数据,即使分类器判断简单,也不应走 No retrieval。相反,改写用户已经提供的完整材料,可以直接生成。“我这次报销是否超期”如果缺少结束日期和提交日期,需要补充用户信息,多检索几次制度无法补齐这些日期。
这些业务规则可以在调用分类器之前执行,或用于限制其可选择的策略。关于根据执行结果继续补查的控制过程,见迭代检索与 Agentic RAG。
路由的收益与误判代价
路由把简单问题分配给较短路径,把更多调用留给复杂问题。它也新增了一次分类成本,收益取决于请求分布:如果绝大多数问题原本就能单次解决,再增加分类器可能只会延长等待。
两种误判的后果不同。需要多步的问题被送到单步路径,可能缺失证据;一次可解决的问题被送到多步路径,主要增加调用和延迟。涉及当前数据的问题被送入零检索,则还会引入过期答案风险。
因此比较固定单次、固定多步与 Adaptive-RAG 时,应保持知识库快照、生成模型和答案标准一致,同时查看答案质量与每题总调用成本。还要检查误判后答案质量下降了多少,是否足以抵消节省的调用。