1 介绍
- “幻觉” (Hallucination),指模型生成自然流畅,语法正确但实际上毫无意义且包含虚假信息即事实错误的文本,以假乱真,就像人产生的幻觉一样。
举个例子就是,即使现在的chatgpt-4,你问他一些有确切答案的问题,他也会“说胡话”
看起来语法语义上没什么问题,但那个赛季上港是21胜5平4负积68分(数据来自懂球帝)
2 幻觉分类
- 内部幻觉 (intrinsic hallucination)
- 生成的文本与给定源文本出现不忠实 (unfaithfulness) 或不一致 (inconsistency) 的现象
- 常见于文本摘要任务中,生成的摘要与原文不一致
- 外部幻觉 (extrinsic hallucination)
- 生成内容在源文本中并未提及,虽然不能找出相关证据,但也不能断言这就是错误的
3 幻觉的成因
- 生成的文本 𝑌 由源文本 𝑋 和语言模型里的先验知识 𝐾 共同决定
- 由于一般认为给定的源文本都是事实正确的 ground-truth,所以出现的幻觉一般都会归结于语言模型本身包含了错误事实。
- 语言模型中的先验知识都来自于训练语料,用于训练语言模型的大数据语料库在收集时难免会包含一些错误的信息
- 这些错误知识都会被学习,存储在模型参数中
- 模型生成文本时会优先考虑自身参数化的知识,所以更倾向生成幻觉内容
- 由于一般认为给定的源文本都是事实正确的 ground-truth,所以出现的幻觉一般都会归结于语言模型本身包含了错误事实。
- 另一方面,模型训练和推理时的差异,也是导致推理时更容易生成幻觉的原因之一
- 训练通常是teacher forcing,以 ground-truth 作为后续预测 token 的前缀输入
- 机器学习笔记:RNN值Teacher Forcing_teach learning rnn-CSDN博客
- 推理则根据历史序列生成来预测下一个 token
- 训练通常是teacher forcing,以 ground-truth 作为后续预测 token 的前缀输入
4 不一致性(inconsistency)的分类
“不一致” (inconsistency)——用来描述这些文本生成的幻觉问题的另一个更常见的术语
- 模型自身不一致 (self-inconsistency)
- 模型生成的回复与对话历史或与自身已生成回复相矛盾(内部幻觉)
- 与对话历史的不一致性问题一般来自于历史信息的遗忘,包含与已生成文本相矛盾
- 这是人设 (persona) 对话中常见的问题
- 赋予系统一个固定角色,在聊天过程中模型的人设信息会发生变化
- 与对话历史的不一致性问题一般来自于历史信息的遗忘,包含与已生成文本相矛盾
- 模型生成的回复与对话历史或与自身已生成回复相矛盾(内部幻觉)
- 外部不一致 (external inconsistency)
- 对话系统为了生成角色一致且信息丰富的回复,会将包含显式角色信息的外部数据引入系统以辅助模型生成
5 幻觉的评估
5.1 统计的方法
- 直接计算生成文本和参考目标文本之间的词汇匹配度
- ROUGE
- BLEU
- 精确率&召回率。。。
5.1.1 缺点
- 大模型的回复往往不唯一,输入与输出是一对多的映射
- 在实际应用中,覆盖所有可能的输出几乎不可能
5.2 基于模型方法的评估
- 主要基于自然语言推理 (Natural Language Inference, NLI)
- 即判断一项假设(生成文本)是否蕴含于前提(参考文本)
- 基于 NLI 的指标将幻觉分数定义为源文本与生成文本之间的蕴含概率
- 需要先收集相关蕴含关系的数据集来训练这样一个判别模型
5.2.1 缺点
基于模型的评估方法整体上比词级别的统计方法要适用得多,然而文本蕴含模型只能返回一个分数,无法定位具体生成文本的哪些部分是错误的