【必须知道】LLM大模型幻觉(hallucination)的成因和处理测试

 一、什么是大模型幻觉

      大模型的幻觉,即是指大模型的生成结果中包含了无根据的或错误的内容,生成结果中不可避免的存在着事实编造,这类问题被称为幻觉问题。模型能力越强大,生成结果的语言越流畅,与用户的交互越自然,用户就越不容易分辨出结果的真伪,幻觉问题的潜在危害性就越大。

     幻觉一词来自英文文献中的 "hallucination" 的翻译,根据 Merriam Webster 词典的解释,幻觉是无根据的或错误的表达或看法(an unfounded or mistaken impression or notion)。

大模型的幻觉一般分为2种类型:

1)Intrinsic(固有的):

    即生成结果与信息源(source)或上下文不一致。例如,生成的摘要或翻译结果与原文矛盾。 这种可以称为"自相矛盾"的幻觉。

2) Extrinsic(外在的):

    即生成结果超出了信息源(source)或上下文的范围,并且难以验证真假。例如,摘要结果中出现了原文没有提及的陈述。这种可以称为"无中生有"的幻觉。

      对于客观世界来说,extrinsic hallucination 的内容可能是虚假的,也可能是与客观世界一致的真实情况。另外,与信息源一致(即没有Intrinsic hallucination)也并不代表生成结果就是客观事实的陈述,例如翻译或摘要任务的原文陈述的不是客观事实,在翻译或摘要时需要与原文一致,生成结果自然也无法与客观事实一致。

二、大模型幻觉产生原因

大模型的幻觉产生原因归纳为数据方面和模型2个方面

 1)数据方面

数据方面,source 与 target 数据分布不一致是导致幻觉的最主要原因。由于数据构造方法或数据天然性质的因素,target 中存在的信息在 source 中并未出现。在这种数据上训练模型容易导致模型的幻觉问题。

深度学习兴起后,模型对数据的量级要求越来越高。人工标注大规模训练样本不仅人力成本高昂,而且需要耗费很长的标注时间。通过启发式方法半自动构建大规模训练样本成为一种主流解决方案。例如,构造摘要任务的训练样本,论文数据天然带有 abstract 可以直接作为样例,通用领域的文本一般采用将正文作为 source,标题作为 target 构造出更多的通用领域样例。

通过启发式方法 自动构造的样例存在着 source 与 target 信息不一致的隐患。例如,WIKIBIO 数据集是通过 Wikipedia 数据构造。具体为,从 Wikipedia    biographies抓取信息,将 Wikipedia infobox 作为 source,将 Wikipedia 正文的第一句话作为 target,构造得到 728k 的样本。 有研究者 [2] 发现,62%样例的 target 信息并不能完全被 source 包含。在这种数据集上训练模型,实质会鼓励模型生成 source中未包含的信息,即造成 extrinsic hallucination。

另外,一些任务的数据集天然存在一定比例的 source 与 target 信息不一致。例如,问答系统在开放场景的闲聊,回复内容也不一定全部在上下文历史中出现过。

此外,当训练数据中存在重复时,容易让大模型偏好生成重复的片段 。

另外,如果数据清洗工作没有做好,训练数据中大量存在包括各种事实性错误等噪声,模型也容易从数据中学习到错误的知识。

2) 模型方面

模型方面的导致幻觉的一个主要因素是训练和推理的  exposure bias 问题 。

在训练序列生成模型时常用的一个训练技巧称为 Teacher Forcing,即在预测 time-step t 时输入的是 t-1 的 ground-truth 结果 y t-1 ,这一技巧避免模型训练时积累前一步的误差,加快模型收敛速度。付出的代价就是模型在推理时每一步预测并不能得到前一步的  ground-truth 的结果作为输入,即模型在训练与预测时的数据分布存在差异从而导致幻觉。

模型方面的另一个因素是表征学习存在缺陷。当模型对输入文本的表征能力不够,缺乏篇章级的理解和推理能力,则所生成的表征未能充分表达输入文本的信息,则模型在处理依赖于篇章级信息的任务时容易出现幻觉,即不能忠实于输入原文,造成 intrinsic hallucination。

除此以外,生成模型的 DECODER 也是导致幻觉的一个因素。decoder 对输入文本表征的关注重点错了,容易导致模型生成错误。decoder 采用的一些解码策略也会导致幻觉,例如当采用 top-p sampling 这类策略鼓励模型生成结果的多样性时,不可避免地增加幻觉的发生概率。

大模型通过训练会将学习到的知识以模型参数形式进行记忆或存储,这称之为 parametric knowledge 。当模型在处理下游任务时偏重 parametric knowledge 而不是当前输入的上下文时,容易导致幻觉问题,这种情况被称为 parametric knowledge bias 。

三、减少大模型幻觉的方案

常用解决方案可以分为数据层面、模型层面、后处理方法。

.1)数据层面

针对大模型幻觉的产生原因,在数据层面的相应解决方案就是通过数据清洗优化训练数据,避免因数据中的噪音或数据bias导致模型的幻觉问题。

如前所述,数据层面可能的一个主要问题是因启发式构造策略或数据自身的特点导致targe信息并未在source中出现。针对这一问题,一种思路是通过人工标注方式获得质量更高的数据集,另一种是通过启发式规则或者训练判别模型对现有的数据集进行质量判断,过滤掉可能存在问题的样本。

数据层面的其他问题,如数据重复、事实错误等问题,也依赖于通过人工或模型的手段去识别并过滤噪声。

2) 模型层面

模型层面的解决方案,可以归纳为如下类型:

1)增加反馈

大模型在预训练阶段的目标是语言模型的目标,即根据上文预测下一个token的概率。模型本质上习得的是语言能力,附带学习到训练文本中出现的知识。这与人类的学习过程有着本质区别。

针对这一情况,一种自然合理的想法就是,通过给模型增加幻觉方面的反馈让模型学习到这一维度的信息。InstructGPT [8] 采用的 RLHF 就是在强化学习框架下引入包括幻觉在内的反馈信息。这种方法能够有效降低幻觉产生的比例,但是从ChatGPT这类模型的实际使用体验看,仍然难以避免一定比例的幻觉。

2)增加知识

在模型预测时给模型输入更多的正确知识,也可以有效帮助模型降低幻觉。

新增的知识有不同来源,一种来自source本身,例如从原文中提取出的实体、关系、事件、关键词、句法语义信息等信息,另一种来自source外部,例如外部知识库查询的相关知识或者从搜索引擎获取的相关信息。后一种方法也被称为检索增强的方法 (retrieval-augmented generation, RAG) [9]。

增加知识的过程中一般会涉及模型结构的变动,这部分后续介绍。

3)增加约束

增加约束是在翻译任务上的常见方法。其基本思想是,对标准的 beam-search 进行修改,要求模型输出结果包含指定词语[10]。当要求结果忠实于原文时,通过这种方式可以让模型输出的关键信息如实体名称、事实等可控。

可以参考 Guiding Text Generation with Constrained Beam Search in Transformers

针对大模型,另一种增加约束的方法是通过在 prompt 中详细描述对输出结果的约束条件,让生成结果更符合预期。

4)优化表征学习

上下文的表征效果直接影响着模型最终的生成结果。因此,通过优化表征学习可以让上下文的表征更为精准,从而减少生成结果幻觉的比例。

多任务学习是一种常见选择。通过将多个相关任务一起训练并共享底层表征,可以降低模型过拟合过拟合,提升泛化效果以及模型的表征能力。

对比学习是另一种选择。通过对比学习可以让模型对幻觉情况有更充分的区分能力。

5)优化结构与注意力

前面提到增加外部知识,包括检索知识库或者搜索引擎可以降低大模型的幻觉。增加知识意味着大模型需要支持更长的上下文输入,详细内容可以参考大模型长文本建模的技术分析。

在 Encoder-Decodr 模型上的改进,包括 dual encoder,即保持原有的 encoder 处理序列文本,新增加 structured graph encoder 处理新增知识。相较于仅使用序列文本的encoder,该方法可以获得更好的输入表征。

3)后处理

  后处理方法是在大模型生成结果的基础上进一步验证和修改。

一种方法是构造包含一定比例幻觉的训练数据(主要针对实体、数字、时间等常见错误类型构造),训练模型根据原文和有错误的生成结果还原出正确结果。例如,对实体、数字、日期、代词这4类容易出现事实性错误的类型进行随机替换,对摘要和原文中的的实体、数字、日期进行互换,限制在相同语义类型之间,对代词的互换限制在相同句法格的代词之间, 构造了摘要纠错的训练数据,并训练了基于BART的摘要纠错模型。 针对摘要的 extrinsic hallucinations 问题,采用生成多个候选结果并选择最优结果的方式的方案。具体为,将原文和正确的摘要作为正样本,利用NER工具识别原文和摘要中的实体,并将摘要中的实体替换为原文中的其他实体,通过该方法得到负样本。这种做法的好处是不影响样本的流畅性。在上述方法构造的数据上训练分类器区分正负样本(基于BART的分类器),目标函数上将 分类的 cross entrophy 和正负样例的排序 margin 相加。SpanFact 方法,包含问答和自回归2个模型进行事实性核查,并在实体类型上进行了验证。对于问答模型,每次 mask 一个摘要中实体作为query,与原文拼接后输入模型,预期模型输出被mask的正确结果;对于自回归模型,则输入时可以同时mask 多个实体。

四、如何测试大模型幻觉

衡量大模型幻觉可以分为自动评价和人工评价两大类。

1)自动评价

生成任务上有一些传统的统计评价指标,其主要思想是基于与 ground truth 的字符匹配,在幻觉检测上不能够有效发挥作用。另外,这种方法依赖于 ground truth ,不可避免地需要引入部分或大量人工标注的工作量。

近年来流行的做法是利用模型对生成结果进行评价,包括 NLI-based、QA-based、Fact-based,以及模型直接打分。

2) 人工评价

人工评价虽然成本较高,但是相比于自动评价更能够发现生成结果中的问题。

人工评价除了时间成本和人力成本,由于大模型生成结果的流畅性越来越高,达到以假乱真的程度,人工评价对标注人员的要求会越来越高,在一些垂直领域更是需要具备教高级的水平才能够迅速看出结果中的幻觉问题。

五、写在最后

大模型幻觉更深的层面

从更本质的层次去思考,大模型的幻觉原因可以归纳为:

其一,大模型习得的是浅层文本知识,缺乏足够的 common sense;

其二,现有大模型本质上仍然是基于概率统计的方法。

4. 大模型幻觉的正面意义

大模型的幻觉并非一无是处。

如果把幻觉当做大模型的一种特征来看待,则大模型的幻觉能力实际上也有正面意义。

首先,大模型出现的幻觉代表了大模型的创造力,这种创造力在一些场景下具有积极意义,例如让大模型创作玄幻小说。

第二,大模型的幻觉也意味着产出多样性结果的能力,在例如头脑风暴得到更多可能方案的情况下也具有积极意义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值