Skip to content

LLM 幻觉问题

内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。

一、什么是大模型幻觉?

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


二、幻觉产生的原因

原因描述
源与目标差异训练数据中源内容和目标内容存在偏差(无意产生或刻意为之)
有意识的源-目标差异某些任务不追求源与目标的严格一致(如多样性输出场景)
训练数据重复数据中大量重复导致模型过度偏好某些高频短语
数据噪声充斥噪声的训练数据是导致幻觉的关键因素之一
解码随机性Top-k 采样、Top-p 方法、温度调节等增加输出多样性的策略可能引入幻觉
参数知识偏向模型更依赖预训练阶段积累的知识,忽略实时提供的上下文信息
训练-推理解码差异训练时基于真实数据预测 next token,推理时基于自己先前生成的内容预测,长文本下差异明显
统计规律本质生成模型本质上只学会了文本中词汇间的统计规律,准确性有限

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

  • 幻觉可能产生传播错误信息或侵犯隐私等严重后果
  • 医疗场景中,患者报告存在幻觉可能导致错误诊断甚至危及生命
  • 幻觉影响模型的可靠性可信度

幻觉一定有害吗?

不一定。在需要创造力或灵感的场合(如电影剧本创作),幻觉可能带来奇思妙想,使生成文本充满想象力。对幻觉的容忍度取决于具体应用场景


四、幻觉的类型

类型定义
内在幻觉(Intrinsic)生成内容与源内容相矛盾
外在幻觉(Extrinsic)生成内容无法从源内容中得到验证,既不受源内容支持也不受其反驳

五、如何度量幻觉?

方法描述
命名实体误差(NE Matching)利用 NE 匹配计算生成文本与参考资料之间的一致性;若生成了不在原始知识源中的 NE 则视为幻觉
蕴含率(Entailment Ratio)被参考文本所蕴含的句子数量与生成输出中总句子数量的比例,使用 NLI 模型评估
基于模型的评估利用专门模型应对复杂的句法和语义变化
基于 QA 的方法对生成文本生成问题-答案对,用参考材料回答并计算答案相似性
基于信息提取的方法使用 IE 模型从生成文本和原始材料中提取关系元组 <主体,关系,对象> 并比较

六、缓解幻觉的策略

6.1 主动检测与减轻

核心发现:

  • 幻觉的生成会传播:一句话出现幻觉,后续生成的文本可能也出现幻觉甚至更严重
  • logit 输出值可以用来获取幻觉信号:当概率得分很低时,模型更容易产生幻觉

方法流程:

  1. 检测阶段:确定潜在幻觉候选者(生成句子的重要概念),利用 logit 输出值计算不确定性,检索相关知识
  2. 减轻阶段:用检索到的知识作为证据修复幻觉句子,将修复句子附加到输入上继续生成

6.2 事实核心采样(Factual Nucleus Sampling)

核心观点:采样的"随机性"用于句子后半部分时对事实性的损害比句子开头更大。由于随着生成进行前文更确定,只有更少的单词选择能使句子成为事实。

算法:生成每个句子的第 t 个 token 时动态调整核心概率 p:

pt = max(ω, p × λ^(t-1))

其中 λ 是 top-p 概率的衰减因子,ω 是概率下限。

6.3 SelfCheckGPT

核心思想:如果模型真的掌握某个事实,那么多次生成的结果应该相似且事实一致;如果模型在胡扯,随机采样多次的结果会发散甚至矛盾。

方法:从模型采样多个 response(通过变化温度参数等),测量不同 response 之间的信息一致性,以确定哪些声明是事实、哪些是幻觉。可以使用:

  • 神经方法计算语义等价(如 BERTScore)
  • 基于 IE/QA 的方法

6.4 其他缓解方向

  • 使用外部知识验证正确性:检索外部知识源对比验证
  • 修改解码策略:优化采样参数减少随机性
  • 采样多个输出检查一致性:多输出结果对比交叉验证

七、LLM 容易产生幻觉的场景

场景描述
数值混淆处理日期、数值等数字相关文本时容易产生幻觉
长文本处理文档摘要或长对话历史中可能生成自相矛盾的内容
逻辑推断障碍误解源文本信息时可能产生不准确结论
上下文与内置知识冲突过度依赖预训练知识而忽略实际上下文
错误上下文信息给定上下文包含错误信息时,模型可能无法识别并产生幻觉