幻觉的定义、产生原因和评估方法

释放双眼,带上耳机,听听看~!
本文探讨了幻觉的定义、产生原因和评估方法,包括Faithfulness和Factualness的区别,以及数据层面和模型层面可能导致幻觉的原因。同时介绍了幻觉评估的Reference-based和Reference-Free方法。

1、幻觉的定义

定义:当模型生成的文本不遵循原文(Faithfulness)或者不符合事实(Factualness),我们就可以认为模型出现了幻觉的问题。

什么是Faithfulness and Factualness:

  • Faithfulness:是否遵循input content;
  • Factualness:是否符合世界知识;

针对不同任务,对幻觉的不同层面容忍度可能出现差异

  • 在摘要、data-to-text任务中,非常看重response的Faithfulness,因此这些任务对幻觉的容忍程度很低;
  • 而像开发域对话任务中,只需要response符合事实即可,容忍程度较高

在传统任务里,幻觉大都是指的是Faithfulness:

  • Intrinsic Hallucination(信息冲突) : LMs在生成回复时,与输入信息产生了冲突,例如摘要问题里,abstract和document的信息不一致。
  • Extrinsic Hallucination(无中生有): LMs在生成回复时,输出一些并没有体现在输入中的额外信息,比如邮箱地址、电话号码、住址,并且难以验证其真假。(PS: 按照此定义,Extrinsic Hallucination有可能是真的信息,只是需要外部信息源进行认证)
    而面向LLMs,我们通常考虑的幻觉则是Factualness:
  • 因为我们应用LLM的形式是open-domain Chat,而不是局限于特定任务,所以数据源可以看做任意的世界知识。LLMs如果生成了不在input source里的额外信息,但是符合事实的,这种情况也可能是对我们有帮助的。

2、幻觉产生的原因

数据层面

在数据工程层面可能出现一些问题,导致幻觉问题:

  • 训练数据收集过程中,众包/爬虫检索的数据可能包含虚假信息,从而让模型记忆了错误的知识;
  • 过多的重复信息也可能导致模型的知识记忆出现bias,从而导致幻觉:

模型层面

即使有了高质量训练数据,LLMs仍然可能表现出幻觉现象。

  • 模型结构:如果是较弱的backbone(比如RNN)可能导致比较严重的幻觉问题,但在LLMs时代应该不太可能存在这一问题
  • 解码算法:研究表明,如果使用不确定性较高的采样算法(e.g.,top-p)会诱导LMs出现更严重的幻觉问题。甚至可以故意在解码算法中加入一些随机性,进一步让LMs胡编乱造(可以用该方法生成一些negative samples)
  • 暴露偏差:训练和测试阶段不匹配的exposure bias问题可能导致LLMs出现幻觉,特别是生成long-form response的时候
  • 参数知识: LMs在预训练阶段记忆的错误的知识,将会严重导致幻觉问题

3、幻觉的评估

Reference-based

Reference-based的指标有两类:

  • 基于Source Information和Target Reference:利用一些统计学指标,比如ROUGE、BLEU来评估输出结果和Source/Target信息的重叠度。
  • 基于Source Information:由于NLG任务里,Target输出往往是多种多样的,因此许多工作只基于Source信息进行幻觉的评估。比如Knowledge F1。

基于Reference的评价指标,基本上只能评价Faithfulness,而无法评价Factualness,因此通常不适用于LLMs。

Reference-Free

  • 基于IE:将知识限定于可以用三元组形式表示的关系和事件,基于额外的IE模型进行抽取,接着使用额外模型进行验证。
    • 缺点:
      • 可能存在IE模型的错误传播问题。
      • 知识被限定在三元组形式。
  • 基于QA:第一步先基于LM生成的回复,使用一个QG(question generation)模型生成一系列QA pairs;第二步给定Source Information,让QA模型对上一步生成的Question进行回复;第三步则是通过对比第一步的answers和第二步的answers,计算匹配指标,衡量模型的幻觉问题;
    • 缺点
      • 同样存在QA/QG模型的错误传播问题。
      • 难以评估Factualness,因为上述第二步里面,Source Information不可能包含全部的世界知识,因此对于一些问题难以生成可靠的回复。
  • 基于NLI:基于NLI的方法通过NLI模型评估是否Source Information可以蕴含Generated Text,从而评估是否出现了幻觉现象。
    • 缺点
      • Off-the-shelf NLI模型用于核查事实效果不是很好;
  • 基于Factualness Classification Metric:标注/构造一批和幻觉/事实有关的数据,训练检测模型,利用该模型评估新生成文本的幻觉/事实问题
  • 人工评估: 目前为止最靠谱的,此外还可以依靠LLM打分(比如利用GPT4,但是GPT4也存在着严重的幻觉问题,即使经过retrival-augment,检索回来的信息也有可能是错误的)

4、 幻觉的缓解

基于数据的工作

构建高质量数据集

  1. 人工标注
    1. 训练数据:LLM上不可行,只适用于task-specific的幻觉问题
    2. 评测数据:构建细粒度的幻觉评估benchmark用于分析幻觉的严重程度和原因
  2. 自动筛选
    1. 利用模型筛选出可能导致幻觉的数据并剔除;
    2. 预训练时给更faithful的数据加权(wiki vs. fake news),或者不使用可靠来源的数据(比如只选用经过人工审查的数据源,如wiki或者教科书,预训练)

模型层面的工作

模型结构

  • 模型结构层面的工作往往focus在设计更能充分编码利用source information的方法,比如融入一些人类偏置,如GNN网络。
  • 或者在解码时减少模型的生成随机性,因为diversity和Faithfulness往往是一个trade-off的关系,减少diversity/randomness可以变相提升Faithfulness/Factuality。
  • 检索增强被证明可以显著减少幻觉问题,e.g., llama-index。

训练方式

  • 可控文本生成:将幻觉的程度作为一个可控的属性,利用可控文本生成技术进行控制。
  • 提前规划骨架,再生成:sketch to content
  • 强化学习: 假设是基于word的MLE训练目标,只优化唯一的reference,可能导致暴露偏差问题。现有工作将减轻幻觉的指标作为强化学习的reward函数,从而减轻幻觉现象。
  • 多任务学习: 通过设计合适的额外任务,可以达到减轻幻觉的效果。
  • 后处理:设计一个小模型专门用于fix幻觉错误。

5、 优化幻觉可能的后续方向

  1. 更细粒度的幻觉评估:
    1. token/phrase level instead of sentence level
    2. 更精细的幻觉分类体系:
      1. Intrinsic
      2. Extrinsic
      3. 其他类别:
        1. 按幻觉产生的原因分类(调用知识出错,还是缺少相应知识)
        2. 主观/客观幻觉
        3. 幻觉可能和时间(temporal)有关
  2. 知识的定义和诱导
    1. 怎么知道模型是否具备某一类知识,只是没有调用好?
    2. 知识的定义:
      1. 传统工作大都将wikipedia视作知识库,但它仅仅是世界知识的很小一部分
      2. 如果将整个互联网当做世界知识,又不可避免的会有虚假信息的问题
  3. 幻觉消除:
    1. 检索增强:互联网/外挂知识库(llama Index)
    2. 强化学习(RLHF)
    3. 知识诱导/注入
    4. 直接修改LLM中错误记忆的知识:Model Editing工作,如ROME,MEMIT等

备注:感谢分享知识的前辈,参考知乎文章:zhuanlan.zhihu.com/p/642648601

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

CodeWhisperer:一个全面的代码生成工具

2023-11-24 15:37:14

AI教程

GPT-4技术解析:大语言模型的发展历程与应用创新

2023-11-24 15:45:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索