AI“一本正经胡说八道”?揭秘RAG技术如何让它变“开卷考试”赢在起跑线!
文章讲述了AI模型在处理知识密集型任务时出现的“幻觉”问题,即模型会“一本正经地胡说八道”。为了解决这个问题,Facebook AI Research提出了RAG技术,即“检索增强生成”,核心思路是给模型“开卷考试”,结合参数化内存(模型自身知识)和非参数化内存(外挂知识库),通过检索-生成三步走流程,让模型在答题时能参考外部资料,从而提高准确性和可解释性。RAG技术在多个问答基准上取得了优异表现,并在实际应用中展现出巨大潜力,尤其在企业级AI助手等垂直场景中。文章最后展望了RAG技术的未来发展方向,强调参数化记忆与非参数化内存的交互和有效结合至关重要。
我有个朋友,去年拿 AI 查一个法律问题。模型洋洋洒洒给他引用了三条法规,编号精确到款和项,语气笃定得像个执业二十年的律师。
他拿去给真律师看了。
三条里有两条是编的。编号、内容、全是捏造的——但写得太像了。
这事儿其实不稀奇。业内管它叫“幻觉”(Hallucination),但我觉得这个词太温和了,叫“一本正经地胡说八道”更贴切。模型不是在查资料,它是在赌:根据概率,赌一个"看起来最像答案"的句子。
2021年,Facebook AI Research(现 Meta AI)的 Patrick Lewis 等人发了一篇论文,试图从根上解决这个问题。论文名字很长,叫 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks——翻译过来就是“面向知识密集型 NLP 任务的检索增强生成”。
这篇论文后来成了 RAG 这个技术路线的开山之作。
它的核心思路说穿了就一句话:别让模型闭卷考试了,给它开卷。

闭卷学霸,为什么也会翻车
先说清楚问题出在哪。
GPT 这类大模型在训练的时候,吃进去了互联网上几乎所有公开的文本。训练完成之后,那些知识就"压"在了模型的参数里——几百亿个浮点数,像是一块巨大的、被高度压缩过的硬盘。
Lewis 等人在论文开头就指出了这种纯参数化模型的三个硬伤:
“They cannot easily expand or revise their memory, can’t straightforwardly provide insight into their predictions, and may produce ‘hallucinations’.”
(它们无法轻易扩展或修改自身记忆,无法直观地解释预测依据,还可能产生"幻觉"。)
说得更直白一点:第一,知识会过期,2025 年训完的模型不知道 2026 年的事;第二,它答错的时候不会脸红,甚至比答对的时候还自信;第三,你没法追问它"这个结论到底是从哪学来的",因为它自己也说不清。
打个比方:这就像一个把所有教科书倒背如流的学生,被关在小黑屋里闭卷答题。碰到学过的题,它确实很厉害;碰到超纲的、或者记混了的,它不会空着不填,而是会编一个看起来很像答案的东西交上去。
论文管这类“不查资料就答不好”的问题叫 knowledge-intensive tasks,原文定义是:
“tasks that humans could not reasonably be expected to perform without access to an external knowledge source”
(那些即便是人类,不查外部资料也很难完成的任务。)
你想想,确实如此。我们人做知识型工作的时候,谁是纯靠记忆的?写论文要查文献,写合同要翻法条,就连修个水管都得先搜一下教程。
那凭什么要求一个模型光靠"脑子里的存货"就把所有事情搞定呢?
拆解 RAG:参数化内存 vs 非参数化内存
Lewis 等人给出的解法,是把两种不同的“记忆系统”缝合在一起。
论文里把它们叫做 parametric memory(参数化内存) 和 non-parametric memory(非参数化内存)。原文是这么说的:
“models which combine pre-trained parametric and non-parametric memory for language generation”
(将预训练的参数化内存与非参数化内存相结合,用于语言生成的模型。)
这两个术语听着唬人,其实逻辑很朴素。
参数化内存,就是模型训练时"记住"的东西。它固化在神经网络的权重参数里。这东西类似于一个人的常识和直觉——圆周率约等于 3.14,水是 H₂O,莎士比亚是英国人。你不需要查资料就能脱口而出,但想修改它(比如发现某个"常识"其实是错的),代价很高,得重新训练。
论文里,这部分由 BART-large 模型承担。论文原文明确写道:
“We refer to the BART generator parameters θ as the parametric memory henceforth.”
(我们此后将 BART 生成器的参数 θ 称为参数化内存。)
非参数化内存,就是一个外挂的知识库。论文里用的是整个英文维基百科——每篇文章被切成 100 词的小段,总共约 2100 万个文档块,全部转成向量存进索引。这东西就像一个随身 U 盘,里面的资料可以随时增删替换,不需要重新训练模型。
“We refer to the document index as the non-parametric memory.”
(我们将文档索引称为非参数化内存。)

这两种记忆的关系,像极了你和你的笔记本。你脑子里记得大概的框架和思路(参数化内存),遇到具体细节需要确认时,翻开笔记本查一下(非参数化内存)。两者配合,才不容易出错。
它具体是怎么干活的:检索-生成三步走
RAG 的工作流程可以拆成三步。用论文里的架构图(图1)来讲:

第一步,编码问题。用户提了一个问题 x,Query Encoder(查询编码器,基于 BERT)把它转成一个稠密向量 q(x)。这一步本质上是把自然语言"翻译"成机器能比较的数学表示。
第二步,检索资料。 Retriever(检索器)拿着 q(x) 去维基百科的向量索引里找最相关的 Top-K 个文档段落。论文用的检索器是 DPR(Dense Passage Retriever),底层逻辑是算向量之间的内积——内积越大,相关性越高。论文里管这个过程叫 MIPS(Maximum Inner Product Search,最大内积搜索)。具体来说:
pη(z|x) ∝ exp(d(z)ᵀq(x))
也就是文档向量 d(z) 和查询向量 q(x) 的内积越大,这个文档被检索到的概率就越高。
你可以把这步想象成一个图书管理员:你告诉他你要查什么,他跑去书架上找出最相关的五本书摞到你面前。
第三步,生成答案。 Generator(生成器,基于 BART)拿到原始问题和检索到的文档,把它们拼在一起,综合生成最终的回答。
最关键的一点:这个流程是端到端联合训练(end-to-end)的。检索器和生成器不是各干各的,而是在训练过程中一起优化。检索器会慢慢学会"该为生成器找什么样的资料才能让最终答案更好"。论文原文描述这个过程:
“We treat the retrieved document as a latent variable.”
(我们将检索到的文档视为隐变量。)
“隐变量"这个词在概率模型里有特定含义:你不直接观测它,但它影响最终结果。翻译成大白话——模型不需要有人手把手告诉它"你该去查哪篇文章”,它自己学着去摸索。
论文最硬核的设计:RAG-Sequence vs RAG-Token
如果上面的内容你都消化了,这一段带你再深入一层。
检索到了 K 篇文档之后,怎么用它们?论文给出了两种策略,区别在于“边缘化”(marginalize)的粒度不同。
RAG-Sequence:一篇文档读到底。
对每一篇检索到的文档 z,生成器都独立地生成一个完整的回答。然后把 K 个回答的概率加权平均。数学上长这样:
pRAG-Sequence(y|x) ≈ Σ_z∈top-k pη(z|x) · Π_i pθ(yᵢ|x, z, y₁:ᵢ₋₁)
直觉理解:这就像一个厨师拿到五本食谱,每次严格按一本书从头做到尾,做出五道菜,然后综合评分。 好处是每道菜的内部逻辑是连贯的。
RAG-Token:逐词切换参考源。
每生成一个 token(词元),都重新在 K 篇文档之间做一次加权。 数学上:
pRAG-Token(y|x) ≈ Π_i Σ_z∈top-k pη(z|x) · pθ(yᵢ|x, z, y₁:ᵢ₋₁)
注意两个公式的区别:连乘号 Π 和求和号 Σ 的位置换了。 Sequence 是“先对每篇文档生成完整序列,再求和”;Token 是“先对每个词在所有文档上求和,再连乘”。 一个字的顺序之差,语义天壤之别。
直觉理解:这次厨师更灵活了——炒到第三步的时候他瞄了一眼第二本食谱,加调料的时候又翻了第四本。 他在五本书之间来回横跳,博采众长。

论文里有一个特别漂亮的例子能说明 RAG-Token 的威力(见论文 Figure 2)。输入是“Hemingway”(海明威),任务是生成 Jeopardy 风格的问题。模型生成的句子里同时提到了《太阳照常升起》(The Sun Also Rises)和《永别了,武器》(A Farewell to Arms)——在生成前者时,关于海明威出道小说的那篇文档后验概率飙高;而在生成后者时,权重又切换到了另一篇文档。

更有意思的是,论文接着发现:每本书的标题只要开头一两个词被生成出来,后续的词就不怎么依赖检索文档了——因为 BART 自己的参数化记忆里就存着这些书名。 这说明参数化内存和非参数化内存确实在协同工作:外部文档负责"引路",内部参数负责"补全"。
实验数据:不是空谈,是真打出来的
论文不只是讲道理,实验做得非常扎实。
在 Natural Questions、WebQuestions、CuratedTrec 三个主流开放域问答基准上,RAG 当时刷新了 SOTA(最优成绩)。拿 Natural Questions 举例,RAG-Sequence 拿到了 44.5 的 Exact Match 分数,而参数量比它大十几倍的 T5-11B 闭卷模式只有 34.5。
人类评估更能说明问题。在 Jeopardy 问题生成任务上,论文做了 452 组人工对比评测(Table 4)。评估者认为 RAG 比纯 BART 更真实(factual)的比例是 42.7%,反过来认为 BART 更好的只有 7.1%。在 specificity(具体性)上,RAG 也以 37.4% 对 16.8% 大幅领先。
论文还做了一个我觉得最能打动工程师的实验——**索引热替换(Index hot-swapping)。**他们用 2016 年的维基百科索引问"秘鲁总统是谁",答的是 2016 年的总统;换成 2018 年的索引,立刻就答对了 2018 年的总统。准确率从错配时的 12% 跳到匹配时的 68%。论文对此的总结是:
“This shows we can update RAG’s world knowledge by simply replacing its non-parametric memory.”
(这表明我们可以通过简单替换非参数化内存来更新 RAG 的世界知识。)
不用重新训练,换个"U 盘"就行。这对实际落地意味着什么,做过工程的人应该秒懂。
从论文到现实:垂直场景的深水区
理论讲完了,聊聊落地。
今天你看到的大部分“企业级 AI 助手”——不管是法律的、医疗的、金融的——背后几乎都跑着某种 RAG 架构。原因很简单:企业场景的知识是专有的、动态更新的、而且出错的代价极高。你不可能靠通用大模型的"记忆"来回答一个关于公司内部合规条款的问题。
回到开头那个法律场景。如果用 RAG 的思路来做:先把所有法条、司法解释、经典判例灌进向量知识库;用户提问时,检索器先精准找到《劳动合同法》第八十二条和相关司法解释原文;生成器再结合这些原始材料来组织回答。这样输出的答案不仅有依据,还能溯源——用户点一下就能看到"这个结论是基于哪条法规得出的"。
再往前走一步:如果知识库不只是扁平的文档集合,而是一个结构化的知识图谱——法条之间的引用关系、判例之间的关联、司法解释与上位法的对应——RAG 就不仅仅是"翻书",而是在一张知识网络中做多跳推理,从一个法条出发,沿着引用链找到关联的判例和解释,给出真正"有理有据"的答案。
这也是 Lewis 等人在论文讨论部分留下的展望方向之一:
“how parametric and non-parametric memories interact and how to most effectively combine them”
(参数化记忆与非参数化记忆如何交互,以及如何最有效地将它们结合。)
五年过去了,这个问题仍然是 RAG 研究的核心。
写在最后
Lewis 等人那篇论文发表于 2020 年,到现在过去五年多了。RAG 这个概念也从一篇论文变成了一整条技术路线,衍生出了无数变体和改进。
但核心思想始终没变:别让模型光靠脑子答题,让它学会翻书。
说到底,人类的智慧也不是"什么都记得住",而是"知道去哪里找到答案"。
好的 AI,也该如此。
假如你从2026年开始学大模型,按这个步骤走准能稳步进阶。
接下来告诉你一条最快的邪修路线,
3个月即可成为模型大师,薪资直接起飞。
阶段1:大模型基础

阶段2:RAG应用开发工程

阶段3:大模型Agent应用架构

阶段4:大模型微调与私有化部署

配套文档资源+全套AI 大模型 学习资料,朋友们如果需要可以微信扫描下方二维码免费领取【保证100%免费】👇👇





配套文档资源+全套AI 大模型 学习资料,朋友们如果需要可以微信扫描下方二维码免费领取【保证100%免费】👇👇

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)