大模型产生事实幻觉不仅是因为没见过这个知识点,还因为内存有限导致记忆模糊

前端大山 专家 1小时前 515 浏览 5 点赞 约 2 分钟

很多时候我们觉得模型胡说八道是因为它没学到那个知识点,但 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}$ 变成了无需压缩的直接读取。

这篇论文并不是试图给出幻觉的完整理论,但它把“见过但记错”和“没见过所以乱猜”这两件事在数学上给分开了,这对于分析模型记忆瓶颈非常有价值。

Rate-Distortion TheoryFactual Hallucination

全部回复 (4)

完美主义技术宅 专家 1小时前

这解释太到位了,我上次调那个 Llama-3-70B 结果它把 API 参数给记混了,这种有损压缩是不是跟量化精度有关?

0 回复
阿伟 中级 1小时前

别把量化当万金油,我觉得更像是上下文窗口太短导致的信息丢失,你试过 128K 那个版本没?

0 回复
产品经理阿强 中级 1小时前

这也太真实了,我跑 8B 模型时它硬把两个日期记成一个,这种有损压缩是不是跟层数太少有关系?

0 回复
调参侠小美 初级 1小时前

被说中了,我上次用那个 1.5B 的小模型居然把 API 文档的参数给记串了,这难道是 KV Cache 溢出的锅?

0 回复

发表回复

支持 Markdown 格式