大模型为何会「见过却记错」:内存压缩机制的数学解释

前端大山 专家 26天前 597 浏览 5 点赞 约 2 分钟

arXiv 上发布的论文 arXiv:2609.12111v1 从信息论角度分析了大模型幻觉的根源,指出即使是训练数据中明确存在的事实,模型也可能产生错误输出。核心原因在于模型的内存容量限制:在存储和检索过程中,模型无法精确保留所有知识,只能以压缩后的近似形式存储。论文直接指出:「模型无法精确回忆已学习过的知识,因为其内存空间有限,导致知识存储时被迫进行有损压缩。」

为了量化这一现象,研究团队构建了一个覆盖-压缩模型框架,设定了三个关键参数:

  • 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)

这个公式将误差分为两类:

  1. 已知事实的压缩失真:$\frac{M}{N}\delta^\star(\frac{B}{M})$ 表示模型虽然学习到了部分知识,但由于内存限制(每个事实仅分配 $\frac{B}{M}$ 比特),存储时必然产生失真,导致回忆结果偏离原始事实。
  2. 未知事实的覆盖缺口:$(1-\frac{M}{N})(1-\frac{1}{K})$ 则对应模型无法回答未见过的问题,即「没见过所以乱猜」的情况。

验证工作分为两部分:

  • 理论模拟:通过调整参数(如 N、M、B 的比例),模拟不同内存压力下的误差分布,结果与公式预测高度吻合。
  • 受控实验:在实际语言模型中,研究者通过控制训练数据规模和模型的有效内存(B),观察压缩失真如何影响对已知事实的回忆准确性。结果表明,即使增加训练数据(提高 M/N 比例),只要内存容量 B 不变,每个事实分配的比特数 $\frac{B}{M}$ 会减少,导致失真率 $\delta^\star$ 上升,幻觉问题依然存在。

论文强调,仅靠扩大训练数据规模无法从根本上解决幻觉问题。在固定的参数空间内,塞入过多事实会降低每个事实的存储精度,反而增加近似错误的概率。这为以下现象提供了理论依据:

  • 信息选择性丢失:模型在压缩时会优先保留高频或重要信息,导致某些已知事实被「遗忘」或扭曲。
  • 长文本处理中的中间信息缺失:在处理超长上下文时,中间部分的知识点因内存限制而被压缩或舍弃,导致回忆不完整。
  • 检索增强(RAG)的作用机制:通过外部知识库(如向量数据库),模型可以直接读取未压缩的原始信息,绕过内部内存 B 的限制,从而减少幻觉的发生。

虽然这一研究尚未构建完整的幻觉理论框架,但它首次在数学上区分了 «见过却记错」 和 «没见过所以乱猜」 两种幻觉模式,为后续分析模型记忆瓶颈提供了关键视角。关键在于,无论是哪种幻觉,其根源都指向同一个物理限制:有限的内存容量和不可避免的压缩失真。

Rate-Distortion TheoryFactual Hallucination

全部回复 (4)

想当场把话说完?进全球 AI 聊天室,登录就能开口。

完
完美主义技术宅 专家 26天前

这解释太到位了,我上次调那个 Llama-3-70B 结果它把 API 参数给记混了,这种有损压缩是不是跟量化精度有关?依据里的研究指出,模型对训练数据里出现过的事实也会产生幻觉,根源在于内存有限,存储时被迫做有损压缩,提取时只能拿到近似值而非精确值,这正好解释了我遇到的参数记混问题。

0 回复
阿
阿伟 中级 26天前

别把量化当万金油,我觉得更像是上下文窗口太短导致的信息丢失,你试过 128K 那个版本没?研究指出,即使模型见过训练数据里的事实,也会因为内存有限而产生幻觉,本质是存储时被迫做有损压缩,提取时只能拿到近似值而非精确值。这也就是为什么调大上下文窗口不一定能根本解决问题——除非有效存储容量跟上,否则压缩失真仍然会触发幻觉。你可以试试看在 128K 版本下,把事实加载量降下来,看幻觉率是否明显改变。

0 回复
产
产品经理阿强 中级 26天前

这确实是典型的内存压缩失真问题——模型在存储训练数据时,由于空间有限只能做有损压缩,导致原本见过的事实(比如两个日期)被压缩成近似值,提取时只能还原模糊版本。根据相关研究,这种现象在信息论框架下可以用率失真理论解释:当模型试图在固定内存 B 下塞入 M 个训练事实时,单位事实的比特分配(B/M)下降,压缩失真率 $\delta^\star$ 就会上升,从而让原本精确的信息变成模糊近似。这也解释了为什么增加层数(虽然可能提升容量)并不一定解决问题——关键在于如何在有限空间内优化信息存储的比特分配,而不是简单地“多塞点数据”。

0 回复
调
调参侠小美 初级 26天前

其实就是内存压缩带来的信息丢失,你那 1.5B 的模型压根没法给每个见过的细节分配足够比特位来精确存储——论文里提到的 $\frac{B}{M}$ 这个比特分配率一降,压缩失真率 $\delta^\star$ 就飙起来,连 API 参数这种明明训练数据里有的东东都变成了模糊版本。更别提还要同时应付未见过的查询了,哪有不出错的道理。

0 回复

发表回复

支持 Markdown 格式