Enhancing Hallucination Detection through Noise Injection

该论文提出了一种无需训练的推理时幻觉检测方法,通过向模型参数或隐藏层激活注入噪声来更准确地量化贝叶斯不确定性,从而显著提升了大语言模型幻觉检测的效果。

Litian Liu, Reza Pourreza, Sunny Panchal, Apratim Bhattacharyya, Yubing Jian, Yao Qin, Roland Memisevic

发布于 2026-03-03
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文提出了一种简单却巧妙的方法,用来解决大语言模型(LLM)最让人头疼的问题之一:“一本正经地胡说八道”(也就是所谓的“幻觉”)。

为了让你轻松理解,我们可以把大语言模型想象成一位**“才华横溢但偶尔会犯迷糊的超级厨师”**。

1. 核心问题:厨师为什么会“幻觉”?

想象一下,你让这位厨师做一道他从未做过的菜(比如“用香蕉和辣椒做意大利面”)。

  • 现状: 厨师很自信,立刻端出了一盘看起来很像意大利面的东西,甚至还在上面撒了芝士。但他其实根本不知道这道菜该怎么做,只是在“猜”。
  • 以前的检测方法: 以前的方法就像是你让厨师**“多试几次”**。你让他基于同样的配方(模型参数)再做 10 次。
    • 如果这 10 次做出来的菜味道都差不多(比如都是咸的),你就觉得他可能真的知道怎么做。
    • 如果 10 次做出来的菜千奇百怪(有的甜、有的苦、有的像沙拉),你就觉得他在瞎编。
    • 局限性: 这种方法只能检测厨师在**“随机性”(Aleatoric Uncertainty)上的表现。也就是说,它只能看出厨师在“手抖”或者“心情波动”时会不会出错。但如果厨师“脑子里的菜谱本身就是错的”**(Epistemic Uncertainty,即模型知识缺失),哪怕他手很稳、心情很好,他每次都会自信地端出一盘错误的菜。这时候,传统的“多试几次”就失效了,因为 10 次做出来的都是同样的“错误答案”。

2. 论文的新招:给厨师的大脑“加点噪点”

这篇论文的作者说:“我们不仅要让厨师多试几次,还要在他试菜的时候,稍微‘干扰’一下他的记忆和思路。”

这就是论文的核心:噪声注入(Noise Injection)

  • 比喻: 想象你在厨师做饭的过程中,轻轻推了他一下,或者在他耳边随机说了一句无关紧要的话,甚至稍微改变了一下他切菜时的力度。
    • 如果厨师真的懂这道菜: 即使你推了他一下,他依然能稳住阵脚,做出来的菜味道基本不变(因为他脑子里有正确的“核心知识”)。
    • 如果厨师在瞎编: 你稍微一干扰,他的思路就乱了,做出来的菜味道就会变得乱七八糟,甚至完全不像样。

技术上的解释:
在数学上,这相当于在模型生成答案的过程中,随机地、轻微地修改模型内部某些“神经元”的激活值(就像给厨师的短期记忆加了一点杂音)。

  • 如果模型对某个问题是**“真懂”**的,这种微小的干扰不会让它产生巨大的分歧。
  • 如果模型是**“瞎编”**的(幻觉),这种干扰会让它产生巨大的分歧,答案变得非常不稳定。

3. 为什么这招这么管用?(双重保险)

论文提出了一个非常棒的观点:检测幻觉需要**“双重保险”**。

  1. 数据的不确定性(Aleatoric): 就像厨师手抖、心情不好导致的随机误差。这是通过**“多生成几次”**(采样)来捕捉的。
  2. 模型的不确定性(Epistemic): 就像厨师**“根本不知道这道菜怎么做”。这是通过“加噪点”**(噪声注入)来捕捉的。

以前的做法: 只检查“手抖”(只采样)。
现在的做法: 既检查“手抖”,又检查“脑子是否清醒”(采样 + 加噪点)。

4. 实验结果:简单、免费、效果好

  • 不需要重新训练: 这个方法不需要把厨师(模型)重新培训一遍,也不需要花钱。它只是在厨师**“上菜前”**(推理阶段)加了一个小步骤。
  • 效果显著: 作者在多个测试集(比如数学题、常识问答、百科知识)上做了实验。结果发现,加上这个“加噪点”的步骤后,模型识别“胡说八道”的能力(AUROC 分数)显著提升。
  • 不降低质量: 有趣的是,虽然加了噪点,但模型正常回答问题的准确率并没有下降。也就是说,它既能更敏锐地抓出骗子,又不会误伤老实人。

5. 总结:给大模型装个“测谎仪”

这篇论文的核心思想可以总结为:

要判断一个人(大模型)是不是在吹牛,不要只听他重复说一遍,也不要只让他重复做十遍。你要在他做的时候,稍微“捣乱”一下。如果他真懂,他越捣乱越稳;如果他在瞎编,一捣乱就原形毕露。

这种方法就像给大语言模型装了一个**“抗干扰测谎仪”**。它利用简单的数学技巧(在计算过程中加一点随机噪声),低成本、高效率地让模型自己暴露出“我不知道”的时刻,从而大大提升了 AI 使用的安全性。

一句话概括: 别光看模型“想”得有多顺,要看它在“被打扰”时还能不能保持清醒。