引言
我们正处于检索增强生成 (Retrieval-Augmented Generation, RAG) 的“黄金时代”。如果你最近使用过大型语言模型 (LLMs) ,你应该熟悉这个流程: LLMs 非常聪明,但它们可能会遗忘、过时,或者容易自信地胡说八道——这种现象被称为“幻觉”。
行业标准的解决方案一直是 RAG。其思路很简单: 在模型回答问题之前,我们让它通过查阅数字图书馆 (如维基百科) 来“作弊”找到答案。我们检索相关文档,将其提供给模型,并要求它根据这些证据生成答案。
但这个完美的计划存在一个缺陷。
当“图书馆”递给模型一本错误的书时会发生什么?如果检索到的文档不相关、过时或具有误导性怎么办?标准的 RAG 模型往往太容易轻信了。它们被设计成即使上下文是垃圾内容,也要从中挤出答案。结果呢?模型要么基于错误信息产生幻觉,要么因为受到嘈杂检索结果的干扰而忽略了其内部知识。
在这篇文章中,我们将深入探讨一篇题为 “Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models” 的论文。研究人员引入了一种类似人类的巧妙机制来解决这个问题。与其盲目地阅读并回答,模型被教导要先做笔记——在给出答案之前批判性地评估数据。

如上图 1 所示,标准模型 (左) 看到一段关于某首歌的片段后,盲目地认为这就是答案,结果弄错了。 Chain-of-Note (CoN) 模型 (右) 阅读该片段后,记录下它指的是一首名字相似的不同歌曲,并正确地识别出了正确答案。
背景: “先检索再阅读”的风险
要理解为什么 Chain-of-Note 是必要的,我们首先需要了解标准检索增强语言模型 (RALMs) 是如何工作的。
标准流程主要有两个参与者:
- 检索器 (Retriever) : 一个在海量数据库 (如维基百科) 中搜寻与你查询相关文档的系统。
- 阅读器/生成器 (Reader/Generator) : 接收你的查询和检索到的文档以构建答案的 LLM。
在数学上,模型试图在给定输入 \(x\) 和检索到的文档 \(d\) 的情况下,最大化正确答案 \(y\) 的概率。它看起来像这样:
\[ p(y|x) = \sum p(y|d, x)p(d|x) \]用通俗的话说就是: “答案取决于问题是什么,以及文档说了什么。”
问题: “轻信”的阅读器
当检索器失败时,问题就出现了。搜索引擎并不完美。如果你问一个复杂的问题,检索器可能会返回 5 个 看起来 相关的文档,因为它们包含相同的关键词,但实际上并没有包含任何有用的内容。
标准模型受限于 表层处理 (Surface-Level Processing) 。 它们看到关键词就立即试图将它们拼凑成句子。它们缺乏一个“过滤”步骤。如果你在问关于“苹果 (科技公司) ”的问题时,给标准 RAG 模型一份关于“苹果 (水果) ”的文档,它可能会试图解释 iPhone 是如何在秋天收获的。
这导致了两个主要失败:
- 噪声敏感性: 模型被不相关的信息干扰。
- 无法回答“未知”: 如果文档中没有答案,且模型自己也不知道,它通常会编造一些东西,而不是承认无知。
核心方法: Chain-of-Note (CoN)
研究人员提出了一种方法,模拟细心的人类学生如何通过开卷考试。你不会只抄你看到的第一句话。你会阅读段落,思考它是否真的回答了问题,做一个心理笔记,然后 写下你的答案。
Chain-of-Note (CoN) 引入了一个中间步骤。模型为每个检索到的文档生成连续的“阅读笔记”。这使得它能够:
- 评估相关性。
- 解决文档之间的冲突。
- 识别信息缺失的情况。
三种类型的笔记
这里的核心创新不仅仅是“做笔记”,而是模型在这个步骤中执行的推理 类型。如下图架构所示,该框架处理三种不同的场景。

让我们分解图 2 中显示的这三条路径:
1. 相关信息 (直接回答)
- 场景: 检索器工作得很完美。文档包含了确切的答案。
- 笔记: 模型写下一个笔记,确认该文档解决了具体问题。
- 结果: 模型直接提取答案。
- *示例 (左图) : * 问题: “死侍 2 是什么时候上映的?”笔记确认文档给出了确切日期。
2. 上下文信息 (推理)
- 场景: 文档没有确切答案,但它提供了线索,结合模型的内部知识可以解决谜题。
- 笔记: 模型记录下上下文并将其关联起来。
- 结果: 模型推断出答案。
- *示例 (中图) : * 问题: “谁写了歌曲 ‘When I was 17’?”文档提到了歌曲 “It Was a Very Good Year”。模型意识到它们是相关的,并利用其内部训练数据识别出词曲作者 Ervin Drake,即使他的名字没有明确出现在片段中。
3. 不相关信息 (鲁棒性)
- 场景: 检索器失败了。文档完全是关于错误的主题。
- 笔记: 这是一个改变游戏规则的步骤。模型明确写道: “该文档讨论的是 X,但问题问的是 Y。这不相关。”
- 结果: 模型拒绝噪声。如果其内部知识也无法回答,它会输出“未知”。
- *示例 (右图) : * 问题: “分歧者系列的第四部电影什么时候上映?”文档讨论了预算削减和第一部电影。模型记录下缺乏相关信息,并正确地得出结论: 答案是未知的。
训练模型
如何教模型像这样记笔记?你找不到现成的“维基百科文章笔记”数据集。
研究人员使用了一个巧妙的合成数据流程:
- 数据收集: 他们从 Natural Questions (NQ) 数据集中选取了 10,000 个问题。
- 教师模型: 他们使用 GPT-4 为这些问题生成“金标准”的阅读笔记。他们提示 GPT-4 扮演理想学生的角色,创建笔记将文档分类为相关、上下文相关或不相关。
- 学生模型: 然后,他们在这个合成数据集上微调了一个较小的模型 LLaMA-2 7B 。
这个过程本质上是将巨大的 GPT-4 的推理能力提炼到了更小、更快的 LLaMA-2 模型中。
用于提效的混合训练
对“Chain-of-X”方法 (如思维链 Chain-of-Thought) 的一个合理批评是它们会减慢速度。在每个答案之前生成一段笔记会增加延迟和计算成本。
为了解决这个问题,作者引入了 混合训练策略 (Hybrid Training Strategy) 。
他们在 50/50 的混合数据上训练模型:
- 50% 的时间,模型被强制使用 Chain-of-Note 格式 (生成笔记 -> 回答) 。
- 50% 的时间,模型被强制使用 标准 RALM 格式 (直接生成答案) 。
为什么要这样做? 假设是,通过强制模型在一半的时间里解释其推理过程,它会“内化”这种批判性思维过程。在推理 (实际使用) 期间,你可以直接要求答案。模型在训练中学会了相关性检测的 模式,从而保留了 CoN 的鲁棒性,而没有额外的 token 生成成本。
实验与结果
研究人员将他们的方法与标准 RALM (检索并阅读) 和纯内部生成 (无检索) 进行了评估对比。他们使用了主要的基准测试,如 Natural Questions (NQ)、TriviaQA 和 WebQ。
他们关注三个主要指标:
- 整体 QA 性能: 它能答对更多问题吗?
- 噪声鲁棒性: 它能处理糟糕的文档吗?
- 未知鲁棒性: 它能承认自己不知道吗?
1. 噪声鲁棒性: “垃圾输入”测试
这是论文中最令人印象深刻的结果。为了测试鲁棒性,研究人员故意破坏了检索结果。他们向模型输入不相关的文档,看它是否会感到困惑。

图 3 说明了一切:
- 蓝线 (标准 RALM) : 随着噪声比率的增加 (从左到右,特别是看不相关文档增多时的下降) ,标准模型的性能直线下降。它很容易被垃圾数据分心。
- 红线 (CoN) : 性能保持非常稳定。即使提供了 100% 的噪声文档,CoN 模型的表现也明显更好——基本上是依靠其内部知识,而不是基于糟糕的文档产生幻觉。
从数字上看,在 100% 噪声文档的 Natural Questions 数据集上, Chain-of-Note 方法的准确率比标准方法提高了 +7.9 分 。
2. 未知鲁棒性: “RealTimeQA” 测试
研究人员还在 RealTimeQA 上测试了模型,这是一个包含模型训练之后发生的事件相关问题的数据集。
- 标准 RALM: 经常试图基于过时的预训练数据或不相关的检索片段强行给出一个答案。
- Chain-of-Note: 实现了 +10.5 分的拒绝率提升 。
这意味着 CoN 模型更擅长说: “我读了文档,也检查了我的记忆,我确实不知道答案。”对于用户信任来说,这种“拒绝”能力与正确回答同样重要。
3. 与思维链 (CoT) 的比较
你可能会想: “这不就是思维链 (Chain-of-Thought) 吗?”
是,也不是。思维链 (CoT) 通常要求模型“一步一步地思考”。研究人员将 CoN 与标准 CoT 进行了比较。他们发现,虽然 CoT 有助于逻辑推理 (数学、谜题) ,但 CoN 在检索任务中更胜一筹 。
为什么?因为 CoT 提示通常关注 答案生成 的逻辑。CoN 专门关注 文档评估 的逻辑。它强制模型专门与检索内容互动,而不只是思考查询本身。
结论与启示
“Chain-of-Note” 论文强调了我们在构建 AI 系统方面的一个关键演变。我们正从将 LLMs 视为简单的输入输出机器,转向将其视为必须评估其输入的积极推理者。
主要收获:
- 怀疑是一种技能: 需要明确教导模型怀疑其来源。标准训练假设上下文总是相关的;CoN 挑战了这一假设。
- 笔记弥合差距: 写出中间评估 (笔记) 允许模型在说话之前“思考”,过滤掉噪声并连接不相关的线索。
- 效率很重要: 通过混合训练,我们可以将这种批判性思维融入模型的权重中,从而在不牺牲鲁棒性的情况下实现快速推理。
对于构建 RAG 系统的学生和工程师来说,这篇论文表明,检索的质量只是战斗的一半。另一半是确保你的生成器知道当检索不可避免地失败时该怎么做。通过实施 Chain-of-Note 架构,我们可以构建不仅更聪明,而且更诚实、更可靠的 AI。
](https://deep-paper.org/en/paper/2311.09210/images/cover.png)