Adaptive-Note RAG 框架解析
1. 为什么要提出 Adaptive-Note RAG?
RAG(检索增强生成)技术是一种能有效解决 LLM(大语言模型)幻觉问题的可靠手段,通过借助外部非参数化知识,帮助 LLMs 拓展其知识边界。
但是,传统 RAG 在长问答、多跳问答等复杂任务时,往往很难收集到足够信息。
- 多跳问答中:要回答 "What does the acronym of the organization Danish Football Union is part of stands for?" 这一问题,首先需要检索到 "FIFA" 这个缩写,然后再检索 "FIFA" 代表的含义。单一轮次的检索难以覆盖这种链式推理需求。
- 长形式问答中:处理模糊查询需要探索多个相关方面,并深入细节,以生成全面且详尽的答案。
为了应对这一挑战,自适应 RAG(ARAG)尝试灵活决定'何时以及检索什么',以捕获更多有价值的知识,回答复杂问答。
尽管 ARAG 在性能上有所提升,但主流的 ARAG 方法仍存在不足,主要因为两点限制:
- 生成时机过早:每次检索都会立即触发生成,可能导致每个输出片段只反映了特定步骤的有限知识,而忽略了不同检索步骤中检索信息的整合与互动。
- 预测偏差:依赖 LLMs 主动预测检索时机,但 LLMs 的内部认知与实际检索需求之间的差异,可能导致错过关键的检索时机,从而造成知识收集的不足。
为此,自然语言处理与社会人文计算实验室(thunlp)研发了一款简洁、通用且高效的复杂问答增强型 RAG,名为 Adaptive Note-Enhanced RAG(Adaptive-Note)。
2. 什么是 Adaptive-Note RAG?
Adaptive-Note 包含三大核心组件:
- 左侧的迭代信息搜集器(Iterative Information Collector,IIC)
- 右侧的自适应记忆审核器(Adaptive Memory Reviewer,AMR)
- 任务导向的生成器
Adaptive-Note 能够从知识增长的视角自适应地搜集信息,并灵活地将新知与已搜集的知识整合。
2.1 迭代信息搜集器(IIC)
2.1.1 第一步:笔记启动阶段
以问题 q 启动搜集器,然后选择基于 BM25 或 DPR 的检索器进行信息检索,获取与 q 相关的 k 篇文档作为参考。不同于传统 RAG 方法直接将所有检索到的文档串联输入 LLM,Adaptive-Note 创建一个笔记来作为信息载体,记录并整合检索到的有价值信息。
初始化笔记的提示词模板旨在引导 LLM 提取关键事实,而非简单复制粘贴。
2.1.2 第二步:迭代信息搜集阶段
基于现有信息生成两个新的问题。新问题用于搜索补充资料,丰富笔记内容并帮助解答原始疑问。
类似于人类的行为,根据当前的最佳理解提出新问题。最优记忆包含了先前检索文档的相关知识点,以简洁、连贯的方式存储,减少了源文档的噪声。
2.1.3 第三阶段:笔记更新阶段
通过新提出的问题,挖掘文本库中潜在的、与查询语义相关的子空间,并把新检索到的文档内容自然融入已有知识体系。
与笔记启动阶段相似,不设定将新知融入旧知的固定模式,比如追加或基于事件的插入,这样做是为了避免束缚 LLM 能力的多样性。
从'如何稳健推动有效信息增长'的视角引导 LLM,通过零样本设置来完成复杂的信息搜集、精化和更新。
三个关键方面为 LLM 提供多维指导:
- 忠实性:收集的信息应贴近检索文档的风格,尽可能使用原文摘录;
- 有效性:收集的信息应对解决原始查询有所帮助;
- 可扩展性:收集的信息不应已包含在记忆中,换句话说,只需添加新的语义内容。
2.2 自适应记忆审核器(AMR)
从资料库中提取与问题相关的信息存在一个极限。基于此理念,自适应记忆审核器聚焦于两个核心问题:何者应存为最优记忆?何时停止检索?


