找回密码
 注册
搜索
查看: 33|回复: 0

[电脑数码] 科技丨为什么 AI 宁可瞎编,也不说不知道?

[复制链接]
发表于 2026-3-21 05:45 PM | 显示全部楼层 |阅读模式


科技丨为什么 AI 宁可瞎编,也不说不知道?

知乎日报
2026年3月19日 07:00

相信大家对大模型的幻觉已经见怪不怪了,AI 总是宁可瞎编,也不承认自己不知道。

过去我们总觉得这是因为模型没训练好,或者数据太脏。但最近@开闸放水 、@Sif 麻雀儿 的论文提出即便数据完美、训练充分,大模型为了节省记忆空间,也会「选择」产生幻觉。

论文作者自己深入浅出地分享了一篇论文导读,好文共赏:

640.png

@开闸放水

美国西北大学 理学硕士

3 月 9 日发布于知乎

最近笔者和合作者 @Sif麻雀儿 在 arxiv 上传了一篇关于 LLM 幻觉(Hallucination)的理论工作:就算忽略掉」模型没学好「和」数据太脏「等因素,为了节省记忆的目的,语言模型也会自然地产生幻觉。在这里稍微宣传、科普一下这篇文章。

本文直觉上解释了三件事:

  • 为什么号码/法律判例这类看起来随机的知识上,模型最容易瞎编;

  • 为什么「让模型学会说不知道」会带来 over-refusal;

  • 为什么为了消除幻觉,RAG 不光是工程 trick,而是很自然的出路。

文章链接:https://arxiv.org/abs/2602.00906


一、幻觉:语言模型喜欢瞎编

现在的 LLM 做修改语法这样的有规律的任务已经效果不错了。但是在一些随机事实上,即使最好的模型也很拉胯。最著名的例子是有律师用 GPT 准备官司,结果 GPT 直接一个胡编乱造判例。科研牛马们也肯定知道,不允许上网搜索的话,询问 LLM 具体的论文标题和作者,得到的结果多半是似是而非的虚假论文。

IMG_8600.JPG

25 年了,居然律师还用 LLM 乱写

鉴于这个问题的重要性,学界和业界很多人都在关心幻觉的产生机制。

这方面大致有这几类工作:

  • 工程上的问题:数据脏、训练不足,或者是自回归本身就容易「不小心说错然后顺着往下说」。

  • 可计算性理论:有些不可计算的输出 LLM 不可能完全学会,所以输出内容肯定会出错。

  • 统计学习理论:在没有规律的死知识上,有的 LLM 压根没见过,被问到了只能瞎猜。

  • 模型容量/有损压缩:模型大,但世界更大。训练集中的知识肯定有它记不住的。

工程上的问题先放一边——我们想搞清楚的是:就算一切都很理想——数据干净、训练充分、模型也不会「说错了顺着往下编」——幻觉还是会出现吗? 可计算性因为不涉及判例这样的事实性错误,所以也暂且不考虑。我们先重点介绍后两个思路,然后从它们没覆盖的地方,引出我们的新视角。

1.1 相关工作:统计学习(statistical learning)

这个思路重点关注的方向就是泛化。我们重点关注「随机事实」:

随机事实:一些看起来随机的知识;它们没有内在规律、也独立于其它知识,所以如果 LLM 想正确回答一个这样的问题,必须要在训练中见过才行。

举个栗子:你朋友的电话号码——你不可能从张三的号码推出李四的号码;某本冷门教材的 ISBN 码;再推广一点,论文的具体标题作者、法律界过往判例、某个软件曾经有过的具体的 bug,其实也只有比较泛泛的规律和很强的随机性。

而统计学习中经典的 no-free-lunch 定理可以说明,假如在这些无规律的随机事实上进行真/假判别,那么我们除非训练中见过绝大多数随机事实,否则是不可能做全对的。

而这有些强人所难:训练集不可能包罗万象,更别提有的问题训练时根本就没有答案,比如谁是下一任美国总统。从这个角度考虑的论文不在少数——我们的确不能把 LLM 当全知全能的神。

IMG_8601.JPG

网图:只见过中间的数据的情况下,无法准确外推到两边。

当然了,这并不是无解的。只要让 LLM 在没见过的、无法推断的问题上,直接拒绝回答(abstain)就行了。这也是 OpenAI 论文中[1]提到的:很多训练和跑分并不奖励如实的承认自己不知道,这是当下幻觉产生的主要原因之一。反观人类就不容易出现幻觉,因为我们清楚自己不知道什么,知之为知之。

同样的,假如 LLM 能完美区分「见过的事实」和「没见过(但可能是真的)的非事实」,那其实它就能做到又博学,又不 hallucinate。

但问题又来了——完美区分事实和非事实,这件事也并不容易。比如,让模型更保守似乎总会导致过度拒绝(over-refusal)[2],也就是本来能答的也会答不了。那么,自然的问题就是:

对于语言模型,「知道」和「不知道」之间的界限为什么是不清晰的?

这就导向了下面的第二个视角。

1.2 相关工作:有损压缩(lossy compression)

纽约客 2023 年一篇文章说「GPT 是整个互联网的一个模糊的 JPEG」,这指的就是有损压缩。正如 JPEG 会丢掉高频细节只保留重要形状,因为 LLM 所包含的信息量不足以完整描述整个训练集,这就会导致细节信息的丢失。近期有工作[3]也论证了,在参数有限的时候,如果有无穷多的知识需要记忆,那么那些 long-tail 的、不常见的知识,自然会被放弃。

但是,现有的理论并不足以解释上面那个「区分事实和非事实」的任务为什么 LLM 做不好。

具体来讲:

  • 不匹配的数学模型——现有的工作要么泛泛地说「有损压缩一定要有损」,要么是需要假设有无穷多个事实才能体现出来参数量的不足[3]。但是在我们这里,「见过的事实」是一个有穷集合;事实数量和 LLM 参数量相比,也并不算很多。

  • 无法区分错误类型——单纯的「有损」和「失真」能解释 LLM 为什么会遗忘(存不下了就丢掉),却解释不了为什么它们非要「瞎编」,而且编得如此理直气壮。

所以,我们面前有两个谜团:

(1)事实是有穷的,为什么还是记不住?

(2)记不住就算了,为什么非要瞎编?

为了研究这些更具体的表现,我们需要一个新的视角——于是这就引出了我们论文所定义的 membership testing(这里姑且翻译为「成员查询」)问题。

二、我们的视角:

LLM 是随机事实的「成员查询器」

为了建模「死知识」的存储方式,我们不妨把 LLM(的其中一个功能)看作一种进行成员查询的数据结构。当然,LLM 做的事情远比「查询一个集合」复杂,但对于「某个判例是否存在」这类事实性问题,成员查询确实抓住了问题的核心。

2.1 什么是成员查询?

想象所有可能的「事实」是一个巨大的 universe U(比如所有看起来像那么回事的法律判例),而模型已知的事实,我们称之为「keys」,是其中一个稀疏的子集 K(真实存在的判例)。这里我们假设所有不在 K 里的,一律视为「非事实」。这一假设也叫 closed-world assumption。

LLM 记忆知识时,它相当于构建了一个数据结构,这个结构要完成的任务很简单:

IMG_8602.PNG
IMG_8603.JPG

Gemini 生成的。AI 真的很好用。

2.2 插曲:布隆过滤器

对数据结构有了解的观众们可能会发现这很像 Bloom filter(布隆过滤器)——这确实是是我们的思路来源之一。下面是别人写的这个数据结构的小简介👉🏻https://zhuanlan.zhihu.com/p/43263751

filter 是一类简单、省空间的数据结构。它们的目的也是存一个集合 K ,而对于「是否 i ∈ K 」这样的问题,它的回答是一个 {0,1} 里的二元回答。Bloom filter 允许一个 false positive rate (FPR):

IMG_8604.PNG
IMG_8605.JPG


2.3 两种错误标准:log-loss 和 FNR/FPR

这种推广可以建模 LLM 在随机事实上的两种「成员查询」:概率估计,和真假判断。

IMG_8606.JPG
IMG_8607.JPG

真假判断。假设我们通过一些后处理,真的筛选出来一些事实,如 K= 「LLM 在自我检查后,会输出的判例」,作为 U =  「所有判例」的子集。在这个语境下,我们的目标和过滤器类似——我们希望减少假阴性/假阳性这两种错误率:

IMG_8608.PNG
IMG_8609.JPG

三、我们的结论

我们的主要定理比较数学:给定一个目标错误率,那么为了达到这个错误率,LLM(或任何「成员查询器」)充分必要的存储信息量,会由一个 KL 散度项决定。

我们先建立一个直觉。

想象宇宙 U 里有一百万个「看起来像判例」的东西,但只有一千个是真的。对于查询器来说,默认状态下每个元素都大概率是非事实,因为事实太稀疏了。那么,想让查询器在遇到真事实时输出高置信度,它就必须为每一个事实额外存储一些信息,把它从默认的非事实中「拎出来」。这个「拎出来」所需的信息量,恰好就是事实和非事实的置信度分布之间的 KL 散度。KL 散度越大,这个区分就越明显,但也越费空间。

3.1 主要定理:A rate-distortion theorem

为了方便描述定理,我们整理一下相关定义:

IMG_8610.JPG
IMG_8611.JPG

3.2 log-loss 视角——高置信幻觉是「自然的」

有了上面那条定理,我们就可以解出为了最小化对数损失,一个输出「 i ∈ K 的概率」的概率模型将会如何储存事实与非事实。最小化 KL 散度的解是个凸优化问题。

IMG_8612.JPG

用人话说:模型会以一个高置信度 x^* 来「记住」所有事实;但是在非事实上,它会坚定拒绝大部分非事实(0 置信度),然后「记住」一小部分非事实,并且给他们分配和事实相同的置信度 x^* 。这些就对应所谓的幻觉。

注意这件事的荒诞之处:幻觉内容和真事实,在模型眼中一模一样。不是「模糊地觉得可能是真的」,而是「以完全相同的高置信度认定为真」。这意味着,任何试图通过置信度阈值来过滤幻觉的方案,在这个模型身上都会完全失效——你设定任何一个阈值,要么把真事实和幻觉一起接受,要么把它们一起拒绝。模型不是「记错了」,而是「认认真真地把一部分幻觉当事实记住了」。

我们在小型 transformer 上跑了 synthetic 实验,验证了上述倾向。( λF 是一个参数,控制事实 loss 在训练的 loss function 中的权重。)

IMG_8613.JPG

绿色:事实置信度分布。红色:非事实置信度分布。蓝色:相同损失下的理论最优分布。

我们来仔细看这张图。绿色是事实的置信度分布,红色是非事实的。

关键观察:红色分布不是只集中在 0 附近的。 在事实集中的高置信度区域(图中右侧),红色曲线也出现了一个明显的「鼓包」。这就是理论预测的「幻觉通道」——一部分非事实被模型赋予了和真事实几乎一样的高置信度。

蓝色竖线标出的是理论最优分布的位置。可以看到,实际的 transformer 虽然因为表达力限制没能输出完美的两点分布(理论预测是一个 delta 函数),但它的行为趋势和理论高度一致:高置信度区域的非事实频率确实在增加。定量地看,我们计算了实际分布和理论下界之间的 KL 散度,发现模型只多用了约 12% 的信息量。这个吻合程度已经相当不错。

另外一个有趣的现象是事实错误惩罚系数 λF 的影响:当我们增大 λF (更强调「记住所有事实」),模型确实在事实上的 recall 提高了,但代价是把更多非事实拖入了高置信区——不仅幻觉率飙升,甚至整体错误率都增加了。这印证了一个实用建议: 训练时不要一味追求高 recall,适当强调「拒绝非事实」可能是更划算的策略。

3.3 二元判断:为什么允许「不知道」也消除不了幻觉?

刚才是概率估计(log-loss)下的最优解。那如果我们退一步呢?我不要求模型给出精准的概率预测,也不要求它是某种程度上的「最优」。我只要求它像一个二元分类器:通过某种决策机制,它如果觉得一个事实是已知的就认可它,否则就直接拒绝回答。

这就是我们开头说的 Abstention——这是消除幻觉的良药,但也会同时导致模型拒绝回答它本来知道的问题。我们的理论也可以对这个现象做出解释。

我们的主要结论放到二元分类视角下(即 filter 的 0/1 输出和 FPR/FNR 错误率),那么我们可以首先得到传统 filter下界的一个自然推广:

IMG_8614.PNG

KL 散度具有天然的不对称性。上面已经说过 FNR=0 的时候的取值了;但是如果 FPR=0,那么有趣的事情发生了——除非 FNR+FPR=1,否则这个 KL 散度是无穷大。这意味着,没有「只会遗忘、不会瞎编」的数据结构。

特别地,不存在没有假阳性只有假阴性的「反向 Bloom filter」。

回到 LLM 的语境下,这可以说明两件事:

  • 如果对于随机事实的「记忆量」有限,那么拒绝回答无法完全消除幻觉。相反,这只会导致我们在幻觉和遗忘的 tradeoff 线上移动。这一点符合现实中的观察。

  • 就像 log-loss 视角一样,这个空间界也表明了「幻觉是最自然的错误方式」:消除遗忘是有可能的;但是消除幻觉,在潜在事实 U 无穷多的时候,是不可能的。不存在一个只会遗忘,不会瞎编的 LLM,因为它就相当于一个反向 Bloom filter。

四、为什么 LLM 的

「记忆量」有限?

读到这里,肯定有从事大模型训练的读者会掀桌:「现在的 LLM 动辄几百亿上千亿参数,存点死知识怎么就容量不够了?」

这里的核心差异在于,我们这里所说的记忆量,绝不是指参数量。严格来说,我们考虑的是模型最终学到的权重 W 中,真正包含的关于这批随机事实 K 的信息比特数,衡量方式是互信息 I(W; K) 。我们认为,在现实的训练动态中,这个有效的「事实脑容量」其实非常小,原因有二:

  • 为了泛化,模型天然排斥死记硬背。 无论是 Dropout、Weight Decay 等显式正则化,还是 SGD 带来的隐式偏好,从 PAC-Bayes 或最小描述长度(MDL)的理论视角来看,训练过程本身就是在极力压缩模型与训练数据之间的互信息。那些毫无规律的、高熵的随机事实,和训练数据中的无关噪声一样,在训练中极易被过滤掉。

  • 「结构化知识」挤占了空间。 世界上不仅有死知识,还有语法、逻辑等结构化知识。这些规律出现的频率高、对降低 Loss 的贡献极大,所以模型在训练早期就会优先把「记忆量」分配给它们。留给影响不那么大,也没有泛化功能的随机事实的,只剩下少得可怜的残余记忆量。这一点也和许多实验观察一致。

所以,哪怕你有一个巨大的模型,它真正分给「记电话号码」和「背生僻论文」的真实比特数也是极其捉襟见肘的。在这个极其有限的预算下,为了让整体事实任务的 Loss 降到最低,它只能顺应信息论的召唤,选择以「高置信度幻觉」这种最省空间的方式来妥协。

那如何增加记忆量?

一个自然的方法是通过大量针对性训练,强迫模型在这些随机事实上达到很小的错误率,当然这样做可能会有其它代价。另一方面,现实中大量使用的 RAG (retrieval-augmented generation)其实是一个相当有效的绕开记忆量限制的方法,因为它允许我们引入大量的外部信息。

五、总结

最后,让我们回到开头提出的三个问题:

为什么号码/判例这类随机知识最容易产生幻觉?因为这些知识没有规律可循,模型必须逐条死记,每一条都消耗宝贵的记忆容量。而我们的定理表明,在容量有限时,幻觉是数学上最优的错误方式。知识越「随机」,越需要死记,越容易触发这个机制。

为什么「让模型学会说不知道」会导致 over-refusal? 因为在最优解中,被幻觉的非事实和真事实共享完全相同的置信度。任何试图通过阈值来筛掉幻觉的操作,都不可避免地同时筛掉一部分真事实。消除幻觉和避免过度拒绝,在有限记忆下是一对不可调和的矛盾。

为什么 RAG 是自然的出路? 因为我们的下界针对的是参数化记忆——把事实硬塞进权重的场景。RAG 通过外挂数据库绕过了这个瓶颈,让模型不再需要充当一个「随机事实的过滤器」,而是回归它擅长的领域:理解问题、提取信息、逻辑推理。这不是工程上的权宜之计,而是信息论指明的方向。

IMG_8615.JPG

知友讨论

@RabbiaGola:

如果有一个稳定的,且不产生幻觉的,只在特定领域作用的小模型(工业方面),那就完全可以替代某一部分的工艺流程,逐渐发展下去的话,应该能真正做到工具化。但现在要不然就是旧机械学习比较好用,要不然就是用程序固定死。这样即使出现问题,工程师也能很容易判断出问题点。而ai在工业领域的落地,还是比较困难。

@Sunlight-zero:

完大佬的论文我也产生疑惑了:人类某种意义上也是把随机事实塞进脑子(参数)里,并且人类大脑也有编造记忆的现象,但是为什么人类的这个现象就要比LLM弱呢?

@stella:

这paper真是好paper吧,解答了我长久的疑惑

@Chris:

用非常基础的信息论,却清晰透彻地说明了幻觉问题
理论上极其优雅简洁,让人看了之后有种“嘿我怎么就没有朝这个方向想呢”的感觉,研究就该这么做!

@Jinbiao Yang:

我之前的一个工作也做了这个,不过没有你们做的细,只是说幻觉容易在置信度差不多的情况下发生。
另外我提了个很粗糙但简单的解决方案,如果发现topK的输出置信度差不多,就用reasoning token替代,强制进入reasoning。这部分我没有实验,有兴趣不妨一试。

@於戏:

您的这个研究结论是仅对transformer有效呢,还是广泛的神经网络?那有没有其他的架构,比如像RNN之类的,或者其他的训练方法能够实现稳健的记忆与事实推理?

作者:

广泛的都有效。这个模型很抽象,不依赖于具体架构,单纯是说"需要多少记忆量"以及"怎样最节省记忆"

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|www.hutong9.net

GMT-5, 2026-7-26 05:00 PM , Processed in 0.107654 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表