1. 大模型幻觉
1.1. 什么是大模型幻觉
在语言模型的背景下,幻觉指的是一本正经地胡说八道: 看似流畅自然的表述,实则不符合事实或者是错误的。
1.2. 为什么需要解决 LLM 的幻觉问题
LLMs 的幻觉可能会产生如传播错误信息或侵犯隐私等严重后果。 比如在医疗应用中,对患者生成的报告如果存在幻觉可能导致错误诊断甚至影响生命安全。
幻觉影响了模型的可靠性和可信度,因此需要解决 LLM 的幻觉问题。
1.3. 幻觉一定是有害的吗
幻觉不一定是有害的,特别是在一些需要创造力或灵感的场合,比如写电影剧情,幻觉的存在可能带来一些奇思妙想,使得生成的文本充满想象力。
因此,对幻觉的容忍度取决于具体的应用场景。
1.4. 幻觉有哪些不同类型
幻觉主要可以分为两类:内在幻觉和外在幻觉。
- 内在幻觉:生成的内容与源内容矛盾;
- 外部幻觉:生成的内容不能从源内容中得到验证,既不受源内容支持也不受其反驳。
1.5. 为什么 LLM 会产生幻觉?
有一些研究也在致力于分析幻觉出现的不同原因,已知的一些原因包括:
- 源与目标的差异:当模型的训练数据中的源与目标存在差异时,模型产生的文本可能与原始源内容产生偏差。这种差异可能是数据收集过程中不经意间产生的,也可能是故意为之。
- 无意识的源-目标差异:这种差异的产生有多种原因。例如,数据可能是基于某种经验法则编制的,使得目标信息并不总是完全依赖源信息。举例来说,如果从两家不同的新闻网站获得相同事件的报道作为源与目标,目标报道中可能包含源报道没有的信息,从而导致二者不同。
- 有意识的源-目标差异:某些任务在本质上并不追求源与目标的严格一致,尤其是在需要多样性输出的情境下。
- 训练数据的重复性:训练过程中使用的数据,如果存在大量重复,可能导致模型在生成时过于偏好某些高频短语,这也可能引发“幻觉”。
- 数据噪声的影响:使用充斥噪声的数据进行训练,往往是导致“幻觉”出现的关键因素之一。
- 解码过程中的随机性:某些旨在增加输出多样性的解码策略,如top-k采样、top-p方法以及温度调节,有时会增加“幻觉”的产生。这往往是因为模型在选择输出词汇时引入了随机性,而没有始终选择最可能的词汇。
- 模型的参数知识偏向:有研究表明,模型在处理信息时,可能更依赖其在预训练阶段所积累的知识,而忽略了实时提供的上下文信息,从而偏离了正确的输出路径。
- 训练与实际应用中的解码差异:在常见的训练方法中,我们鼓励模型基于真实数据预测下一个词汇。但在实际应用中,模型则是根据自己先前生成的内容进行预测。这种方法上的差异,尤其在处理长文本时,可能会导致模型的输出出现“幻觉”。
诸如 GPT 之类的生成模型,其实只是学会了文本中词汇间的统计规律,所以它们生成内容的准确性仍然是有限的。
1.6. 如何度量幻觉?
人工评估的成本太高了,有一些自动化评估的指标:
- 命名实体偏差:命名实体(NEs)是“事实”描述的关键组成部分,可以利用 NE 匹配来计算生成文本与参考资料间的一致性。直观上,若模型生成了不在原始知识源中的 NE,那么它可以被视为产生了幻觉。
- 蕴含率:该指标定义为被参考文本所蕴含的句子数量与生成输出中的总句子数量的比例。为了实现这一点,可以采用成熟的蕴含/NLI模型。
- 基于模型的评估:应对复杂的句法和语义变化。
- 利用问答系统:此方法的思路是,如果生成的文本在事实上与参考材料一致,那么对同一个问题,其答案应该与参考材料相似。具体而言,对于给定的生成文本,问题生成模型会创建一组问题-答案对。接下来,问答模型将使用原始的参考文本来回答这些问题,并计算所得答案的相似性。
- 利用信息提取系统:此方法使用信息提取模型将知识简化为关系元组,例如<主体,关系,对象>。这些模型从生成的文本中提取此类元组,并与从原始材料中提取的元组进行比较。
1.7. 如何缓解 LLM 幻觉?
与幻觉有关的数据问题(理论上)可以通过创建高质量无噪声的数据集来解决。 但验证和清洗大规模的文本语料库难度太大。 因此有了一些其他对方法:
- 利用外部知识验证正确性
- 修改解码策略
- 采样多个输出并检查一致性
结论:
- 幻觉的生成会传播:比如一句话出现幻觉,后续生成的文本可能也会出现幻觉甚至更严重。
- logit 输出值(输出词汇表上的概率分布)可以用来获取幻觉的信号:具体地说,我们计算了一个概率得分,并展示了当这个得分很低时,模型更容易产生幻觉。
主动检测和减轻的方法:
- 检测:确定潜在幻觉的候选者,即生成句子的重要概念。然后,利用其 logit 输出值计算模型对它们的不确定性并检索相关知识。
- 减轻:使用检索到的知识作为证据修复幻觉句子。将修复的句子附加到输入(和之前生成的句子)上,并继续生成下一个句子。
《Factuality Enhanced Language Models for Open-Ended Text Generation》
结论:
- 采样的“随机性”在用于生成句子的后半部分时,对事实性的损害比在句子的开头更大。因为在句子的开始没有前文,所以只要它在语法和上下文上是正确的,LM就可以生成任何内容。然而,随着生成的进行,前提变得更为确定,只有更少的单词选择可以使句子成为事实。
结论:
- 如果模型真的掌握某个事实,那么多次生成的结果应该是相似的且事实一致的;相反,如果模型在胡扯,那么随机采样多次的结果会发散甚至矛盾。
1.8. LLM 什么时候最容易产生幻觉?
- 数值混淆:当 LLM 处理与数字有关的文本,如日期或数值时,容易产生幻觉;
- 处理长文本:在需要解读长期依赖关系的任务中,例如文档摘要或长对话历史,模型可能会生成自相矛盾的内容。
- 逻辑推断障碍:若模型误解了源文本中的信息,它有可能产生不准确的结论。因此,模型的逻辑推理能力至关重要。
- 上下文与内置知识冲突:模型在处理信息时,可能会过度依赖于预训练阶段获取的知识,而忽略实际上下文,导致输出不准确。
- 错误的上下文信息:当给定的上下文包含错误信息或基于错误的假设时(如:为什么高尔夫球比篮球大?),模型可能无法识别这些错误,并在其回答中产生幻觉。
2. 幻觉来源与缓解
2.1. 幻觉分类
- 事实性问题
- 事实性错误:模型回答与事实不一致
- 事实性虚构:模型回答在真实世界无法考证
- 忠诚度问题
- 违背指令:模型回答没有遵从指令
- 违背上文:模型回答和上下文内容存在不一致
- 自我矛盾
- 模型回答内部问题存在逻辑矛盾,比如 CoT 多步推理之间存在矛盾
2.2. 幻觉检测
2.2.1. 事实性检测
2.2.2. 忠诚度检测
References: