外观
大模型幻觉问题全面解析
内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。
1. 什么是大模型幻觉?
在语言模型的背景下,幻觉(Hallucination) 指的是一本正经的胡说八道:看似流畅自然的表述,实则不符合事实或者是错误的。
核心特征:模型生成的文本语法流畅、逻辑自洽,但内容与事实不符或无法验证。
2. 为什么 LLM 会产生幻觉?
GPT 之类的生成模型,其实只是学会了文本中词汇间的统计规律,所以它们生成内容的准确性仍然是有限的。已知的原因包括:
| 原因 | 说明 |
|---|---|
| 源与目标的差异 | 模型产生的文本可能与原始源内容产生偏差 |
| 无意识的源-目标差异 | 数据基于经验法则编制,目标信息不总是完全依赖源信息 |
| 有意识的源-目标差异 | 某些任务不追求源与目标严格一致,尤其在需要多样性输出的情境下 |
| 训练数据重复性 | 大量重复数据导致模型过于偏好某些高频短语 |
| 数据噪声影响 | 充斥噪声的数据训练是导致幻觉的关键因素 |
| 解码过程随机性 | top-k 采样、top-p 方法及温度调节增加幻觉产生 |
| 模型参数知识偏向 | 模型更依赖预训练知识而忽略实时上下文信息 |
| 训练与应用解码差异 | 训练时基于真实数据预测,应用时基于自身生成内容预测 |
3. 为什么需要解决 LLM 的幻觉问题?
LLMs 的幻觉可能产生严重后果:
- 传播错误信息:虚假内容可能被大量传播
- 侵犯隐私:可能生成涉及个人隐私的错误信息
- 安全风险:在医疗应用中,对患者生成的报告如果存在幻觉可能导致错误诊断甚至影响生命安全
提示:幻觉影响了模型的可靠性和可信度,因此需要解决 LLM 的幻觉问题。
4. 幻觉一定是有害的吗?
幻觉不一定是有害的,取决于具体的应用场景:
| 场景 | 幻觉的影响 | 容忍度 |
|---|---|---|
| 医疗诊断 | 可能致命 | 极低 |
| 法律咨询 | 可能导致严重后果 | 极低 |
| 写电影剧情 | 可能带来奇思妙想 | 较高 |
| 创意写作 | 使文本充满想象力 | 较高 |
5. 幻觉有哪些不同类型?
幻觉主要分为两类:
| 类型 | 定义 | 说明 |
|---|---|---|
| 内在幻觉(Intrinsic) | 生成的内容与源内容相矛盾 | 信息冲突 |
| 外在幻觉(Extrinsic) | 生成的内容不能从源内容中得到验证 | 既不受源内容支持也不受其反驳 |
6. 如何度量幻觉?
6.1 人工评估
最有效可靠的方式,但成本太高。
6.2 自动化评估指标
| 方法 | 说明 |
|---|---|
| 命名实体误差 | 利用 NE 匹配计算生成文本与参考资料的一致性,若生成了不在知识源中的 NE 则视为幻觉 |
| 蕴含率 | 被参考文本所蕴含的句子数量与生成输出中总句子数量的比例,采用 NLI 模型计算 |
| 基于模型的评估 | 应对复杂的句法和语义变化 |
| 利用问答系统 | 对生成文本生成 QA 对,用参考文本回答,计算答案相似性 |
| 利用信息提取系统 | 将知识简化为关系元组 <主体, 关系, 对象>,与原始材料提取的元组比较 |
7. 如何缓解 LLM 幻觉?
7.1 使用外部知识验证主动检测和减轻幻觉
论文:A Stitch in Time Saves Nine: Detecting and Mitigating Hallucinations of LLMs by Validating Low-Confidence Generation
两个关键发现:
- 幻觉会传播:一句话出现幻觉,后续生成的文本可能也会出现幻觉甚至更严重
- logit 输出值可作为幻觉信号:概率得分很低时,模型更容易产生幻觉
方法流程:
检测阶段:
1. 确定潜在幻觉候选者(生成句子的重要概念)
2. 利用 logit 输出值计算模型的不确定性
3. 检索相关知识
减轻阶段:
1. 使用检索到的知识作为证据修复幻觉句子
2. 将修复的句子附加到输入上
3. 继续生成下一个句子
→ 同时阻止幻觉在后续句子中的传播7.2 事实核心采样
论文:Factuality Enhanced Language Models for Open-Ended Text Generation
核心思想:采样的"随机性"在生成句子的后半部分时对事实性的损害比在句子开头更大。
- 句子开始时没有前文,只要语法和上下文正确,LM 可以生成任何内容
- 随着生成进行,前提变得确定,只有更少的单词选择可以使句子成为事实
算法:在生成每个句子时动态调整"核心" p,第 t 个标记的核心概率为:
pt = max(λ^(t-1) * p0, ω)其中:
λ是 top-p 概率的衰减因子ω是概率的下限衰减
7.3 SelfCheckGPT
核心思想:如果模型真的掌握某个事实,多次生成的结果应该是相似的且事实一致的;如果模型在胡扯,随机采样多次的结果会发散甚至矛盾。
流程:
1. 从模型中采样多个 response(通过变化温度参数)
2. 测量不同 response 之间的信息一致性
3. 确定哪些声明是事实,哪些是幻觉
4. 使用 BERTScore 或 IE/QA-based 方法计算一致性8. LLMs 什么时候最容易产生幻觉?
| 场景 | 说明 |
|---|---|
| 数值混淆 | 处理日期或数值等数字相关文本时容易产生幻觉 |
| 处理长文本 | 文档摘要或长对话历史中可能生成自相矛盾的内容 |
| 逻辑推断障碍 | 误解源文本信息导致不准确结论 |
| 上下文与内置知识冲突 | 过度依赖预训练知识而忽略实际上下文 |
| 错误的上下文信息 | 当上下文包含错误信息或基于错误假设时(如"为什么高尔夫球比篮球大?"),模型可能无法识别并在回答中产生幻觉 |
9. 总结
大模型幻觉是一个多维度的问题,需要从原因分析、度量方法和缓解策略三个层面综合应对。关键要点:
- 幻觉不一定有害,容忍度取决于应用场景
- 检测和减轻应结合外部知识验证、解码策略优化和多采样一致性检查
- 主动检测可以阻止幻觉在后续生成中传播