RAG 框架经典论文导读合集

面向零基础新手 · 11 篇精选 · 中文导读

整理日期:2026-05-27


总览:RAG 是什么,为什么需要它,这 11 篇如何演进

RAG 在大模型体系里的位置

大语言模型(LLM,如 GPT、LLaMA)是在海量文本上预训练的"知识压缩机"——它把训练时见过的知识"压进"几十亿个参数里。但这种方式有两个天然缺陷:

  1. 知识截止问题:模型训练完成后,新发生的事情它不知道。问它"昨天的新闻",它只能瞎猜。
  2. 幻觉问题:模型不确定的时候,会自信地编造听起来合理的答案,专业上叫"hallucination(幻觉)"。

RAG(Retrieval-Augmented Generation,检索增强生成) 就是给模型配一个"开卷考试"的能力:每次回答问题时,先去外部知识库(文档、数据库、网页)里检索相关内容,再把检索到的资料喂给模型,让它"照着资料作答"。

类比:
- 纯 LLM = 闭卷考试,只靠背书
- RAG = 开卷考试,考前可以翻参考书

RAG 不替换 LLM,而是给 LLM 装上了"即时查阅"的能力,是目前企业落地知识问答、文档检索、客服机器人最主流的技术路线。

这 11 篇论文的逻辑演进

早期检索增强(稀疏检索 + 预训练融合)
    ├── REALM [2002.08909]   → 把检索器嵌入预训练,端到端联合训练
    ├── DPR   [2004.04906]   → 用双编码器做稠密检索,性能大幅超越BM25
    └── RAG原论文 [2005.11401] → 把检索器+生成器统一框架,RAG正式命名

高效解码与大规模检索
    ├── FiD   [2007.01282]   → 多段落融合解码,大幅提升多跳QA效果
    └── RETRO [2112.04426]   → 训练时就做检索,万亿参数规模验证

少样本与自适应检索
    ├── Atlas [2208.03299]   → 少样本场景下联合微调检索器+生成器
    ├── HyDE  [2212.10496]   → 用LLM生成假设文档改善检索质量

主动与自反思 RAG(让模型自己决定何时检索)
    ├── FLARE  [2305.06983]  → 预测下一句,按需触发检索
    ├── Self-RAG [2310.11511]→ 生成反思标记,自评价、自纠错
    └── CRAG  [2401.15884]   → 对检索结果打分+网络搜索补充

综述
    └── RAG Survey [2312.10997] → 系统梳理全貌,是入门的地图

整体脉络:从"怎么检索更准"→"怎么生成更好"→"怎么让模型自主判断要不要检索",技术层层递进,每篇都在解决上一代的痛点。


论文 1:RAG 原论文

标题:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
arXiv:2005.11401
作者:Patrick Lewis 等(Facebook AI Research)
发表:NeurIPS 2020


一句话概括

提出了"检索增强生成"这一统一框架,首次将稠密检索器与序列到序列生成模型端到端结合,正式确立了 RAG 这个名称与范式。


背景与动机

2020 年前,NLP 社区解决知识密集型任务(比如开放域问答、事实核查)有两条路:

痛点:有没有一种方法,既能利用大模型的语言生成能力,又能随时查阅外部知识库?这就是 RAG 要解决的问题。

类比:想象你在参加"谁是百万富翁",你有两个选择——死记硬背(参数化)或者偷偷带小抄(检索)。RAG 就是合法地把"带参考资料"做进了模型架构里。


论文结构与格式

全文约 10 页(正文)+ 附录,NeurIPS 风格。结构:
1. Introduction:点出痛点,介绍贡献
2. Methods:RAG-Sequence 与 RAG-Token 两种变体
3. Experiments:开放域 QA、摘要、对话等多任务实验
4. Analysis:消融实验——检索器好不好、文档数量影响等
5. Related Work:与 REALM、DPR 的关系
6. Conclusion

写作套路:先讲统一框架,再分变体,再大量实验验证,最后消融。是典型的 NLP 体系论文写法。


核心方法/架构详解

整体流程(开卷考试类比)

问题 q
  → 检索器(DPR)在维基百科里找 Top-K 篇文章
  → 把文章和问题拼接成输入
  → 生成器(BART)阅读后生成答案

两个核心组件

  1. 检索器(Retriever):DPR(Dense Passage Retrieval)
    - 用两个 BERT 编码器分别把"问题"和"文章段落"编码成向量
    - 在向量空间里用余弦相似度找最近邻(最相关的段落)
    - 索引用 FAISS 构建,支持毫秒级近似最近邻检索
    - 类比:图书馆里有一个超级智能的书目索引,能按"含义"而非"关键词"找书

  2. 生成器(Generator):BART
    - 是一个 seq2seq(序列到序列)模型,擅长生成流畅文本
    - 输入 = 问题 + 检索到的 K 篇文章
    - 输出 = 最终答案

两种变体

类比:
- RAG-Sequence:先让 5 个同学各自答题,再投票选最好的答案
- RAG-Token:5 个同学实时协作,每写一个字都可以互相商量


主要创新点

  1. 首次将稠密检索器(DPR)与生成模型(BART)端到端联合训练
  2. 提出 RAG-Sequence 和 RAG-Token 两种概率框架,有理论推导
  3. 不需要人工标注检索监督信号,只用 QA 对即可训练
  4. 在多个知识密集型任务上超越当时所有 SOTA(包括闭卷 T5 11B)
  5. 知识库(维基百科)可独立更新,不用重训模型

实验设置


写作风格特点


图表亮点


新手阅读建议


论文 2:REALM

标题:REALM: Retrieval-Augmented Language Model Pre-Training
arXiv:2002.08909
作者:Kelvin Guu 等(Google Research)
发表:ICML 2020


一句话概括

预训练阶段就把检索器嵌入进来,让语言模型在"预测被遮盖词"时学会主动查阅知识库,是 RAG 家族的先驱之作。


背景与动机

2020 年初,BERT 横扫 NLP 各榜单,但有个大问题:BERT 的知识来自预训练语料,一旦训练完就"冻结"了。如果问它一个需要具体事实的问题(比如"爱因斯坦出生在哪里"),它只能靠参数里的模糊记忆回答。

REALM 的动机:能不能在预训练时就教会模型"不确定就去查"?

类比:普通学生背书(标准预训练),REALM 学生从小就养成"遇到不懂的查字典"的习惯——查字典这个行为本身也被纳入训练。


论文结构与格式

全文约 11 页,ICML 格式:
1. Introduction:批判参数化记忆的局限
2. REALM:模型架构 + 预训练目标
3. Fine-tuning:如何在下游任务微调
4. Experiments:开放域 QA 实验
5. Analysis:检索器学到了什么?
6. Related Work & Conclusion


核心方法/架构详解

关键思路:把"检索"变成预训练目标的一部分。

预训练任务:掩码语言建模(MLM)的增强版

标准 BERT 的 MLM:给一句话,随机遮住几个词,让模型猜被遮住的词。

REALM 的改造:猜词之前,先去知识库里检索相关文档,再用文档内容帮助猜词。

数学上,REALM 要最大化:

P(词 x | 上下文) = Σ_z P(x | z, 上下文) × P(z | 上下文)

其中 z 是检索到的文档。这意味着:正确答案的概率 = 在所有可能的参考文档上求和

两个编码器
- 知识检索器(Knowledge Retriever):BERT 编码问题,另一个 BERT 编码文档,用内积算相关性
- 知识增强编码器(Knowledge-Augmented Encoder):把问题和检索到的文档拼接,用 Transformer 处理,最终预测答案

关键工程挑战:如何在训练时高效检索?

每次更新参数,文档的向量表示都会变,所以需要定期重建 FAISS 索引(论文称为"异步索引刷新")。这是 REALM 最有工程价值的贡献之一。


主要创新点

  1. 首次将检索器嵌入预训练阶段(而非微调阶段),让模型从零开始学会检索
  2. 检索器与语言模型联合优化,检索行为有梯度更新
  3. 提出异步 FAISS 索引刷新机制,解决训练时检索器参数变化的问题
  4. 提出"Salient Span Masking":只遮住实体或日期等"需要知识"的词,避免浪费训练在无意义的词上

实验设置


写作风格特点


图表亮点


新手阅读建议


论文 3:DPR

标题:Dense Passage Retrieval for Open-Domain Question Answering
arXiv:2004.04906
作者:Vladimir Karpukhin 等(Facebook AI Research)
发表:EMNLP 2020


一句话概括

用双塔 BERT 编码器做稠密向量检索,大幅超越传统关键词检索(BM25),成为现代 RAG 系统的"标准检索器"。


背景与动机

开放域问答(Open-Domain QA)需要从海量文档中找到相关段落,传统方法是 BM25——一种基于词频统计的关键词匹配算法,用了几十年了。

BM25 的问题:纯靠关键词,理解不了语义。比如问"飞机的发明者",文档里写的是"莱特兄弟率先实现了动力飞行",BM25 可能找不到,因为关键词没重叠。

DPR 的动机:用神经网络把问题和文章都编码成向量,在向量空间里按语义相似度检索。

类比:
- BM25 = 按书名关键词找书(只能找到书名里有这几个字的)
- DPR = 按内容含义找书(哪怕书名不含关键词,只要内容相关就能找到)


论文结构与格式

全文约 12 页,EMNLP 格式:
1. Introduction:BM25 的局限性
2. Dense Passage Retrieval:双编码器架构
3. Experiments:与 BM25 对比,多数据集验证
4. Ablation Study:训练数据质量、负样本选择等
5. Qualitative Analysis:案例分析


核心方法/架构详解

双塔编码器(Bi-Encoder)

问题 q   → BERT_Q → 向量 E_q(768维)
段落 p   → BERT_P → 向量 E_p(768维)
相似度 = E_q · E_p(内积)

两个 BERT 编码器分别把问题和段落压缩成固定长度的向量,然后用向量内积衡量相关性。

训练方式(对比学习)

给定一个问题和一个正样本段落(包含答案),训练目标是让正样本的相似度得分远高于负样本:

批内负样本是工程技巧:batch 里有 B 个问题,每个问题的"正样本"对其他问题来说都是负样本,这样一个 batch 实际上提供了 B×(B-1) 个负样本对,大大提高了训练效率。

离线索引构建

训练完后,把维基百科的 2100 万个段落全部用 BERT_P 编码成向量,存入 FAISS 索引(大约需要 65GB 内存)。推理时只需实时编码问题,然后在 FAISS 里做近似最近邻搜索,毫秒级返回 Top-K 段落。


主要创新点

  1. 证明了稠密检索可以全面超越 BM25,彻底改变了开放域 QA 的技术路线
  2. 系统研究了负样本选择策略,发现 BM25 难负样本最关键
  3. 只用少量 QA 标注对(约 1000-64000 条)就能训练出强大检索器
  4. 配套了完整的训练框架和索引工具,开源代码被后续大量工作沿用

实验设置


写作风格特点


图表亮点


新手阅读建议


论文 4:FiD

标题:Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering
arXiv:2007.01282
作者:Gautier Izacard, Edouard Grave(Facebook AI Research)
发表:EACL 2021


一句话概括

提出"Fusion-in-Decoder(解码器端融合)"机制,让生成模型同时参考多达 100 篇检索段落,大幅提升开放域 QA 性能。


背景与动机

RAG 原论文已经把检索器和生成器结合起来了,但有个隐患:检索段落太多时,模型处理不过来

原来的做法("Fusion-in-Encoder")是把所有检索段落拼接成一个长输入,喂给编码器。问题是:段落越多,输入越长,Transformer 的自注意力复杂度是 O(n²),计算量爆炸,而且 BERT 类模型有 512 token 的长度限制。

FiD 的洞见:能不能把每篇段落单独编码,只在解码时融合信息? 这样编码阶段的计算复杂度是线性的,可以轻松处理 100 篇段落。

类比:
- 旧方法 = 把 100 本参考书的内容全印在一张纸上,一次性读(读不完)
- FiD = 分别精读每本参考书做笔记,写答案时综合笔记


论文结构与格式

全文约 8 页,EACL 格式(偏短),结构精炼:
1. Introduction:指出 Fusion-in-Encoder 的扩展性瓶颈
2. Fusion-in-Decoder:核心方法
3. Experimental Setup:数据集和基线
4. Results:主实验
5. Analysis:段落数量的影响、与 RAG 对比


核心方法/架构详解

关键设计:编码器独立,解码器统一

Step 1:对每篇检索段落独立编码
  [问题; 段落1] → Encoder → 向量序列 H1
  [问题; 段落2] → Encoder → 向量序列 H2
  ...
  [问题; 段落K] → Encoder → 向量序列 HK

Step 2:把所有向量序列拼接
  H_all = [H1; H2; ...; HK]

Step 3:解码器对 H_all 做交叉注意力,生成答案
  Decoder → 读取 H_all → 生成答案 token

为什么有效?

解码器的交叉注意力(cross-attention)可以在生成每个 token 时,自由地关注所有 K 篇段落的任意位置。这比 RAG 的"独立生成后投票"更灵活——解码器可以在不同段落之间做"软融合",综合多段落的信息。

与 RAG 的关键区别

方法 多段落处理方式
RAG-Sequence 对每篇文章独立生成,最后投票
RAG-Token 生成每个 token 时对所有文章求边缘概率
FiD 编码器独立处理,解码器统一融合

FiD 在计算上更高效(编码可以并行),在效果上也更好(解码器有更强的融合能力)。


主要创新点

  1. 提出编码器-解码器分离的"Fusion-in-Decoder"范式,突破段落数量限制
  2. 证明检索段落数量(从 10 到 100)与 QA 性能正相关,越多越好
  3. 架构简洁优雅,工程上易于实现
  4. 成为后续多跳 QA、长文档 QA 的基础架构

实验设置


写作风格特点


图表亮点


新手阅读建议


论文 5:RETRO

标题:Improving Language Models by Retrieving from Trillions of Tokens
arXiv:2112.04426
作者:Sebastian Borgeaud 等(DeepMind)
发表:ICML 2022


一句话概括

训练阶段就整合检索机制,构建了 250 亿参数的 RETRO 模型,展示了检索增强可以让小模型媲美大 25 倍的纯语言模型。


背景与动机

前面的 RAG 方法都是"事后叠加"——先训一个语言模型,再给它装上检索模块。RETRO 问了一个更根本的问题:如果从一开始训练时就让模型学会怎么使用检索结果,会不会更好?

另一个动机:大模型训练成本极高,但检索数据库可以无限扩充且成本低。能不能用小模型+大数据库来模拟大模型的知识?

类比:
- 普通 RAG = 先培养一个数学家,毕业后给他一个图书证
- RETRO = 从小就在图书馆里上课,检索和学习同步进行


论文结构与格式

全文约 15 页,DeepMind 风格的大体量论文:
1. Introduction:大模型参数即知识的局限
2. Method:RETRO 架构(Chunked Cross-Attention)
3. Experiments:语言模型困惑度、下游任务
4. Analysis:训练时检索 vs 推理时检索、数据库大小的影响
5. Discussion:隐私、记忆泄露等伦理讨论


核心方法/架构详解

关键设计:分块交叉注意力(Chunked Cross-Attention, CCA)

RETRO 把输入文本切成固定大小的"块"(chunk),对每个块分别检索相关段落,然后通过 CCA 机制让模型在处理这个块时"看"到检索到的内容。

训练文本被切成块 C1, C2, C3, ...
对每个块 Ci:
  → 用 Ci 作为查询,从 2 万亿 token 的数据库里检索 Top-2 段落
  → 通过 CCA 层,Ci 的 Transformer 层可以额外关注这些段落

数据库规模

RETRO 使用 Google 的 MassiveText 数据集,存了约 2 万亿 token 的文本(相比 REALM/RAG 的维基百科,规模大了 3 个数量级)。检索器是冻结的 BERT 编码器。

RETRO++ 变体:对已有语言模型做"检索增强微调",将 RETRO 的 CCA 层插入现有模型,不必从头训练。


主要创新点

  1. 训练时即融入检索,而非推理时才检索
  2. 规模前所未有:2 万亿 token 数据库,相当于参数的 12 倍"外部记忆"
  3. 250 亿参数的 RETRO 媲美 Gopher(280B)在困惑度上的表现
  4. 提出 Chunked Cross-Attention,高效处理检索结果
  5. 讨论了检索数据记忆泄露等伦理问题,有前瞻性

实验设置


写作风格特点


图表亮点


新手阅读建议


论文 6:Atlas

标题:Atlas: Few-Shot Learning with Retrieval Augmented Language Models
arXiv:2208.03299
作者:Gautier Izacard 等(Meta AI Research)
发表:JMLR 2023


一句话概括

少样本学习场景下,通过联合微调检索器和生成器(加上多种检索器更新策略),让 11B 参数的 RAG 模型在少量样本下超越 540B 参数的 PaLM。


背景与动机

GPT-3 发布后,"少样本学习(few-shot learning)"成为热门:只给模型几个例子,它就能完成任务。但 GPT-3 是 1750 亿参数的巨型模型,成本极高。

能不能用更小的模型 + 检索来实现同样的少样本能力?这就是 Atlas 的出发点。

痛点:之前的 RAG 方法在微调时通常只更新生成器,检索器是固定的(或者联合更新但不稳定)。Atlas 系统研究了如何在少样本场景下联合高效地更新检索器和生成器

类比:
- 大模型少样本 = 一个见过一切的天才,看两个例子就懂了
- Atlas = 一个聪明的学生+图书馆,给几个例子,主动查资料,照样能学会


论文结构与格式

全文约 20 页(JMLR 期刊格式,较长),结构:
1. Introduction:少样本 RAG 的动机
2. Atlas 系统:架构(FiD 生成器 + Contriever 检索器)
3. 检索器微调策略:4 种方法的比较
4. 预训练:如何预训练 Atlas
5. Experiments:少样本 QA、事实核查等
6. Analysis:详细消融


核心方法/架构详解

架构基础:Atlas 建立在 FiD(生成器)+ Contriever(检索器)之上。

Contriever(Facebook 开源的无监督稠密检索器):用对比学习在无标注数据上训练,不需要人工标注 QA 对,泛化性强。

四种检索器微调策略(这是 Atlas 最重要的贡献之一):

  1. EMDR²(End-to-end training with EM):用期望最大化(EM 算法)把检索当作隐变量,通过生成损失间接优化检索器
  2. PDist(Perplexity Distillation):用生成器对各段落的困惑度作为信号,蒸馏回检索器
  3. LOOP(Leave-one-out):依次去掉每篇段落,看生成质量变化,反馈给检索器
  4. ADist(Attention Distillation):用解码器对各段落的注意力权重蒸馏回检索器

实验发现 EMDR² 在少样本场景下最有效。

少样本微调流程

预训练 Atlas(无监督检索+生成预训练)
  ↓ 只给 K 个(K=4/16/64)标注样本
联合微调 检索器 + 生成器
  ↓
评估

主要创新点

  1. 系统比较了多种检索器微调策略,为社区提供了清晰的选型指南
  2. 在极少样本(如 64 个样本)下,11B 参数的 Atlas 超越了 540B 的 PaLM
  3. 首次大规模验证了 RAG 在少样本学习上的 scaling 优势
  4. 开源了完整系统(包括 Contriever、FiD、训练代码)

实验设置


写作风格特点


图表亮点


新手阅读建议


论文 7:HyDE

标题:Precise Zero-Shot Dense Retrieval without Relevance Labels
arXiv:2212.10496
作者:Luyu Gao 等(CMU)
发表:ACL 2023


一句话概括

让 LLM 先"假装"生成一个答案文档,再用这个假设性文档的向量去检索真实文档,从而提升零样本检索质量。


背景与动机

稠密检索器(如 DPR、Contriever)的向量空间有一个不对称问题:查询(问题)和文档(答案)的语义分布不同。问题往往很短、不完整,而相关文档很长、信息丰富,它们在向量空间里可能相距较远。

传统做法需要大量标注的"问题-文档"对来训练检索器,解决这种不对称性。但标注成本高,且泛化差。

HyDE 的洞见:LLM 可以"凭空"生成一个假设性的答案文档,这个假设文档和真实文档在向量空间里更接近,因为它们都是文档风格的文本。

类比:
- 传统检索 = 你用一句问话去图书馆找书,司书不一定能理解你的简短问题
- HyDE = 你先根据问题写一篇小短文(哪怕是猜的),拿这篇小短文去找相似的书,效果更好


论文结构与格式

全文约 9 页,ACL 格式:
1. Introduction:查询-文档不对称问题
2. HyDE:方法描述(极简单,是优点)
3. Experiments:多语言、多任务检索实验
4. Analysis:假设文档的质量影响、不同 LLM 的效果
5. Conclusion


核心方法/架构详解

流程(极其简洁)

Step 1:用 LLM 生成假设性文档
  输入:原始查询 q
  提示词:根据问题写一段相关文档(零样本,LLM 直接生成,可能不完全准确)
  输出:假设性文档 d̃(可能包含幻觉,但结构像答案文档)

Step 2:用假设性文档做检索
  编码:d̃ → Encoder → 向量 e
  检索:在文档库里找与 e 最相似的真实文档
  返回:Top-K 真实文档

Step 3:把真实文档喂给 LLM 生成最终答案
  (标准 RAG 流程)

为什么有效

即使假设文档包含幻觉(事实错误),但它的写作风格和结构与真实文档一致,因此在向量空间里距离真实文档更近,相当于做了一次"查询扩展"。

理论解释:论文用高斯分布做了一个简单的数学分析——假设文档是真实文档分布上的一个样本,用它做检索相当于在文档分布上的软最近邻搜索。


主要创新点

  1. 无需任何标注数据,零样本提升检索质量
  2. 方法极其简洁:一段提示词 + 现成的 LLM + 现成的检索器
  3. 证明 LLM 的"幻觉"可以被正向利用(只要形式对,内容不必完全准确)
  4. 在多语言检索场景下效果尤其显著(跨语言 BEIR)

实验设置


写作风格特点


图表亮点


新手阅读建议


论文 8:FLARE

标题:Active Retrieval Augmented Generation
arXiv:2305.06983
作者:Zhengbao Jiang 等(CMU)
发表:EMNLP 2023


一句话概括

让语言模型主动判断何时需要检索,通过预测下一句是否包含不确定内容来动态触发检索,而非每次都检索。


背景与动机

早期 RAG 方法(包括 RAG 原论文)的检索策略是"一次性"的:给定问题,检索一次,生成全部答案。这对短问答还好,但对需要生成长文本的任务(比如写一篇文章、回答多步问题)就不够了——生成到后半段时,最初检索的内容可能已经不相关了。

FLARE 的问题:能不能让模型像人一样,"写到不确定的地方才去查资料"?

类比:
- 固定检索 RAG = 考试前查一次资料,然后闭卷答题
- FLARE = 开卷考试,每写到不会的地方才翻书


论文结构与格式

全文约 10 页,EMNLP 格式:
1. Introduction:长文本生成中固定检索的局限
2. FLARE:主动检索框架(两种变体)
3. Experiments:长文本生成任务
4. Analysis:检索时机分析、不同触发策略比较
5. Conclusion


核心方法/架构详解

FLARE 的核心循环

当前已生成文本 = ""
重复:
  1. LLM 基于已有文本生成"下一句"(作为临时预测)
  2. 检查临时预测中是否有低置信度的 token(概率低于阈值)
  3. 如果有 → 用临时预测作为查询,检索相关段落,重新生成这一句
  4. 如果没有 → 把临时预测加入正式输出
直到生成结束

两种变体

  1. FLARE direct:直接用低置信度 token 附近的文本作为检索查询
  2. FLARE instruct:用 few-shot 提示让 LLM 自己决定"生成搜索指令"(类似 ReAct)

关键设计:置信度作为检索触发信号

LLM 在生成每个 token 时都会输出概率(logit)。如果某段文本里有 token 的概率很低(比如 < 0.5),说明模型"不确定",就触发检索。

这是一个巧妙的"自监控"机制——模型的内部状态(概率)直接驱动外部行为(检索)。


主要创新点

  1. 首次系统提出"主动(Active)检索"框架,按需检索而非固定检索
  2. 用 token 置信度作为检索触发信号,无需额外训练
  3. 用"预测下一句"作为检索查询,解决了长文本生成中查询过时的问题
  4. 实验涵盖多种长文本生成任务,超越了 baseline 的固定检索方案

实验设置


写作风格特点


图表亮点


新手阅读建议


论文 9:Self-RAG

标题:Self-RAG: Learning to Retrieve, Generate, and Critique
arXiv:2310.11511
作者:Asai 等(华盛顿大学)
发表:ICLR 2024


一句话概括

训练 LLM 在生成时插入特殊"反思标记(Reflection Tokens)",让模型自主决定是否检索检索内容是否相关生成内容是否真实可靠,实现全流程自我监控。


背景与动机

FLARE 已经让模型决定"何时检索",但还有更多问题没解决:

  1. 检索到的内容真的相关吗?(可能检索噪音)
  2. 生成的答案真的忠实于检索内容吗?(可能忽略检索内容,照样幻觉)
  3. 生成的答案整体质量如何?(可能正确但不完整)

Self-RAG 要打造一个会自我审视的模型,生成时边写边检查,发现问题立刻纠正。

类比:
- 普通 RAG = 查完资料直接写作,不回头检查
- Self-RAG = 写作时随时自问:"我查到的资料相关吗?我写的这句话有依据吗?整体答案质量够好吗?"


论文结构与格式

全文约 15 页,ICLR 格式:
1. Introduction:RAG 的残留问题
2. Self-RAG Framework:反思标记的设计与训练
3. Inference:推理时的解码策略
4. Experiments:多任务评估
5. Analysis:消融实验


核心方法/架构详解

反思标记(Reflection Tokens)——Self-RAG 的核心设计:

Self-RAG 在训练时给 LLM 引入了 4 种特殊 token,让模型"说出自己的思考过程":

标记 含义 可能取值
[Retrieve] 是否需要检索? Yes / No / Continue
[IsREL] 检索到的段落是否与问题相关? Relevant / Irrelevant
[IsSUP] 生成内容是否得到段落支持? Fully / Partially / No
[IsUSE] 生成内容总体是否有用? 1-5 分

训练流程

  1. 用 GPT-4 对训练数据中的每个样本打上反思标记(数据增强)
  2. 用这些带标记的数据微调 Llama-2(7B/13B)
  3. 微调后的模型已经学会在合适的位置插入这些标记

推理时的使用

生成时:
  - 遇到 [Retrieve=Yes] → 触发检索,获取段落
  - 遇到 [IsREL=Irrelevant] → 忽略该段落,继续
  - 遇到 [IsSUP=No] → 重新生成这段内容
  - 用 [IsUSE] 分数在 beam search 里排序候选答案

这相当于把"检索决策 + 质量评估"内化为模型自身的生成行为,不需要外部打分模型。


主要创新点

  1. 首次将检索决策和质量评估都变成 LLM 自身的生成行为(而非外部模块)
  2. 端到端训练:只需微调一个模型就包含了全部功能
  3. 推理时可以通过调整不同标记的权重灵活控制"事实性"和"流畅性"的权衡
  4. 在事实准确性要求高的任务(医疗、法律 QA)上表现显著优于无反思的 RAG

实验设置


写作风格特点


图表亮点


新手阅读建议


论文 10:CRAG

标题:Corrective Retrieval Augmented Generation
arXiv:2401.15884
作者:Shi-Qi Yan 等(哈工大 + 微软亚研院)
发表:ICLR 2024 Workshop(后收录主会)


一句话概括

对检索结果进行质量评估,当检索质量差时自动触发网络搜索进行补充纠错,从而提升 RAG 系统的鲁棒性。


背景与动机

所有 RAG 系统都有一个隐患:如果检索器找到的内容是错的或不相关的,生成器会被"带偏",产生错误甚至更自信的幻觉

前面的方法(FLARE、Self-RAG)主要关注"何时检索",但没有认真处理"检索到的内容质量差怎么办"这个问题。

CRAG 的问题:能不能在使用检索结果之前,先评估一下质量,不好就重新找?

类比:
- 普通 RAG = 查到资料就用,不管对不对
- CRAG = 查到资料先检查一遍:好资料直接用;一般资料提炼关键信息;烂资料扔掉,去网上重查


论文结构与格式

全文约 9 页,ICLR Workshop 风格(精炼):
1. Introduction:检索质量问题
2. CRAG:评估器 + 三种行动策略 + 网络搜索
3. Experiments:多数据集对比
4. Ablation & Analysis
5. Conclusion


核心方法/架构详解

CRAG 的三步流程

Step 1:检索
  标准 RAG 检索 Top-K 段落

Step 2:质量评估(轻量级评估器)
  评估器(小型分类器或 LLM)对每篇段落打分:
  - Correct(高度相关,置信度高)
  - Ambiguous(中等相关,不确定)
  - Incorrect(无关或有误导)

Step 3:按评分采取不同行动
  - Correct → 直接使用(精炼提取关键知识)
  - Incorrect → 放弃,转向网络搜索(Bing API)
  - Ambiguous → 检索结果 + 网络搜索结合使用

知识精炼(Knowledge Refinement)

即使是 Correct 的段落,也不是全文都有用。CRAG 用一个"分解-过滤-重组"的流程:
1. 把段落拆成更细的知识块
2. 对每个知识块单独评分
3. 只保留最相关的知识块

这类似于读文献时"画重点",而不是把整篇文章都复制进笔记。

网络搜索集成

当检索质量不够时,CRAG 调用实时网络搜索(论文用 Bing Search API),获取最新、更可靠的信息。这使得 CRAG 具备了处理时效性问题的能力。


主要创新点

  1. 首次将"检索质量评估"作为独立模块插入 RAG 流程
  2. 三种行动策略(正确/模糊/错误)对应不同处理方式,有针对性
  3. 集成实时网络搜索作为"备用检索",突破了静态知识库的限制
  4. 轻量级评估器(可以是小模型)不显著增加推理成本
  5. 可插拔设计:可以套在任何现有 RAG 系统上

实验设置


写作风格特点


图表亮点


新手阅读建议


论文 11:RAG 综述

标题:Retrieval-Augmented Generation for Large Language Models: A Survey
arXiv:2312.10997
作者:Yunfan Gao 等(同济大学等)
发表:预印本(2023),被广泛引用


一句话概括

系统梳理了 RAG 的发展历程、技术分类和未来挑战,是理解整个 RAG 生态的"导航地图",也是入门 RAG 领域最推荐的综述。


背景与动机

RAG 领域在 2023 年爆炸式增长,各种变体、改进方法层出不穷,研究者和工程师需要一份系统梳理。这篇综述恰逢其时,提供了:

  1. RAG 技术的发展脉络(从早期到高级)
  2. 各组件的分类与比较(检索器、生成器、融合方式)
  3. 主要评估基准和评估维度
  4. 工业应用场景
  5. 未来研究方向

类比:这篇论文就像一本"RAG 百科全书目录",告诉你这个领域有哪些重要的书,每本书讲什么,从哪里开始读。


论文结构与格式

全文约 30 页,综述格式:
1. Introduction:RAG 的定义和重要性
2. Background:RAG 解决的问题背景
3. RAG Foundation:早期基础(Naive RAG)
4. Advanced RAG:高级改进(预检索、检索时、后检索优化)
5. Modular RAG:模块化 RAG 框架
6. RAG vs. Fine-tuning:与微调的比较
7. Evaluation:评估框架和基准
8. Applications:工业应用场景
9. Future Directions:研究方向
10. Conclusion


核心内容详解

综述提出的三代 RAG 框架

  1. Naive RAG(基础 RAG):直接检索-生成,代表工作是 RAG 原论文。问题:检索精度低、生成可能忽略检索内容。

  2. Advanced RAG:对流程各环节进行优化:
    - 预检索优化:查询改写(HyDE、多查询)、数据清洗
    - 检索时优化:稠密检索、混合检索(BM25+向量)、重排序
    - 后检索优化:上下文压缩、相关性过滤

  3. Modular RAG:将 RAG 各组件解耦,可以灵活组合,代表工作是 Self-RAG、CRAG 等。

RAG vs. Fine-tuning 对比(重要内容):

维度 RAG Fine-tuning
知识更新 实时,更新数据库即可 需要重训练
可解释性 高(有来源可追溯)
训练成本 低(推理时检索) 高(需要大量标注数据)
领域适应 中等
幻觉控制 中等

结论:RAG 和微调不是对立关系,最佳方案往往是两者结合(先微调让模型适应格式,再用 RAG 提供知识)。

评估维度

综述整理了 RAG 系统评估的三个关键维度:
- 检索质量:相关性、准确率、召回率
- 生成质量:流畅性、相关性、忠实度(是否符合检索内容)
- 下游任务性能:EM、F1、ROUGE 等


主要贡献

  1. 提出清晰的 RAG 三代分类框架(Naive/Advanced/Modular),被后续大量引用
  2. 系统梳理超过 100 篇相关工作,覆盖面全
  3. 提供了 RAG vs. 微调的决策框架,有实践指导价值
  4. 整理了主要评估基准和工具,帮助研究者快速定位评测方法
  5. 提出了 RAG 领域未来的关键挑战(长上下文、多模态、垂直领域等)

写作风格特点


图表亮点


新手阅读建议


附录:快速参考表

论文 核心创新 难度 推荐阅读顺序
RAG 原论文 RAG 框架正式提出 ★★★ 1
REALM 预训练阶段嵌入检索 ★★★★ 2
DPR 稠密向量检索,超越 BM25 ★★★ 3(与 RAG 原论文配读)
FiD Fusion-in-Decoder 多段落融合 ★★ 4
RETRO 训练时检索,万亿 token 数据库 ★★★★★ 7
Atlas 少样本联合微调检索器+生成器 ★★★★ 6
HyDE 假设文档改善零样本检索 ★★ 5
FLARE 按置信度主动触发检索 ★★★ 8
Self-RAG 反思标记全流程自我监控 ★★★★ 9
CRAG 检索质量评估+自动纠错 ★★★ 10
RAG 综述 系统梳理整个 RAG 领域 ★★(浏览) 0(先读,建立全局观)

新手推荐入门路径

RAG 综述(建立全局观)
  ↓
RAG 原论文(理解基础框架)
  ↓
DPR(理解稠密检索)
  ↓
FiD(理解多段落融合)
  ↓
HyDE(轻松的零样本检索改进)
  ↓
FLARE / Self-RAG(主动/反思 RAG)
  ↓
CRAG(工程落地视角)
  ↓
REALM / Atlas / RETRO(深入研究)

本导读合集基于各论文 arXiv 版本及公开资料整理,面向零基础新手,重在概念理解而非数字复述。如需查阅具体实验数据,请参阅原论文。