Skip to content

大模型幻觉(LLM Hallucination)面试总结

来源:AiGC面试宝典 作者:宁静致远 日期:2023年09月29日


一、什么是大模型幻觉?

在语言模型的背景下,幻觉指的是模型“一本正经地胡说八道”:看似流畅自然的表述,实则不符合事实或者是错误的。

📝 通俗解释:就像一个记忆力不太好但很会讲故事的人,能把故事讲得头头是道,但细节往往是编的。大模型就是这样,它很会“组织语言”,但说的话不一定是真的。


二、为什么LLM会产生幻觉?

LLM产生幻觉的原因主要有以下几类:

2.1 数据相关原因

原因说明
源与目标的差异训练数据中源内容与目标内容存在偏差,这种差异可能是在数据收集过程中不经意间产生的,有时则是故意为之
无意识的源-目标差异数据基于某种经验法则编制,目标信息并不总是完全依赖源信息。例如,从两家不同新闻网站获取相同事件的报道,目标报道可能包含源报道没有的信息
有意识的源-目标差异某些任务不追求源与目标的严格一致,尤其是在需要多样性输出的情境下
训练数据的重复性训练数据存在大量重复,导致模型过于偏好某些高频短语
数据噪声的影响使用充斥噪声的数据进行训练,是导致幻觉的关键因素之一

📝 通俗解释:这就像让学生从互相抄作业的同学们那里学习知识——抄来抄去,错误会被放大,最后学到的东西可能和原始正确答案相去甚远。

2.2 模型与解码相关原因

原因说明
解码过程中的随机性top-k采样、top-p方法、温度调节等增加多样性的解码策略,会引入随机性,导致模型选择非最优词汇
模型的参数知识偏向模型更依赖预训练阶段积累的知识,忽略实时提供的上下文信息
训练与应用的解码差异训练时基于真实数据预测下一个词,但应用时是根据自己生成的内容预测,这种差异在长文本生成中会导致幻觉

📝 通俗解释:这类似于“传话游戏”——第一个人说一句话,第二个人根据自己理解的传给第三个人,传到第十个人时可能完全变样了。模型也是这么一代一代“传”出自己的回答的。

2.3 本质原因

生成模型只是学会了文本中词汇间的统计规律,它们生成内容的准确性仍然是有限的。

📝 通俗解释:大模型本质上是一个“超级文字接龙”高手,它知道在“天空是”后面最可能接“蓝色的”,但它不知道天空实际上是什么颜色。


三、为什么需要解决LLM的幻觉问题?

LLMs的幻觉可能产生严重后果:

  • 传播错误信息
  • 侵犯隐私
  • 在医疗应用中,对患者生成的报告如果存在幻觉可能导致错误诊断,甚至影响生命安全
  • 幻觉影响模型的可靠性和可信度

📝 通俗解释:如果医生用AI辅助诊断,AI把“肺炎”说成“肺癌”,或者把“没有病”说成“有病”,后果将不堪设想。这就是为什么幻觉问题必须解决。


四、幻觉一定是有害的吗?

不一定。 幻觉的容忍度取决于具体应用场景:

应用场景幻觉的影响
需要准确性的场景(医疗诊断、法律文书、新闻报道)有害,必须避免
需要创造力的场景(写小说、电影剧情、广告文案)有益,可以带来奇思妙想,使生成的文本充满想象力

📝 通俗解释:就像画画一样,写实派需要准确(不能有“幻觉”),但抽象派恰恰需要想象力带来的“幻觉”。AI也是同理——要看用在什么地方。


五、幻觉有哪些不同类型?

类型定义例子
内在幻觉生成的内容与源内容相矛盾源:“今天下雨” → 生成:“今天晴天”
外在幻觉生成的内容不能从源内容中得到验证,既不支持也不反驳源:“今天下雨” → 生成:“小明考上了清华大学”

📝 通俗解释

  • 内在幻觉 = “睁眼说瞎话”(和原文直接矛盾)
  • 外在幻觉 = “答非所问”(和原文没关系,也无法验证对错)

六、如何度量幻觉?

6.1 人工评估

最有效可靠的方式,但成本太高。

6.2 自动化评估指标

指标说明
命名实体误差(Named Entity Error)利用NE匹配计算生成文本与参考资料之间的一致性。如果模型生成了不在原始知识源中的命名实体,视为幻觉
蕴含率(Entailment Rate)被参考文本所蕴含的句子数量与生成输出总句子数量的比例,可使用成熟的蕴含/NLI模型计算
基于模型的评估应对复杂的句法和语义变化
利用问答系统(QA-based)如果生成文本与参考材料一致,对同一问题的答案应与参考材料相似。流程:问题生成 → 用参考文本回答 → 计算答案相似性
利用信息提取系统(IE-based)使用IE模型将知识简化为关系元组(如<主体,关系,对象>),比较生成文本与原始材料提取的元组

📝 通俗解释:就像检查学生作业一样,可以用“对照答案”(命名实体匹配)、“问问题看看回答是否一致”(QA方法)、或者“提取关键知识点比对”(信息提取)。


七、如何缓解LLM幻觉?

7.1 数据层面

与幻觉有关的数据问题可以通过创建高质量无噪声的数据集来解决。但验证和清理数百GB的文本语料库难度太大。

📝 通俗解释:这相当于“从小给孩子正确的教育”——理论上可行,但实际操作中很难保证所有教材都是准确无误的。

7.2 方法一:外部知识验证(主动检测和减轻)

论文:《A Stitch in Time Saves Nine: Detecting and Mitigating Hallucinations of LLMs by Validating Low-Confidence Generation》

核心发现:

  1. 幻觉会传播:一句话出现幻觉,后续生成的文本可能更严重
  2. logit输出值可作为信号:概率得分很低时,模型更容易产生幻觉

实现流程:

输入指令 → 模型生成句子 → 识别关键概念 → 计算不确定性 → 
验证问题生成 → 检索知识 → 修复幻觉句子 → 附加到提示继续生成

具体步骤:

  1. 检测阶段:提取生成句子的重要概念,利用logit输出值计算模型对它们的不确定性
  2. 验证阶段:针对高不确定性概念生成验证问题,通过搜索或LM查找相关知识
  3. 修复阶段:利用检索到的知识修复幻觉句子,将修复后的句子附加到输入继续生成

📝 通俗解释:就像老师在批改学生作文时,看到不确定的“事实”(比如年份、地点),就让学生去查资料核实,发现错误就改正后再继续写下面的内容。


7.3 方法二:事实核心采样(Factuality Enhanced Sampling)

论文:《Factuality Enhanced Language Models for Open-Ended Text Generation》

核心思想:采样的“随机性”在句子开头影响小,但在句子后半部分对事实性的损害更大。

原因

  • 句子开头没有前文,只要语法和上下文正确,LM可以生成任何内容
  • 随着生成进行,前提变得更确定,只有更少的单词选择可以使句子成为事实

算法:动态调整每个句子生成时的"核心"概率 $p_t$,公式为: $$p_t = \max(\lambda^t \cdot p_0, \omega)$$

其中 $\lambda$ 是top-p概率的衰减因子,$\omega$ 是概率的下限衰减。

📝 通俗解释:这就像写文章——开头可以随便写(反正没上下文限制),但写到后面就不能乱来了(上下文越来越多,限制也越来越多)。事实核心采样就是让模型在开头稍微“放飞”一点,越往后越“保守”。


7.4 方法三:SelfCheckGPT(一致性检查)

论文:《SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models》

核心思想

  • 如果模型真的掌握某个事实,多次生成的结果应该相似且事实一致
  • 如果模型在胡扯,随机采样多次的结果会发散甚至矛盾

实现流程

原始Passage → 生成问题(QG模块) → 
多次随机采样生成不同Passages → 
用QA模块判断答案一致性 → 输出Do answers agree?

信息一致性计算方法

  • 神经方法:BERTScore计算语义等价
  • IE/QA-based方法:基于信息提取或问答

📝 通俗解释:就像考试时检查自己答案的方法——如果不确定某个知识点,可以换一种问法多问自己几次。如果真的懂,怎么问都能答对;如果是在胡扯,不同问法就会答出不同的结果。


7.5 其他方法

方法说明
利用外部知识验证通过检索增强(RAG)获取真实知识进行验证
修改解码策略调整采样参数,减少随机性
采样多个输出并检查一致性类似SelfCheckGPT,多生成几个答案对比

📝 通俗解释:解决幻觉的方法可以总结为三类:

  1. 查资料(外部知识验证)
  2. 别乱猜(修改解码策略)
  3. 多检查(一致性检查)

八、LLMs什么时候最容易产生幻觉?

场景说明
数值混淆处理与数字有关的文本时,如日期或数值,容易产生幻觉
处理长文本需要解读长期依赖关系的任务中,如文档摘要或长对话历史,模型可能生成自相矛盾的内容
逻辑推断障碍若模型误解源文本信息,可能产生不准确的结论
上下文与内置知识的冲突过度依赖预训练知识,忽略实际上下文,导致输出不准确
错误的上下文信息给定的上下文包含错误信息时(如“为什么高尔夫球比篮球大?”),模型可能无法识别错误并产生幻觉

📝 通俗解释:大模型最怕的情况就是:

  • 算错数(比如把2023年说成2024年)
  • 记混了(长文章写到后面忘了前面)
  • 抬杠(你给个错误前提,它还顺着你说)
  • 太自信(明明不知道还要编)

总结

大模型幻觉是当前LLM面临的重要挑战之一。理解幻觉的成因、类型、评估方法和缓解策略对于构建更可靠的语言模型至关重要。在实际应用中,需要根据具体场景权衡幻觉的利弊,选择合适的解决方案。

基于 MIT 许可发布