大模型的幻觉问题为什么无法彻底消除

引言

自从 ChatGPT 横空出世以来,大语言模型(LLM)展现出了令人惊叹的能力——写代码、做翻译、写文章、甚至通过律师资格考试。但与此同时,一个让所有用户头疼的问题始终挥之不去:幻觉(Hallucination)

所谓幻觉,是指模型生成的内容看起来合情合理,但实际上与事实不符。比如问一个模型"2024年奥运会谁拿了乒乓球金牌",它可能编造出一个听起来很真实的名字和比分。更棘手的是,这些错误往往包裹在流畅自然的语言中,让人很难一眼识破。

为什么会出现幻觉?

1. 模型本质上是"文字接龙机"

从底层原理来看,大语言模型的核心机制是下一个 token 预测。它接受前面的文字,计算"最可能的下一个字/词是什么"。这意味着模型并不理解"事实"和"虚构"的区别——它只是在做概率计算。

当你问一个它训练数据里没见过的问题时,它不会说"我不知道",而是用概率最高的路径"编造"一个答案——因为训练数据里几乎没有"我不知道"这个模式。人类会说"不知道",模型只会"猜一个最像的"。

2. 知识是模糊的,不是结构化的

模型把知识存储在数十亿个参数中,以一种分布式、高维嵌入的方式存在。这与数据库完全不同:

特性 数据库 大模型
知识存储 精确的行+列 模糊的参数权重
查询方式 SQL 精确匹配 语义近似检索
知识更新 直接 INSERT/UPDATE 需要重新训练或微调
确定性 100% 确定 概率性输出
知识边界 明确的 schema 模糊的记忆痕迹

由于知识是"模糊化"存储的,模型无法精确区分"我确定知道"和"我好像知道"的边界。它输出结果时,并不附带置信度分数——所有输出看起来都同样自信。

3. 训练目标不包含"不知道"

当前的预训练范式(Next Token Prediction)没有为"不确定性表达"提供任何梯度信号。模型的损失函数只惩罚"错误预测",不奖励"承认无知"。

想象一下:你让一个学生考一场没有"空着不答"选项的考试。每道题都必须选一个答案,选了就计分(对了加分,错了扣分)。这个学生的策略会是什么?——把所有看起来可能的答案都填上。大模型的训练本质上就是这类考试。

要让模型学会说"不知道",需要改变训练范式,比如加入对抗性训练——在训练数据中混入"无法回答的问题",让模型学会拒绝回答。

4. 知识截止日期带来的时间幻觉

每个模型都有自己的知识截止日期。对于截止日期之后的事件,模型只有两种选择:

  • 通过检索增强(RAG)获取新的知识
  • 或者...凭"记忆"猜测

比如一个知识截止在 2024 年 1 月的模型,被问到"2025 年的诺贝尔物理学奖得主是谁"——它大概率会编造一个答案,因为它训练数据里根本没有这个信息。模型没有"我不知道"的概念,只有"最可能的输出"的概念。

5. 训练数据的固有偏差

训练数据本身就有大量矛盾和错误。互联网上的信息良莠不齐,模型在学习时无法区分"这个人在胡说八道"和"这个人在分享正确知识"。一个在错误数据上训练出来的模型,不可避免会在某些领域产生系统性的幻觉。

为什么无法"彻底消除"?

根本原因:这是统计学习的固有属性

大模型本质上是一个概率密度估计器。只要是概率模型,就一定存在以下两个问题:

1. 覆盖不足(Coverage gap):训练数据无法覆盖所有可能的输入空间。模型必须在从未见过的输入上做外推——外推必然伴随着误差。

2. 计算不可约误差(Irreducible error):即使训练数据无穷大,真实世界本身就存在不确定性。一个概率模型永远无法 100% 确定任何答案。

与压缩理论的关系

有研究者认为,大模型本质上是在压缩训练数据。压缩率越高,模型的"理解"能力越强,但压缩本身是有损的。有损压缩必然导致信息的丢失和变异——这就是幻觉的根本来源。

如果将模型看作一个"世界压缩器",那么:

  • 无损压缩不可能(世界的信息复杂度超过模型容量)
  • 有损压缩必然伴随失真
  • 失真的某些表现形式就是"幻觉"

如何缓解?现有方案一览

虽然无法彻底根除,但我们可以大幅缓解幻觉问题:

1. RAG(检索增强生成)

RAG 是目前最主流的缓解方案。模型不再完全依赖内部知识,而是先检索外部知识库,再基于检索到的内容生成答案。

2. 强化学习人类反馈(RLHF)

通过人类标注者对模型输出进行排序和打分,让模型学会偏好"事实正确"的答案。RLHF 能显著减少幻觉,但不能根除——因为人类标注者本身也可能出错。

3. 链式思考(Chain-of-Thought)

引导模型在回答问题前先生成推理步骤。CoT 本身不能消除幻觉,但它让模型更倾向于"逐步推理"而非"跳步猜测",从而降低了错误概率。

4. 外部验证工具

让模型在关键声明后引用来源,然后通过外部验证工具检查引用的真实性。如果引用不存在或内容不符,标记为可疑。

5. 校准置信度

通过 prompt 工程引导模型表达不确定性:

"如果你不确定答案,请说'我不确定'并给出你认为最可能的选项,同时说明你的不确定程度。"

结论

大模型的幻觉问题无法被彻底消除,因为它是概率语言模型的固有属性——统计学习必然包含误差,有损压缩必然存在失真。但这并不意味着我们应该放弃努力。

我们能做到什么?

  • ✅ 通过 RAG、RLHF、prompt 工程大幅降低幻觉率
  • ✅ 在关键时刻(医疗、法律、金融)引入外部验证机制
  • ✅ 让模型学会表达不确定性,而非强行给出错误答案
  • ❌ 追求 100% 无幻觉的模型——这在当前范式下是不可能的

对于使用 AI 的人,最重要的是培养"批判性信任"——像对待一个博学但偶尔会犯错的同事一样对待 AI。它的答案值得参考,但关键决策一定要自己验证。

毕竟,一个永远不会犯错的 AI,可能比会犯错的 AI 更危险——因为你不会怀疑它。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐