OpenAI 科学家:为什么大语言模型会产生幻觉? 原创

为什么语言模型会"幻觉"(hallucinate)?

这期内容比较特别,不是Big Name的商业方法论,而是技术分析课,由OpenAI研究科学家Adam Kalai在普林斯顿高等研究院所做的一场重要讲座。Kalai曾是机器学习理论领域的知名学者,十五年前做出了一个在当时看来"反常"的决定,认为机器学习理论研究不如实践有趣。

这场讲座回答了一个被词典选为年度词汇的问题:为什么语言模型会"幻觉"(hallucinate)? Kalai的核心论点是:幻觉不是神秘的架构缺陷或推理失败,主因是标准训练和评估激励机制的可预测后果。换句话说,不是模型出了问题,而是我们评价模型的方式出了问题。讲座原文在油管Institute for Advanced Study 频道,有大量的数学公式。

 OpenAI 科学家:为什么大语言模型会产生幻觉?

一、什么是幻觉,为什么它比你想象的更严重

讲座一开始,Kalai就抛出了一个简单的问题:"PGGB代表什么?"

现场没有人回答——这正是Kalai想要的效果。

"我刚刚向你们证明了人类不会像语言模型那样幻觉。有人说'人类也会像语言模型一样幻觉,模型是从我们这里学的'——我们不会。你们看到了,房间里没有人开始胡说八道。"

而语言模型则会"自信"地编造答案:

  • GPT
    给出了三个不同的答案:"Pulled Growth and Greenband"(互联网上搜不到)、"Public Gaming Group of Belgium"(比利时人喜欢玩游戏,肯定有这个组织吧?并没有)、"Personal Growth and Golding"(听起来很常见的术语,但根本不存在)
  • DeepSeek
    给出了"Permutation of Go Given Barriers"——围棋策略相关的胡编
  • Claude
    给出了"Pacific Gas and Electric Company"——这家公司的缩写是PG&E连B都没有。更荒谬的是,Claude还补充说"在某些语境下有时缩写为PGGP"——问的是PGGB,它给的解释是PGGP
  •  

"这很有趣,但也非常严重。今天就可能有人在询问可能用于高风险决策的重要信息,这可能造成真实伤害。"

Kalai还测试了自己的生日。他特意在提示中加入了"如果你知道,请只回答日期和月份"——明确给了模型说"我不知道"的选项。结果DeepSeek给了三个不同的错误猜测,ChatGPT给了两个错误猜测,只有在第三次启用"思考模式"后,模型花了1分26秒搜索,最后才承认不知道。

"好消息是我的生日不在网上。"Kalai说。

二、关于幻觉的四个常见误解

误解1:用准确率衡量幻觉

很多人看幻觉问题只看准确率,这是错误的思路。因为模型面对问题有三种选择:回答正确、回答错误、或者说"我不知道"。80%的准确率可能意味着20%的错误率(这是幻觉),也可能意味着20%的"我不知道"(这不是幻觉)。真正衡量幻觉的指标是错误率,不是准确率。

误解2:避免幻觉需要巨大的模型

Kalai半开玩笑地说:

"我认识的一些不那么聪明的人,反而相当有自知之明。对我来说说'我不知道'很容易——你用俄语问我问题,我会直接告诉你我听不懂。"

这其实是一个很好的学术挑战方向:用小模型证明概念,做一个不幻觉的小语言模型,展示它有多实用,然后再把方法移植到大模型上。

误解3:等准确率到100%就好了

问题在于,永远会有无法回答的问题——涉及隐私的问题、信息相互矛盾的问题、超出模型能力的数学问题。这时候模型需要说"我不知道",而不是硬猜。

误解4:幻觉要么已解决,要么永远无法解决

两种极端都不对。语言模型的幻觉率确实在下降,但还没到人类的低水平。最终目标是让模型以极低的概率幻觉,就像人类一样。

有人问:"说'我不知道'能达到100%正确吗?会不会有哥德尔不完备性之类的理论障碍?"

Kalai回答:"我不是说100%,但这个房间里的人幻觉率极低,我认为模型应该达到那个极低的水平。要达到绝对的0%可能很难,取决于你怎么定义。但你完全可以从一个只回答计算器问题、其他一概不答的聊天机器人开始——它就不会幻觉。"

三、核心理论:为什么预训练必然导致幻觉

这是讲座最硬核的部分。Kalai提出了一个简洁的理论框架来解释幻觉的根源。

1、语言预测比分类更难

设想有两个集合:有效陈述(valid) 和错误陈述(error)。在传统的二分类任务中,你同时看到正例和负例,学习区分它们。但在语言预训练中,你只看到正例——训练数据理论上都是"正确"的文本,模型从来没见过"错误示范"。

"只从正例学习,应该比同时从正例和负例学习更难。"

这个直觉被形式化为一个定理:幻觉概率 ≥ 2倍分类错误概率 - 小项

2、定理的核心洞察

如果存在一类事实,你根本无法学会区分正确和错误,那么在这类问题上你必然会大量幻觉。

什么样的事实无法学会区分?比如人的生日——生日之间没有规律可循,我告诉你房间左半边人的生日,你不可能推断出右半边人的生日。在这类问题上,分类错误率接近50%(跟瞎猜差不多),对应的幻觉率就接近100%。

有人问:"为什么模型不能永远说'我不知道',或者只重复训练数据里见过的内容?"

这是两个理论上不幻觉的极端策略,但问题在于它们没有"校准"(calibration)。什么是校准?简单说,就是模型对自己预测的置信度要准确——如果模型说某件事有70%的概率,那这件事真的应该在70%的情况下发生。

语言模型的训练目标(最小化交叉熵损失,可以理解为让模型预测的概率分布尽可能接近真实分布)天然会产生校准良好的模型。经验观察表明,语言模型说某件事有某个概率时,这件事确实以那个概率发生。 而"永远说我不知道"或"只重复训练数据"这两种策略,它们的概率预测是严重失真的,所以不会被训练过程选中。

3、古德-图灵估计器:量化幻觉率的下界

这个估计器来自图灵的合作者Irving Good。图灵当年研究的问题可以用钓鱼来类比:你钓了100条鱼,50条三文鱼,20条金枪鱼,还有一些其他品种……如果再钓一条,是你从没见过的新品种的概率有多大?

答案是:看有多少种鱼只出现过一次。直觉上,每种只出现一次的鱼,就像是一个"差一点就没见过"的样本——如果你少钓一次,这种鱼你就没见过了。所以它们代表了"再钓一次可能遇到新品种"的概率。

应用到幻觉问题:幻觉率的下界 ≈ 训练数据中只出现一次的事实占比

Kalai问现场观众不同类型事实的出现频率:

  • 国家首都
    - 在训练数据中反复出现很多次,幻觉率低
  • 名人生日
  • - 有些人的生日出现很多次(比如爱因斯坦),有些可能从未出现(比如Kalai自己),是混合情况
  • 论文标题
    - 虽然每篇论文标题独特,但作者会在简历、个人网站、arXiv到处贴,所以大多数其实出现多次

但这只是下界——实际幻觉率往往更高。比如论文标题,虽然在训练数据中出现多次,但神经网络不是存储和精确检索标题的好方式。更好的方法是用数据库直接存储标题列表,需要时直接查询。当表示方式不匹配任务需求时,实际幻觉率会远高于理论下界。

类似的例子是数字母:问"ladder这个词有几个d",语言模型的内部表示方式是把词拆成token(词元),每个token是一串字母的编号。模型必须学会"deer这个token(编号可能是19975之类的数字)包含一个d"——这是一个很别扭的学习任务,因为表示方式根本不是为数字母设计的。

四、为什么对齐阶段没能解决幻觉

语言模型训练分两个阶段:预训练(学习语言的统计规律)和对齐/后训练(让模型按照人类期望的方式回答)。预训练产生幻觉可以理解,但对齐阶段理论上应该消除幻觉。为什么没有?

1、评估标准的激励扭曲

想想你自己考试的时候。有多少人遇到不会的题会写"我不知道"或者空着?

几乎没有。因为说"我不知道"和答错得分一样——都是零分。既然如此,猜一个至少还有蒙对的可能,所以猜测永远比承认无知更划算。博弈论里把这叫做"占优策略"(dominant strategy),意思是不管对手怎么做,这个策略都是最优的。

语言模型面临同样的困境。MMLU、GPQA Diamond、各种数学竞赛测试——这些主流评测(benchmark)都有一个共同特点:说"我不知道"等于答错,得零分。

"如果有人做出了一个不幻觉的更好模型,它在这些测试上的分数反而会更低。因为它会对不确定的问题诚实地说'我不知道',而在现有规则下,这等于白白丢分。"

2、人类评估同样有偏差

另一种评估方式是让人类对比两个模型的输出,选择更好的那个。问题是:人们往往更喜欢幻觉的答案

你问"PGGB代表什么",一个模型说"我不知道",另一个模型给出带要点列表的详细解释。人们倾向于选择后者——因为他们自己也不知道PGGB是什么,没法判断那个详细解释是编的。

"人们喜欢那些有条有理的要点列表。所以很多评估方式实际上在奖励幻觉。"

3、真正的解决方案:改变评分规则

有人建议增加一个专门检测幻觉的评估。Kalai认为这远远不够:

"不要只加一个幻觉评估。语言模型现在有几百个评估指标,如果这几百个都在鼓励幻觉,我们只加一个反幻觉的评估,那是杯水车薪。应该改变所有现有评估的评分方式。"

具体方案:在题目中明确告诉模型惩罚规则

比如"答对得1分,答错扣3分,说'我不知道'得0分"。这样模型可以算出来:只有在超过75%确信时才应该作答,否则说"我不知道"期望收益更高。不同的惩罚系数对应不同的置信阈值,这提供了一个公平、可比较的评估框架。

之前有人提出过惩罚错误答案的想法,但关键的一步没做:没人把惩罚规则告诉模型。Kalai说这就像给你考试,告诉你"答错会扣分,但我不告诉你扣多少"——你没法做理性决策,而且不同模型也没法公平比较,因为它们心里假设的惩罚不一样。

Kalai在普林斯顿高等研究院做了实验验证:随着惩罚系数增加,模型说"我不知道"的频率确实相应增加,符合预期。但有趣的是,如果你看模型的实际得分(正确数 - 惩罚×错误数),在某个阈值之后,模型的得分会低于"全部说我不知道"的策略。这说明模型仍然过度自信——它以为自己知道的比实际知道的多。

五、行为校准:一个衡量"诚实度"的新维度

传统的校准(calibration)是关于预测准确性的:如果天气预报说降雨概率是70%,那在所有预报说70%的日子里,真的应该有70%下雨。如果实际只有50%下雨,就是校准不准。

Kalai提出了一个新概念:行为校准(behavioral calibration)

"有些人会把手表调快10分钟。为什么要欺骗自己?因为这样对他们有好处——他们会更准时,表现更好。"

语言模型也有这个特点:如果你"骗"它说惩罚比实际更高,它的表现反而会提高。Kalai在实验中发现,给模型一个"最优谎言"(让它以为答错的惩罚更重),得分会上升。

理想情况下,我们希望模型不需要被"骗"——你告诉它真实的风险程度,它就能相应地调整自己的回答策略。一个行为校准良好的模型,应该能根据你说明的重要性,合理地决定何时作答、何时承认不知道。

六、人类为什么不幻觉:大脑双系统的启示

讲座快结束时,Kalai在黑板上画了一张大脑示意图。

人类大脑有两个主要的语言区域,功能截然不同:

  • 韦尼克区(Wernicke's area)
  • :靠近耳朵,负责理解语言。它需要能听懂各种内容,包括谎言、脏话、你明知不是真的东西——你的耳朵需要能理解那些你绝不会说出口的内容
  • 布罗卡区(Broca's area)
    :靠近嘴巴,负责产生语言。这部分只输出你真正想说的、经过筛选的内容

有一种神经疾病叫韦尼克失语症(Wernicke's aphasia),患者会语无伦次地胡言乱语——这跟语言模型的幻觉惊人地相似。

"人类学会了不幻觉,因为如果我们胡说八道,我们看起来像傻瓜。我们不需要在考试里学这一课——在日常生活中瞎编被戳穿几次,自然就学乖了。"

这给AI设计带来一个启示:也许需要把"理解一切"和"只说有把握的"分成两个不同的模块。

对齐研究的核心问题是:我们到底希望语言模型说什么? 这是一个对所有人开放的大问题,你不需要了解语言模型的技术细节就能思考它——因为我们自己也还没有一个清晰的答案。

七、展望未来:当AI比我们更聪明时

Kalai在讲座最后分享了一些更长远的思考。

当AI变得比人类更聪明时,很多现有框架都会失效。幻觉仍然重要,公平性仍然重要,但会出现很多我们今天连定义都给不出的新问题。

他提出了一个发人深省的类比:把AI安全想象成密码学,而不是生物学

很多人把AI当作一种自然现象来研究——观察它、记录它的行为、像研究某种正在失控进化的有机体。但密码学的视角完全不同:RSA加密和区块链是人类工程设计的产物,我们可以在数学上证明它们的安全性,甚至面对比我们拥有更多算力和更高智能的对手,它们仍然安全

"密码学的核心就是:对抗一个比你有更多计算资源、可能比你更聪明的对手,同时保持安全。"

Kalai分享了一个与妻子Yael Tauman Kalai合作的理论结果:如果你有K个语言模型,其中大多数是"安全"的(不会产生有害输出),你可以构造一个中位数分布(median distribution)——它能放大安全模型的特性。具体来说,如果每个安全模型产生有害输出的概率都是极小的,那么中位数分布会保持甚至强化这个特性。

但目前有个实际障碍:不同语言模型之间的"重叠"可能极小。如果你拿Gemini和GPT来做这个实验,它们的输出分布可能几乎不重叠——比如同一道编程题,两个模型给出的代码风格完全不同。这会让上述算法难以应用。

一个可能的解决方向是规范化输出——比如定义一个标准的"正确程序分布"(比如:GPT-4在某个编程任务上输出的、通过测试的程序的分布),让所有模型都朝这个标准靠拢。这样不同模型的重叠会变大,安全性放大的效果才能实现。

有人问:"能不能在预训练阶段就改变损失函数来解决幻觉?"

Kalai认为预训练可能不是解决这个问题的正确时机:

"因为有时候你其实想要幻觉。你让它写短篇小说、编菜谱——随便发挥。我告诉你我厨房里有什么食材,你尽管创造一个新菜谱。但问生日的时候,我不希望你瞎编。所以这是一个微妙的平衡——这类问题可以猜,那类问题不能猜,另一类问题要特别谨慎。我觉得这更像是一个需要明确指导的过程,不是单纯从数据里能学会的。"

有人追问:"但人类能自动学会什么时候该说'我不知道',为什么模型不能从数据中学会?"

Kalai承认这是个好问题,目前没有完美答案。也许通过提示词(prompting)就能部分解决——比如在提示中说"这是问题,现在请以那个非常谨慎的助手的身份回答",或者"如果你答错会很尴尬",甚至"如果你答错会被开除"。

他提到一个有趣的实验发现:如果你在提示中告诉语言模型"答对给你20美元奖励",它的表现真的会变好。

所以,Kalai的讲座揭示了一个令人不安但重要的事实:语言模型幻觉不是技术缺陷,而是激励机制的必然结果

当前的评估体系就像一场只看正确率、不惩罚胡说八道的考试——在这种规则下,猜测永远比承认无知更划算。解决方案不是让模型更大、训练数据更多,而是从根本上改变我们评价模型的方式。

对于实际应用者来说,这意味着:

  • 不要盲目相信模型的自信语气
  • 在高风险场景中,主动要求模型说明信息来源和置信度
  • 理解"说我不知道"是一种能力而非缺陷——能诚实承认无知的模型,往往比什么都敢答的模型更值得信赖

对于AI开发者来说,这是一个明确的行动号召:停止使用那些奖励幻觉的评估标准,开始设计能够奖励诚实表达不确定性的新标准

核心洞察Q&A

Q1:为什么语言模型在预训练阶段必然会幻觉?

A:预训练只从"正确"的文本学习,从不接触错误示例。这在统计上比同时从正例和反例学习要困难得多。可以从数学上证明:如果模型无法区分某类事实的正确与错误(比如人的生日——生日之间没有可学习的规律,知道张三的生日推不出李四的),它在这类问题上的幻觉率会趋近100%。这不是模型不够聪明的问题,而是只从正例学习这件事本身,就在统计上决定了模型无法学会对未知事物说"不"

Q2:对齐阶段为什么没能解决幻觉?

A:因为几乎所有主流评测都把"说我不知道"等同于"答错"——都得零分。在这种评分规则下,猜测永远是更优策略:猜对了得分,猜错了也不比说"我不知道"更差,那为什么不猜?如果一个团队真的做出了诚实的、不幻觉的模型,它在现有排行榜上的分数反而会更低。这是一个激励机制与目标错位的问题,不是技术能力问题。解决方案是改变游戏规则:明确告诉模型答错的惩罚是多少,让它可以理性计算何时该冒险回答、何时该诚实说"我不知道"。

Q3:为什么人类不像语言模型那样幻觉?

A:两个关键差异。第一,社会惩罚机制——如果你在专家面前胡说八道,你会丢脸、失去信任、甚至影响职业发展。这种惩罚发生在考试之外,让人类早早学会了在不确定时保持沉默。语言模型没有这种长期声誉激励。第二,大脑的功能分离——人类的语言理解区(韦尼克区)和语言产生区(布罗卡区)是分开的。你可以听懂脏话但选择不说;你可以理解一个谎言但不会复述它。语言模型没有这种分离,它的"嘴巴"直接连着"耳朵"训练模型不幻觉,可能需要在架构上模拟这种分离——有一个可以理解和预测任何内容的模块,以及一个只输出高置信度、经过筛选内容的模块。

来源:至顶AI实验室

0赞

好文章,需要你的鼓励

2025

11/27

16:57

分享

点赞