精读笔记:RAG 原论文
论文全称:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
作者:Patrick Lewis, Ethan Perez, Aleksandra Piktus 等(共 12 人,来自 Facebook AI Research & University College London)
发表会议:NeurIPS 2020(神经信息处理系统大会,AI 顶级会议)
arXiv 编号:2005.11401(2020 年 5 月)
引用量:数千次,是 RAG 方向奠基性论文
阅读地图
本文提出了"检索增强生成"(Retrieval-Augmented Generation,简称 RAG)框架。读完这篇精读笔记,你将理解:
- 为什么需要 RAG:纯模型记忆的局限性
- RAG 的核心思想:检索器 + 生成器的协同工作
- 两种 RAG 变体:RAG-Sequence vs RAG-Token 的区别
- 技术实现细节:DPR 检索器 + BART 生成器
- 端到端训练:如何让两个组件一起学习
- 实验验证:在哪些任务上达到了什么效果
核心类比(先记住这个,后面会反复用到):
RAG 就像一场"开卷考试"。闭卷考(纯语言模型)只能靠死记硬背,容易答错或瞎编;开卷考(RAG)允许考生先翻书查资料,再结合资料写答案,准确率大幅提升。
一、Abstract(摘要)
原文(核心句):
"Large pre-trained language models have been shown to store factual knowledge in their parameters, and achieve state-of-the-art results when fine-tuned on downstream NLP tasks. However, their ability to access and precisely manipulate knowledge is still limited, and hence on knowledge-intensive tasks, their performance lags behind task-specific architectures."
翻译:
大型预训练语言模型已被证明能够将事实性知识存储在参数中,并在下游 NLP 任务微调后达到最先进的效果。然而,它们访问和精确调用知识的能力仍然有限,因此在知识密集型任务上,它们的表现不及专门设计的任务特定架构。
讲解:
这句话提出了一个矛盾——GPT、BERT 这类大模型很强,但有一个致命弱点:它们的知识被"封印"在模型参数(数十亿个权重数字)里,无法像人类查字典那样精准检索某条知识。
类比:一个博览群书的学者(大模型),他记住了很多知识,但记忆并不完美——有时会记混、记错,也无法得知自己哪里记错了。
原文(核心句):
"We build RAG models where the parametric memory is a pre-trained seq2seq model and the non-parametric memory is a dense vector index of Wikipedia, accessed with a pre-trained neural retriever."
翻译:
我们构建了 RAG 模型,其中参数化记忆是一个预训练的序列到序列模型,非参数化记忆是一个 Wikipedia 的稠密向量索引,通过预训练的神经检索器来访问。
讲解:
这里引入了本文最核心的概念区分:
| 概念 | 含义 | 类比 |
|---|---|---|
| 参数化记忆(Parametric Memory) | 知识存储在模型的神经网络权重(参数)中 | 人脑的长期记忆,训练后固定 |
| 非参数化记忆(Non-parametric Memory) | 知识存储在外部数据库/文档中,随时可查 | 一本可随时翻阅的百科全书 |
RAG 的创新就在于把这两种记忆结合起来:模型本身(参数化记忆)负责理解和生成语言;Wikipedia 知识库(非参数化记忆)负责提供最新、精准的事实。
原文(核心句):
"We find that RAG models generate more specific, diverse and factual language than a state-of-the-art parametric-only seq2seq baseline."
翻译:
我们发现,与仅使用参数化记忆的最先进序列到序列基准相比,RAG 模型能够生成更加具体、多样且真实的语言。
讲解:
用三个词概括了 RAG 的优势:
- 更具体(specific):答案更精准,不含糊其辞
- 更多样(diverse):生成的内容不千篇一律
- 更真实(factual):减少了"幻觉"(hallucination)问题,即模型编造不存在事实的现象
二、Introduction(引言)——核心段落
原文(核心句):
"Such models do have downsides: They cannot easily expand or revise their memory, can't straightforwardly provide insight into their predictions, and may produce 'hallucinations'."
翻译:
然而,这类模型确实存在缺点:它们无法轻易扩展或修改记忆,无法直接对其预测提供解释,并且可能产生"幻觉"。
讲解:
作者列出了纯参数化模型(闭卷模型)的三大痛点:
- 无法更新知识:模型训练完后,知识就固化了。2021 年的新事件,一个 2020 年训练的模型完全不知道。想更新就得重新训练,成本极高。
- 不可解释:模型说"北京是中国首都",你问它"你从哪里知道的",它无法回答——知识被藏在数十亿参数里,无从追溯。
- 幻觉问题:模型会"一本正经地胡说八道",编造看起来合理但实际不存在的事实、人名、论文引用等。
原文(核心句):
"Knowledge-intensive tasks are those that humans could not reasonably be expected to perform without access to an external knowledge source."
翻译:
知识密集型任务是指那些人类在没有外部知识来源的情况下,不能被合理期望完成的任务。
讲解:
知识密集型任务(knowledge-intensive tasks) 是本文的核心应用场景。举例:
- 问"2018 年诺贝尔物理学奖得主是谁"——人类不查资料基本答不上来
- 问"某个化学物质的分子量"——需要查资料
对比"非知识密集型任务"如"把这句话翻译成中文"——凭语言能力就能完成,不需要特定事实知识。
原文(核心句):
"We propose RAG models that combine parametric and non-parametric memory for language generation, analogous to how we might imagine a doctor consulting a medical textbook while writing a diagnosis."
翻译(意译/综合论文意思):
我们提出了 RAG 模型,将参数化记忆与非参数化记忆结合用于语言生成——就如同一位医生在撰写诊断时边查阅医学教科书一样。
讲解:
这个类比非常直观:
- 医生自己的医学知识 = 参数化记忆(模型权重)
- 医学教科书 = 非参数化记忆(Wikipedia 知识库)
- 写诊断报告时查书 = RAG 的检索+生成过程
一个好医生既有扎实的医学背景(帮助他理解和表达),又善于查资料(确保事实准确)。RAG 模型就是这样设计的。
三、Methods(方法)——全部段落精读
3.1 整体架构概述
原文(核心句):
"Our models combine a pre-trained retriever pη(z|x) with a sequence-to-sequence model pθ(y|x,z) and train them end-to-end."
翻译:
我们的模型将预训练检索器 pη(z|x) 与序列到序列模型 pθ(y|x,z) 相结合,并进行端到端训练。
讲解:
RAG 由两大组件构成,用数学符号来表达:
| 符号 | 含义 |
|---|---|
| x | 输入问题(比如"谁发明了电话?") |
| z | 检索到的文档(比如维基百科某一段落) |
| y | 模型生成的答案 |
| pη(z|x) | 检索器:给定问题 x,返回相关文档 z 的概率分布 |
| pθ(y|x,z) | 生成器:给定问题 x 和文档 z,生成答案 y |
| η, θ | 检索器和生成器各自的参数(可训练) |
"端到端训练(end-to-end training)" 是关键词:检索器和生成器不是分别训练再拼接,而是一起训练,让它们互相配合,共同优化最终的答案质量。
3.2 检索文档作为隐变量(Latent Variable)
原文(核心句):
"We treat the retrieved document as a latent variable and marginalize over the top-K retrieved documents to produce a distribution over generated text."
翻译:
我们将检索到的文档视为隐变量,并对排名前 K 的检索文档进行边缘化,从而生成文本的概率分布。
讲解:
隐变量(latent variable) 这个概念是本文的数学核心,理解它很重要:
- 隐变量:在整个过程中,我们无法直接观测到哪篇文档"应该"被选择(没有人工标注说"这道题要用第3篇文档")。文档 z 是隐藏在背后的,我们只有输入 x 和期望输出 y。
- 边缘化(marginalize):既然不知道用哪篇文档,就把所有可能的文档加权求和。这是概率论的标准做法——当你不确定哪个中间变量是"正确的"时,对所有可能性求期望。
类比:你去图书馆查"爱迪生发明了什么",可能找到多本书都有相关内容。边缘化就是说"把这几本书的答案综合一下,给出最终回答",而不是死认准一本书。
"Top-K":实际计算时,不可能穷举所有 2100 万篇 Wikipedia 文档,所以只取相似度最高的 K 篇(论文中通常取 K=5 或 K=10)。
3.3 RAG-Sequence 模型
原文(核心句):
"RAG-Sequence Model — The RAG-Sequence model uses the same retrieved document to predict the complete sequence. Formally: p_RAG-Seq(y|x) ≈ Σ_{z∈top-k(p(·|x))} p_η(z|x) · p_θ(y|x,z)"
翻译:
RAG-Sequence 模型使用同一篇检索文档来预测完整的输出序列。形式上:p_RAG-Seq(y|x) ≈ 对所有 top-K 文档 z 求和,每项为检索概率 p_η(z|x) 乘以生成概率 p_θ(y|x,z)。
讲解:
RAG-Sequence 的核心假设:整个答案由同一篇文档生成。
用开卷考试类比:
- 你从 K 本参考书中选一本,用这本书回答整道题
- 但因为不确定选哪本最好,就分别用每本书生成一个答案,然后按"这本书有多相关"加权综合
公式分解:
p(y|x) = Σ [p_η(z|x) × p_θ(y|x,z)]
↑ ↑
检索器觉得z有多相关 生成器用z生成y的概率
对于每篇文档 z:
- p_θ(y|x,z) = ∏ᵢ p_θ(yᵢ|x, z, y₁,...,yᵢ₋₁)
即整个答案的生成概率 = 每个词的条件概率连乘(自回归生成,一个词接一个词)
推理(解码):
- 对每篇 top-K 文档单独做 beam search(束搜索),得到候选答案
- 对所有候选答案,综合每篇文档对它的支持程度,选出最终答案
3.4 RAG-Token 模型
原文(核心句):
"RAG-Token Model — The RAG-Token model can draw on a different latent document for each target token, and marginalize accordingly. Formally: p_RAG-Token(y|x) ≈ ∏ᵢ Σ_{z∈top-k(p(·|x))} p_η(z|x) · p_θ(yᵢ|x,z,y₁:ᵢ₋₁)"
翻译:
RAG-Token 模型可以为每个目标词调用不同的隐变量文档,并相应地进行边缘化。形式上:p_RAG-Token(y|x) ≈ 对每个词 yᵢ,在 top-K 文档上求和,每项为检索概率与该文档下生成该词概率之积。
讲解:
RAG-Token 的核心假设:答案中每个词可以来自不同的文档。
公式结构对比:
| RAG-Sequence | RAG-Token | |
|---|---|---|
| 边缘化(Σ)的位置 | 整个序列外面(先选文档,再生成全句) | 每个词外面(每生成一个词时都从文档中取) |
| 文档使用方式 | 全句用同一篇文档 | 每个词可参考不同文档 |
| 灵活性 | 较低 | 更高 |
| 计算复杂度 | 相对低 | 相对高 |
用开卷考试类比:
- RAG-Sequence:答完整道题只翻一本参考书
- RAG-Token:答题时每写一个词,都可以瞄不同的参考书
哪种更好?论文实验显示两者在不同任务上各有优劣:
- RAG-Sequence 在问答(需要连贯事实)上通常略好
- RAG-Token 在生成任务上更灵活
3.5 检索器:DPR(Dense Passage Retriever)
原文(核心句):
"The retriever pη(z|x) returns top K truncated passages of text given a query x. We use DPR (Karpukhin et al., 2020). DPR follows a bi-encoder architecture: pη(z|x) ∝ exp(d(z)ᵀq(x)), where d(z) = BERTd(z) and q(x) = BERTq(x) are dense representations produced by document and query BERT encoders."
翻译:
检索器 pη(z|x) 对于给定的查询 x 返回 K 篇截断的文本段落。我们使用 DPR(稠密段落检索器)。DPR 遵循双编码器架构:pη(z|x) ∝ exp(d(z)ᵀq(x)),其中 d(z) = BERTd(z),q(x) = BERTq(x) 分别是由文档编码器和查询编码器生成的稠密表示。
讲解:
什么是稠密检索(Dense Retrieval)?
传统检索(如搜索引擎的关键词匹配)是"稀疏检索"——要求词语完全匹配。比如搜索"iPhone 价格"就必须文档里有这两个词。
稠密检索(Dense Retrieval) 则把问题和文档都编码成向量(一串数字),通过计算向量间的相似度来检索:
- 即使文档里写的是"苹果手机售价",和"iPhone 价格"的向量也会很相似
- 能捕捉语义上的相关性,而不仅是词面匹配
DPR(Dense Passage Retriever)的工作原理:
问题 x ──[BERT_q]──→ 查询向量 q(x) ──┐
├──[内积]──→ 相似度分数
文档 z ──[BERT_d]──→ 文档向量 d(z) ──┘
- 用 BERT 模型把问题编码成一个向量(比如 768 维的数字列表)
- 用另一个 BERT 把每篇 Wikipedia 段落也编码成向量
- 计算问题向量和文档向量的内积(点积),内积越大代表越相关
- 用 MIPS(最大内积搜索)在 2100 万个文档向量中快速找到 top-K 个最相关的
类比:把每本书和你的问题都"翻译"成坐标系中的一个点,找离你问题最近的那些点对应的书。
关键数字:
- Wikipedia 被切分成约 2100 万个段落,每段约 100 个词
- 使用的是 2018 年 12 月的 Wikipedia 快照
- DPR 检索器本身是在 NaturalQuestions 和 TriviaQA 数据集上预训练的
3.6 生成器:BART
原文(核心句):
"The generator pθ(yᵢ|x,z,y₁:ᵢ₋₁) could in principle be any encoder-decoder. We use BART-large, a pre-trained seq2seq transformer with 400M parameters. To combine the input x with the retrieved content z, we simply concatenate them."
翻译:
生成器 pθ(yᵢ|x,z,y₁:ᵢ₋₁) 原则上可以是任意编码器-解码器结构。我们使用 BART-large,这是一个拥有 4 亿参数的预训练序列到序列 Transformer。为了将输入 x 与检索到的内容 z 组合,我们简单地将它们拼接起来。
讲解:
BART 是 Facebook(现 Meta)在 2019 年提出的预训练语言模型,擅长"理解输入、生成输出"类任务(翻译、摘要、问答等)。它有一个编码器(读懂输入)和一个解码器(生成输出)。
关键设计选择:"简单拼接"(concatenate):
模型输入 = "问题: 谁发明了电话? 参考文档: 亚历山大·格拉汉姆·贝尔(Alexander Graham Bell)于1876年发明了..."
RAG 没有设计复杂的融合机制,就是把问题和检索到的文档段落直接拼在一起喂给 BART。这个简单做法效果出人意料地好。
BART 的生成方式:
- 自回归(autoregressive):一个词一个词地生成
- 每步生成 yᵢ 时,能看到:问题 x、文档 z、以及已生成的前面所有词 y₁, ..., yᵢ₋₁
3.7 训练方式
原文(核心句):
"We train all components of RAG jointly, without any direct supervision on what document should be retrieved. We minimize the negative marginal log-likelihood of each target: Σⱼ -log p(yⱼ|xⱼ) using stochastic gradient descent with Adam."
翻译:
我们联合训练 RAG 的所有组件,无需对应该检索哪篇文档进行任何直接监督。我们使用带有 Adam 优化器的随机梯度下降,最小化每个目标的负边缘对数似然:Σⱼ -log p(yⱼ|xⱼ)。
讲解:
这部分解决了一个关键问题:我们没有人工标注告诉模型"第 3 题要用第 7 号文档"。那检索器怎么学习检索"正确"的文档?
答案是:通过最终答案的质量来反向传播。
训练流程:
1. 输入问题 x
2. 检索器找到 top-K 文档 {z₁, z₂, ..., zₖ}
3. 生成器分别基于每篇文档生成答案,加权求和得到 p(y|x)
4. 计算损失:真实答案的负对数概率
5. 反向传播:梯度同时流向生成器 θ 和检索器的查询编码器 η
6. 检索器学会检索"让生成器能给出正确答案的文档"
一个重要的工程决策:
- 查询编码器(query encoder):训练时更新参数
- 文档编码器(document encoder)和文档索引:固定不变
为什么文档编码器不训练?因为如果文档编码器的参数变了,那 2100 万篇文档的向量都需要重新计算,计算成本极高。固定文档编码器是实用性的妥协。
3.8 推理时的解码细节
原文(核心句):
"For RAG-Token we can use a standard beam decoder. For RAG-Sequence, the probability of each hypothesis can be estimated by running additional forward passes for hypotheses where required. We call this 'Thorough Decoding'. For faster decoding, we can make the approximation that pθ(y|x,zi)≈0 where y was not generated during beam search for document zi. We call this 'Fast Decoding'."
翻译:
对于 RAG-Token,可以使用标准的束搜索解码器。对于 RAG-Sequence,可以通过对需要的假设运行额外的前向传播来估计每个假设的概率,我们称之为"精细解码"。为了更快解码,我们可以做出近似:对于未在文档 zᵢ 的束搜索中生成的假设 y,令 pθ(y|x,zᵢ)≈0,这称为"快速解码"。
讲解:
RAG-Token 解码相对简单,因为每步生成可以直接综合所有文档的权重。
RAG-Sequence 解码更复杂,因为要对整个候选答案评分:
- 精细解码:严格计算每个候选答案在每篇文档下的概率,再加权——准确但慢
- 快速解码:假设一个答案如果没被某篇文档的 beam search 生成,就认为该文档对这个答案的支持度为 0——快但有近似误差
两种解码方式效果相近,快速解码在实际部署中更常用。
四、Experiments(实验)——关键段落
4.1 开放域问答结果
原文(核心句):
"RAG-Sequence achieves state-of-the-art results on Natural Questions (44.5 EM), WebQuestions (68.0 EM), and CuratedTrec (45.5 EM). RAG-Token achieves 44.1 EM on NQ. Notably, RAG's generation-based approach surpasses previous extractive approaches, showing that unconstrained generation can match span extraction."
翻译(综合论文多处结果):
RAG-Sequence 在自然问题(NQ)上达到 44.5 精确匹配(EM),在 WebQuestions 上达到 68.0 EM,在 CuratedTrec 上达到 45.5 EM,均创下当时最先进的成绩。值得注意的是,RAG 基于生成的方法超越了之前的抽取式方法,表明无约束生成可以与从文本中直接抽取答案的方法相媲美。
讲解:
精确匹配(Exact Match,EM) 是开放域问答的主要评估指标:模型生成的答案与标准答案完全一致才得分(部分正确不得分)。
实验对比的主要基线(baseline):
- DPR(仅检索):在 NQ 上达到 41.5 EM
- REALM:在 NQ 上达到 40.4 EM
- T5-11B(纯参数模型,110 亿参数):在 NQ 上约 36.6 EM
RAG-Sequence(44.5 EM)vs 纯 T5-11B(36.6 EM):一个带检索的 4 亿参数模型,胜过了不带检索的 110 亿参数模型。这说明检索的价值比模型参数量更重要。
一个重要发现:RAG 是生成式模型(自由生成答案),而很多强基线是抽取式模型(从文档中框出答案片段)。RAG 在不限定必须从文档抽取答案的情况下,仍然能超过抽取式方法,说明生成式 + 检索的路子是可行的。
4.2 TriviaQA 和 MS-MARCO 结果
| 数据集 | RAG-Sequence | RAG-Token | 代表性基线 |
|---|---|---|---|
| NaturalQuestions | 44.5 EM | 44.1 EM | REALM 40.4 EM |
| TriviaQA (wiki test) | 56.8 EM | 55.2 EM | DPR 57.9 EM |
| WebQuestions | 68.0 EM | 66.1 EM | T5-11B+SSM 60.5 EM |
| MS-MARCO NLG | 60.9 Bleu-1 | 62.1 Bleu-1 | BART 0 检索 52.1 |
讲解:
- TriviaQA 上 DPR 略高于 RAG-Sequence(57.9 vs 56.8),说明并非所有任务 RAG 都完胜
- MS-MARCO 是更复杂的摘要式问答,RAG-Token 在此任务上表现略优于 RAG-Sequence,体现了其逐词灵活检索的优势
4.3 Jeopardy 问题生成(知识生成任务)
原文(核心句):
"In human evaluations, we find that RAG is more factual than BART in 42.7% of cases versus 7.1% for BART, demonstrating that RAG hallucinate less than a parametric-only baseline on open-domain generation."
翻译:
在人工评估中,我们发现 RAG 在 42.7% 的情况下比 BART 更符合事实,而 BART 仅在 7.1% 的情况下更符合事实,表明 RAG 在开放域生成中产生的幻觉比仅参数化的基线更少。
讲解:
Jeopardy 问题生成是一个有趣的任务:给定一个实体(比如"亚历山大·格拉汉姆·贝尔"),要求模型生成一条 Jeopardy 风格的陈述("这位苏格兰发明家于 1876 年获得了电话专利")——这需要准确的事实知识。
人工评估结果非常直观:
- RAG 生成的陈述更准确:42.7% 的情况下 RAG 更好
- BART(纯参数模型)仅 7.1% 情况下更好
- 说明 RAG 的幻觉问题远少于 BART
这印证了 RAG 的核心价值:检索锚定了事实,减少了模型瞎编的概率。
4.4 非参数化记忆的可替换性
原文(核心句):
"We demonstrate this by building an index using the DrQA Wikipedia dump from December 2016 and comparing results with the 2018 index for world leader questions. RAG achieved 70% accuracy with the 2016 index for 2016 leaders and 68% with the 2018 index for 2018 leaders, demonstrating that we can update RAG's world knowledge by simply replacing its non-parametric memory."
翻译:
我们通过使用 2016 年 12 月的 Wikipedia 快照构建索引,并将结果与 2018 年索引在世界领导人问题上进行比较来验证这一点。RAG 用 2016 年索引回答 2016 年领导人问题达到 70% 准确率,用 2018 年索引回答 2018 年领导人问题达到 68% 准确率,表明我们可以通过简单替换非参数化记忆来更新 RAG 的世界知识。
讲解:
这个实验回答了一个实用性问题:不重新训练模型,能更新 RAG 的知识吗?
答案是:可以! 只需换一个新的 Wikipedia 索引,模型就"知道"了新的事实。
类比:你的开卷考试参考书更新了新版(从 2016 年版换成 2018 年版),学生(模型)不需要重新学习,只要拿着新版参考书就能回答关于新内容的问题。
这一特性在实际应用中极为重要:
- 知识库可以定期更新(比如每天更新)
- 不需要昂贵的重新训练
- 天然支持"时效性"要求高的任务
4.5 FEVER 事实验证结果
原文(核心句):
"For 3-way classification, RAG scores are within 4.3% of state-of-the-art models that use more complex multi-hop retrieval pipelines."
翻译:
在三分类任务上,RAG 的得分与使用更复杂的多跳检索流水线的最先进模型相差不超过 4.3%。
讲解:
FEVER(Fact Extraction and VERification) 任务:给定一个声明(如"爱迪生发明了电灯泡"),判断它是:
- 支持(SUPPORTED):Wikipedia 能证实
- 反驳(REFUTED):Wikipedia 能推翻
- 信息不足(NOT ENOUGH INFO)
RAG 的表现:在 3 分类任务上,仅比最强专用模型低 4.3%,而那些模型专门设计了多步骤、多跳的复杂检索策略。RAG 用一个统一的框架就达到了接近专用系统的效果,体现了其通用性。
五、核心概念回顾与总结
RAG 的完整工作流程
用户提问 → 检索器(DPR)→ Top-K Wikipedia 段落
↓
生成器(BART)读取问题 + 文档
↓
生成最终答案
两种模型的直觉对比
RAG-Sequence:
问题 → 取K篇文档 → [文档1: 生成完整答案] × 权重1
[文档2: 生成完整答案] × 权重2 → 加权选择最终答案
[文档K: 生成完整答案] × 权重K
RAG-Token:
问题 → 取K篇文档 → 生成词1: 综合K篇文档的概率 → 词1
生成词2: 综合K篇文档的概率 → 词2 → 最终答案
生成词n: 综合K篇文档的概率 → 词n
为什么 RAG 是一篇里程碑论文?
- 统一框架:把检索和生成统一在一个可端到端训练的框架里,不再是拼凑流水线
- 无监督检索学习:不需要标注"哪道题用哪篇文档",检索器通过最终任务质量自动学习
- 知识可更新:非参数记忆(Wikipedia 索引)可以独立更新,不重训模型
- 减少幻觉:检索锚定了生成内容,显著减少模型编造事实的问题
- 开创了 RAG 范式:后来 REALM、Atlas、Self-RAG 等大量工作都建立在 RAG 的思想之上
关键术语速查
| 术语 | 中文 | 一句话解释 |
|---|---|---|
| Retrieval-Augmented Generation | 检索增强生成 | 先检索相关文档,再据此生成答案 |
| Parametric Memory | 参数化记忆 | 知识存在模型权重中(固化) |
| Non-parametric Memory | 非参数化记忆 | 知识存在外部数据库中(可更新) |
| Dense Retrieval | 稠密检索 | 用向量相似度检索,能理解语义 |
| DPR | 稠密段落检索器 | 本文用的检索组件,基于 BERT |
| BART | 序列到序列生成模型 | 本文用的生成组件,类似 T5 |
| Latent Variable | 隐变量 | 检索的文档,训练时未直接标注 |
| Marginalize | 边缘化 | 对多个文档的可能性加权求和 |
| RAG-Sequence | RAG 序列模型 | 整个答案用同一篇文档 |
| RAG-Token | RAG 词元模型 | 每个词可用不同文档 |
| End-to-end Training | 端到端训练 | 检索器和生成器联合优化 |
| Hallucination | 幻觉 | 模型生成听起来合理但不真实的内容 |
| Exact Match (EM) | 精确匹配 | 问答评估指标,完全正确才得分 |
| Beam Search | 束搜索 | 保留多个候选序列的解码算法 |
| Top-K | 前 K 个 | 检索最相关的 K 篇文档(通常 5 或 10) |
六、延伸思考(新手进阶)
Q1:RAG 和纯 LLM 的最大区别是什么?
RAG 允许模型在"回答"之前先"查资料"。纯 LLM 只靠训练时记住的知识,知识截止日期固定;RAG 的知识库可以实时更新,且生成时有据可查,减少幻觉。
Q2:为什么不直接训练一个足够大的模型来记住所有知识?
- 维基百科有数十亿词,全部背下来需要天文数字的参数量
- 知识是动态变化的,重新训练成本极高
- 检索比"记忆"在准确性上更可靠——人类也不靠死记硬背,而是查书
Q3:RAG 有什么局限性?
- 检索延迟:每次推理都要检索,比纯模型慢
- 检索质量上限:如果检索到错误文档,生成器可能被误导
- 多跳推理(需要综合多个文档推理)效果有限
- 知识库需要维护和更新
Q4:这篇论文之后有哪些重要改进工作?
- FiD(Fusion-in-Decoder):改进了多文档融合方式
- REALM:探索了预训练阶段就融入检索
- Self-RAG:让模型自己决定是否需要检索
- Atlas:将检索增强推向少样本学习
本精读笔记覆盖:Abstract(全部)、Introduction(核心段落)、Methods 章节(全部,重点精读)、Experiments 关键结果段落。相关工作(Related Work)和附录(Appendix)内容为次要参考,在此略过。
字数约:9000 字