AI 发展相对较快,尽管有所放缓。是的,感觉每周都有新概念要学周天。为了真正理解这个疯狂的新世界,而不是只是匆匆掠过(也为了提醒自己机器里并没有一个 8 号球),我一直在写 ELI5 文章,拆解那些不断出现的概念。这次,是大家最喜欢的词:幻觉。

Hallucination Gif

AI 不是在对你撒谎

我讨厌我们给这些 AI 工具赋予的拟人化特质。“幻觉”听起来像是 AI 是一个发疯的感知存在,或者是前沿模型代码库中残留的一个 bug。现实远没有那么戏剧化,AI 一向如此。更准确的理解是,它和让 AI 变得有用的机制是同一个。它是对一个模型没有可靠答案的问题,给出一个听起来很自信的回答。

几个月前我写过一篇关于 token 的文章,简单总结一下:模型什么都不知道,它也不会去“搜索”东西。它预测下一个最可能的 token,基于从海量文本(或广义上的媒体)中学到的模式。中间并没有(几乎——我们不算 RAG)一个步骤去对照数据库或事实来检查答案是否真实。实际上,并没有事实数据库。只有“鉴于目前的一切,接下来统计上最可能是什么”。

“统计上可能”和“实际为真”这两个说法足够接近,因为训练数据大多反映了现实。但关键在于这个词:“大多”,幻觉就发生在两者之间的空隙里。

机制

ACME corp..

来看一个例子,我们暂时想象一下,我们问某个模型 Acme Corp 的 CEO 是谁。模型并不是在“检索答案”,它是在按每个候选词延续这句话的可能性对它们进行排序。

Depiction of the next likely token

你能注意到那个排名里缺了什么吗:"我不知道"这个候选答案根本排不到前面。自信的、可能的续写在训练数据中很常见,而不确定性非常罕见。这是因为人们通常不会在科学论文里用模型所学的那种自信、百科式的文本写下"我其实不知道这个问题的答案"。

聊天模型会接受一些额外的训练,教它们有时要拒绝回答。但有个问题:在我们看到的大多数基准测试评分中,"我不知道"等于零分,和答错一样。一个靠猜的模型在排行榜上看起来比一个承认不确定性的模型更好(唉……我们还会感到意外吗?)。

结果并不是模型"决定"去撒谎。我们得到的是句子续写中概率最高的词/句子,而这个词/句子被自信地陈述为正确答案。

为什么它在某些情况下比其他情况更常发生

问题在于幻觉并不总是发生。有些情况会让它们更可能出现:

  • 很少被讨论的事实或有争议的观点话题如果某样东西不常出现在训练数据中,或者答案在不同来源之间含糊不清,模型的统计证据就更弱。这意味着一个错误但自信的续写有更大的空间排到正确答案前面。

  • 具体的数字、日期和引用精确的细节正是幻觉答案代价最高、也最常见的地方。一个听起来很真实的标题、作者和期刊名的引用可能完全是编造的,因为模型生成的是类似"引用长什么样"的东西,而不是检索一篇真实的论文。

  • 任何超出训练截止时间的内容模型无法知道"当下"的情况,但它也无法像真人那样说"停,这超出了我所知道的,让我搜一下"。现代聊天模型通常会标注自己的截止时间,但它们无法可靠地分辨哪些事实已经过时,所以一个过时的答案说出来时听起来和一个当前的答案一样自信。

  • 带有错误前提的问题当你问一个模型“X 为什么会发生?”而 X 从未发生时,模型往往会顺着你的话说下去并给出解释。模型被训练得过于乐于助人,而接受前提正是听起来最乐于助人的路径。

  • 编造的代码依赖。模型可能会建议并不真正存在的包名。攻击者可以注册这些名字,然后等着有人npm install去用它们(这就是我 2026 年最喜欢的词:“slopsquatting”)。

一些可能减轻这种效应的方法

有一个架构概念叫做检索增强生成或者通常被称为 RAG。与其让模型纯粹根据其训练数据生成答案,不如把它约束在真实的源材料中,并要求它据此作答。模型仍然在预测 token,但现在它预测的是某段文本中的 token,而这段文本但愿是真实且经过验证的。不过这并不能 100% 解决问题。检索仍可能取回错误的文档,模型也仍可能误读或夸大正确文档的内容。基于 RAG 构建并宣传为“无幻觉”的法律研究工具,仍被发现大约每 6 个答案中有 1 个到每 3 个答案中有 1 个存在幻觉。

另外几个可能有帮助的方法:

  1. 要求模型给出来源和引用。这并不能保证答案的准确性,但它是一种复核结果是否正确的方式。没有来源的说法从设计上就无法验证;带有具体来源的说法至少给了你一种发现错误的方式。

  2. 指示模型说“我不知道”。提示模型不要编造答案会把概率分布朝那个方向推,但这并不会让模型真正知道自己不知道什么。

  3. 多问几次。对同一个问题多次采样。如果每次返回的答案都不同,那模型很可能是在编造。研究人员把这个想法变成了一种检测方法,叫做语义熵。

如果你在构建 AI 功能,这意味着什么

如果你是发布 AI 功能的产品工程师,这不仅仅是 ML 团队的问题。以下是一些发布准确功能的准则:

  • 绝不要把 AI 生成的文本当作已验证的事实来呈现,尤其是任何具体的、数字的或类似引用的内容。根据 EU AI act,你必须标记某些内容是 AI 生成的。
  • 当来源存在时,让它们可见且可点击。如果你的产品做信息检索,就把检索到的内容展示出来。
  • 为纠正而设计功能,而不仅仅是为生成。一个“这看起来不对”、“看起来像 AI 垃圾”或反馈入口,对于调优 AI 输出极其有用,比传统软件更有用,因为听起来自信但实际错误的答案正是这些系统运作方式中预期的一部分。
  • 安装依赖之前先检查它们是否存在。如果某个智能体或 copilot 添加了一个包,确认它是真实存在的!

资源

语言模型为什么会幻觉(OpenAI)· arXiv 论文
OpenAI 承认 AI 幻觉在数学上不可避免(Computerworld)
Anthropic 的 Claude 如何思考(ByteByteGo)
我认识这个实体吗?语言模型中的知识感知与幻觉
使用语义熵检测幻觉(Nature,via OATML)
无幻觉?评估领先的 AI 法律研究工具(J. Empirical Legal Studies)
AI 幻觉案例数据库(Damien Charlotin)· HAQQ tracker 摘要
重新评估 2026 前沿模型队列中的 LLM 包幻觉