[控场AI]
· 5 分钟阅读· 2,600 字

LLM为什么会产生幻觉?理解RAG存在的根本原因

LLM为什么会产生幻觉?理解RAG存在的根本原因

LLM通过预测token产生幻觉,RAG通过注入外部信息提供事实基础来缓解这一根本缺陷。

大语言模型(LLM)的本质是预测下一个统计上最可能的token,而非存储和检索可验证的事实。这一机制导致模型在缺乏外部信息时会生成"令人信服的错误"——即所谓的幻觉:内容流畅、结构清晰、语气权威,却可能完全虚构。问题的根源不是模型不够智能,而是它在预测时缺乏正确的上下文(context)和事实基础(grounding)。检索增强生成(RAG)正是针对这一根本局限设计的系统性解决方案:在模型开始生成之前,先从外部数据源检索相关信息并注入提示词,从而将模型的预测锚定在可靠的事实上,实现"更好的上下文→更好的预测"。

当AI开始一本正经地编造事实

一位工程师分享了他第一次意识到大语言模型(LLM)不可靠的经历:他让LLM列出某个冷门主题的研究论文,结果瞬间得到了一份看起来无比专业的清单——论文标题、作者姓名、发表年份,甚至还有DOI链接。

一切看起来都合情合理:结构清晰、学术气息浓厚、语气自信。但当他真正去网上检索这些论文时,发现有几篇根本不存在。

这些内容并非明显的伪造或错误,而是令人信服地错误。标题听起来真实,作者名字可信,引用格式也完全符合学术规范。对工程师而言,这种情况格外棘手——问题已经不再是"模型失败",而是"模型不可信"。

rss source: Why LLMs Hallucinate — And Why RAG exists

LLM不像人类那样存储和检索知识

我们常听到这样的说法:"LLM能理解语言"、"它们像人类一样推理"、"它们无所不知"。所以当模型生成错误内容时,我们的直觉往往是——也许模型还不够先进。

但真相其实更令人不安:LLM并不像人类那样存储和检索知识。

在最基础的层面上,LLM只做一件事——预测下一个token。它们基于训练中学到的模式,以及在给定上下文下最可能出现的内容的概率来生成回答。

这意味着三个关键事实:

  • 它们本身并不验证真伪;
  • 它们并不自动知道你的数据;
  • 它们在生成回答时并不会"查找"事实。

这个区别解释了很多问题。

幻觉究竟从何而来

回到那个研究论文的例子。模型的回答之所以如此令人信服,是因为它在训练中很可能已经见过成千上万篇研究论文、学术引用、DOI格式以及作者命名规律。

所以即便它并不真正知道答案,它仍会尝试生成统计上最合理的续写。这就是为什么假论文标题听起来真实,虚构的作者看起来可信,不存在的引用也显得学术正确。

模型根本没有在验证真伪。而这正是幻觉之所以危险的原因——这些回答往往流畅、结构清晰、权威、且高度自信。人类天然将"自信"与"正确"联系在一起,久而久之,虚假信息就开始显得可信。

从技术角度看,幻觉(Hallucination)并非偶发性故障,而是语言模型架构的内在属性。LLM在训练时学习的是token序列之间的条件概率分布——即"在给定前文的情况下,下一个token是什么的概率最高"。模型没有独立的"事实存储层"或"知识核验模块",它的所有"知识"都被压缩、混合地编码在数十亿个神经网络参数里。这种压缩过程不可避免地导致信息失真与混淆:两个相似领域的细节可能被模型"混搭"重组,生成一个从未存在过的"合成事实"。更关键的是,模型在生成时没有置信度门控机制——它无法判断自己"是否知道"某件事,因此面对知识盲区时,它不会停下来说"我不确定",而是继续生成统计上最流畅的续写,这正是虚假引用听起来如此真实的根本原因。

问题不在于智能,而在于上下文

既然LLM只是在预测统计上可能的文本,那么如何让它生成更准确的答案?

作者敏锐地指出:模型本身并没有改变,它仍在做同样的事——预测下一个最可能的词。所以真正的问题也许不在于智能,而在于上下文(context)。

这暴露了当今LLM最大的局限之一。它们:

  • 不会自动访问实时信息;
  • 不会自动访问你的公司或私有数据;
  • 除非你主动提供,否则无法读取你的文档。

你的PDF、数据库、Slack讨论、API接口、内部知识,默认情况下对模型都是"不可见"的。模型之所以生成虚假引用,是因为它在回答时没有任何方式去对照权威来源进行核实——它是在**缺乏事实基础(grounding)**的情况下进行预测。

RAG:在生成之前先给模型正确的信息

如果我们不再期望模型"凭空"知道一切,而是在它开始生成之前先给它正确的信息,会怎样?

作者打了一个贴切的比方:这就像向朋友询问某件事。如果仅凭记忆,他只能根据模糊印象回答;但如果他在回答前先翻开相关文档,回答的质量会完全不同。朋友并没有突然变聪明,他只是获得了更好的上下文。

这正是关键洞察所在:

更好的上下文 → 更好的预测。

当我们把相关信息加入提示词(prompt)时,就改变了模型在预测下一个词之前所"看到"的内容,从而改变了生成的方向。这带来的不是什么神奇的新模型,也不是隐藏的智能升级,而是一次系统设计层面的转变——检索增强生成(Retrieval-Augmented Generation,简称RAG)。

从本质上说,RAG就是一种更聪明的方式:在模型开始预测之前,利用相关的外部信息为生成过程提供事实基础。

RAG的典型工作流程分为两个阶段:检索(Retrieval)与生成(Generation)。在检索阶段,系统将用户的问题转化为向量嵌入(embedding),在预先构建好的向量数据库中进行语义相似度搜索,找出最相关的文档片段;在生成阶段,这些检索到的片段被拼接进提示词,作为模型回答的"参考资料"。模型此时的任务不再是凭空生成,而是基于提供的文本进行总结和推断。向量数据库(如 Pinecone、Weaviate、Chroma)是 RAG 管线的核心基础设施,负责存储和检索文档的语义表示。上下文工程(Context Engineering)则是更上层的设计挑战:如何筛选、排序、截断检索结果,使其在不超出模型上下文窗口限制的前提下,最大程度地提升回答质量。理解这条完整链路,才能明白为什么 RAG 是一个系统工程问题,而非仅仅"接入一个数据库"那么简单。

幻觉不是故障,而是机制使然

LLM产生幻觉,并不是因为它"坏了"。它们之所以会产生幻觉,是因为它们能够生成听起来令人信服的答案,却不会自动验证这些答案是否真实。

在我们为LLM提供一种将答案锚定在可靠信息上的方法之前,我们将持续得到那些"听起来对、实则错"的答案。这也正是RAG之所以存在、并成为现代AI系统核心组件的根本原因。

理解了这一点,再去看向量数据库、检索管线、上下文工程等RAG相关技术,就不再是零散的工具堆砌,而是一个针对LLM根本局限性的系统性解决方案。

分享:

相关推荐