外观
大模型幻觉成因与评估体系
内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。
1. 什么是大模型幻觉问题?
1.1 幻觉定义
当模型生成的文本不遵循原文(Faithfulness)或者不符合事实(Factualness),就可以认为模型出现了幻觉问题。
| 概念 | 定义 |
|---|---|
| Faithfulness | 是否遵循 input content |
| Factualness | 是否符合世界知识 |
1.2 针对不同任务的幻觉定义差异
不同任务的数据源不同,对幻觉的容忍程度也不同:
| 任务类型 | 数据源 | 幻觉关注点 | 容忍度 |
|---|---|---|---|
| 摘要 | document | Faithfulness | 极低 |
| Data-to-text | data table | Faithfulness | 极低 |
| 对话 | 对话历史 | Faithfulness/Factualness | 较低 |
| 开放域对话 | 世界知识 | Factualness | 较高 |
1.3 传统任务 vs LLMs 中的幻觉
| 维度 | 传统任务 | LLMs |
|---|---|---|
| 幻觉类型 | Faithfulness(Intrinsic/Extrinsic) | Factualness |
| 数据源 | 特定任务源(document/data table等) | 任意世界知识 |
| 额外信息 | Extrinsic Hallucination 需外部验证 | 符合事实的额外信息可能有用 |
Intrinsic Hallucination(信息冲突):生成回复时与输入信息产生冲突,例如摘要中 abstract 和 document 信息不一致。
Extrinsic Hallucination(无中生有):输出未体现在输入中的额外信息(如邮箱地址、电话号码),难以验证真假。
2. 为什么会出现大模型幻觉问题?
2.1 数据角度分析
| 问题 | 说明 |
|---|---|
| 训练数据可信度 | 众包/爬虫检索收集的数据包含大量虚假信息,导致模型出现错误认知 |
| 重复数据 | 过多重复信息导致模型知识记忆出现 bias |
| 数据源不一致 | 不同数据源之间存在矛盾 |
2.2 模型角度分析
| 问题 | 说明 |
|---|---|
| 模型结构 | 较弱的 backbone(如 RNN)可能导致严重幻觉,但 LLMs 时代不太存在此问题 |
| 解码算法 | 不确定性较高的采样算法(如 top-p)会诱导更严重的幻觉 |
| 暴露偏差 | 训练和测试阶段不匹配的 exposure bias 问题,特别是生成 long-form response 时 |
| 参数知识 | LMs 在预训练阶段记忆的错误知识将严重导致幻觉 |
提示:diversity 和 Faithfulness 往往是 trade-off 关系,减少 diversity/randomness 可以变相提升 Faithfulness/Factuality。
3. 如何评估大模型幻觉问题?
3.1 Reference-based 指标
基于 Reference 的评价指标基本上只能评价 Faithfulness,而无法评价 Factualness,因此通常不适用于 LLMs。
| 类别 | 方法 | 说明 |
|---|---|---|
| Source + Target Reference | ROUGE、BLEU | 评估输出与 Source/Target 信息的重叠度 |
| Source Information only | Knowledge F1 | NLG 任务中 Target 输出多样,只基于 Source 评估 |
3.2 Reference-Free 指标
3.2.1 基于 IE(信息提取)
- 介绍:将知识限定为三元组形式的关系和事件,基于额外 IE 模型抽取并验证
- 缺点:可能存在 IE 模型错误传播;知识被限定在三元组形式
3.2.2 基于 QA(问答)
流程:
Step 1: 基于LM生成的回复,使用QG模型生成一系列QA pairs
Step 2: 给定Source Information,让QA模型回答上述问题
Step 3: 对比Step1和Step2的answers,计算匹配指标- 缺点:可能存在 IE 模型错误传播;难以评估 Factualness(Source Information 不可能包含全部世界知识)
3.2.3 基于 NLI(自然语言推理)
基于 NLI 模型评估 Source Information 是否可以蕴含 Generated Text。
- 缺点:
- Off-the-shelf NLI 模型核查事实效果不好
- 无法评估需要世界知识的幻觉问题(仅依赖 Source)
- 都是 sentence-level,无法支撑更细粒度检查
- 幻觉和蕴含不等价(例:Putin is president → Putin is U.S. president 可蕴含但是幻觉)
3.2.4 基于 Factualness Classification Metric
标注/构造一批和幻觉/事实有关的数据,训练检测模型评估新生成文本的幻觉问题。
3.2.5 人工评估
目前为止最靠谱的方法,此外还可以依靠 LLM 打分(如 GPT-4),但 GPT-4 也存在幻觉问题。
4. 如何缓解大模型幻觉问题?
4.1 基于数据的工作
4.1.1 构建高质量数据集
| 方法 | 说明 |
|---|---|
| 人工标注 | 训练数据在 LLM 上不可行,只适用于 task-specific;评测数据可构建细粒度幻觉评估 benchmark |
| 自动筛选 | 利用模型筛选可能导致幻觉的数据并剔除;给更 faithful 的数据加权(wiki vs. fake news) |
4.2 模型层面的工作
4.2.1 模型结构
- 设计更能充分编码利用 source information 的方法,如融入人类偏置(GNN 网络)
- 检索增强(Retrieval Augmentation):被证明可显著减少幻觉,如 LLaMA-index
- 可控文本生成:将幻觉程度作为可控属性
- 提前规划骨架再生成:sketch to content
4.2.2 训练方式
| 方法 | 说明 |
|---|---|
| 解码策略优化 | 减少模型生成随机性,提升 Faithfulness/Factuality |
| 强化学习 | 将减轻幻觉的指标作为 RL 的 reward 函数 |
| 多任务学习 | 设计合适的额外任务达到减轻幻觉效果 |
| 后处理 | 设计小模型专门用于 fix 幻觉错误 |
4.3 可能的后续方向
更细粒度的幻觉评估
- token/phrase level 而非 sentence level
- 更精细的幻觉分类体系(Intrinsic/Extrinsic/按原因/主客观/temporal)
知识的定义和诱导
- 怎么知道模型是否具备某一类知识,只是没有调用好
- 知识定义的边界问题(wikipedia vs. 整个互联网)
幻觉消除
- 检索增强:互联网/外挂知识库(LLaMA Index)
- 强化学习(RLHF)
- 知识诱导/注入
- 直接修改 LLM 中错误记忆:Model Editing(ROME、MEMIT 等)
5. 总结
大模型幻觉问题的解决需要从数据、模型和评估三个维度协同推进。关键要点:
- 幻觉分为 Faithfulness 和 Factualness 两个维度,LLMs 时代更关注 Factualness
- 评估方法从 Reference-based 发展到 Reference-Free(IE/QA/NLI/Classification)
- 缓解策略涵盖数据质量、模型结构、训练方式和后处理全链路
- 未来方向聚焦于细粒度评估、知识定义和直接知识修改