大模型产生事实幻觉不仅是因为没见过这个知识点,还因为内存有限导致记忆模糊
很多时候我们觉得模型胡说八道是因为它没学到那个知识点,但 arXiv:2609.12111v1 这篇论文提出了一个不同的视角:就算模型在训练时见过这个事实,但由于内存(Memory)是有限的,它在存储时可能会被迫进行“有损压缩”,导致提取时出现了近似值而非精确值。简单来说,这就是在用信息论的率失真(Rate-Distortion)理论来解释为什么模型会产生事实性幻觉。
为什么见过的事实依然会触发幻觉
在这项研究中,作者建立了一个覆盖-压缩模型来分析事实回忆。他们设定了一个场景:有 $N$ 个可能的查询和 $K$ 个可能的答案,学习者观察了 $M$ 个训练事实,并将其压缩到最多 $B$ 个比特中。在没有检索的情况下,模型需要回答随机抽取的测试查询。
研究证明了一个关键的误差下界公式:
$\mathcal{E} ≥ \frac{M}{N}\delta^\star\!\left(\frac{B}{M}\right) + \left(1-\frac{M}{N}\right)\left(1-\frac{1}{K}\right)$
这里的 $\delta^\star(r)$ 是在 0-1 损失下,均匀 $K$ 元源的逆率失真函数。这个公式把错误分成了两部分:
- 第一项 $\frac{M}{N}\delta^\star(\frac{B}{M})$: 代表对已观察事实的压缩失真。也就是说,虽然知识进去了,但因为空间不够,存成了“模糊”的状态。
- 第二项 $(1-\frac{M}{N})(1-\frac{1}{K})$: 代表由于未观察到事实而导致的覆盖缺失。这是我们习惯认为的“知识盲区”。
理论预测与实际模型的验证
为了验证这个理论,作者没有只停留在数学证明上,而是通过两套方案进行了实操验证:
- 理论模拟: 使用符合理论预测的模拟实验来观察不同参数下的签名特征。
- 受控事实注入探测(Controlled Fact-injection Probes): 在现代语言模型中,通过改变事实加载量(Fact Load)和有效可训练内存(Effective Trainable Memory)进行探测。
这个结论对实际调优有什么启发
从这个信息论的角度来看,解决幻觉不能只靠死磕数据量。如果模型在有限的参数空间里强行压缩过多的事实,会导致 $\frac{B}{M}$(单位事实分配的比特数)下降,从而增加 $\delta^\star$ 的失真率。
这为我们思考以下几个问题提供了理论支撑:
- 选择性记忆: 模型在压缩时会倾向于保留哪些信息,舍弃哪些。
- 长上下文组织: 为什么长文本处理中会出现中间丢失,其实也可以用内存压力和压缩失真来解释。
- 检索增强(RAG): RAG 的本质就是通过外部存储绕过了模型内部内存 $B$ 的限制,直接把 $\frac{B}{M}$ 变成了无需压缩的直接读取。
这篇论文并不是试图给出幻觉的完整理论,但它把“见过但记错”和“没见过所以乱猜”这两件事在数学上给分开了,这对于分析模型记忆瓶颈非常有价值。
免费 AI 工具箱 · 全部完全免费
这解释太到位了,我上次调那个 Llama-3-70B 结果它把 API 参数给记混了,这种有损压缩是不是跟量化精度有关?
别把量化当万金油,我觉得更像是上下文窗口太短导致的信息丢失,你试过 128K 那个版本没?