检索策略与复杂问答
复杂问答可能涉及多个数据源、相互依赖的事实和多次检索。这组文章先介绍数据源选择、任务分解和迭代执行,再分别讨论几种具体方法如何决定是否检索、如何补救或何时补查。
| 文章 | 何时、依据什么作判断 | 决定什么 |
|---|---|---|
| 检索路由 | 调用前,根据请求内容,由规则或模型选择 | 使用哪个数据源、哪个检索器 |
| 问题分解与多跳检索 | 根据问题拆出事实需求;有依赖时结合前一步结果 | 子问题怎样拆分,哪些能并行、哪些须等待 |
| 迭代检索与 Agentic RAG | 每轮根据已取得的资料和缺口,由控制流程或 Agent 判断 | 继续检索、调整查询、换工具,还是结束 |
| Adaptive-RAG | 回答前,由训练好的分类器读取问题 | 走不检索、单次检索或多步检索路径 |
| CRAG | 初次检索后,由评估器判断资料质量 | 使用并精炼已有资料、外部搜索,或结合两者 |
| Self-RAG | 生成过程中,由专门训练的模型输出反思信号 | 是否检索,以及保留哪些证据条件下的候选续写 |
| FLARE | 生成下一句草稿后,根据 token 置信度判断 | 是否检索补充资料,再重新生成该句 |