大模型幻觉综述

less than 1 minute read

Published:

幻觉类型

幻觉指LLM生成的内容没有意义,或者与提供的数据内容不一致的现象。本文将幻觉分为事实幻觉和信念幻觉两类。

事实幻觉指大模型生成的内容要么与真实世界的事实不一致或潜在地存在误导情况,导致对于大模型可信任度的挑战。根据内容是否有事实可验证,可以将事实幻觉分为事实不一致和事实捏造两种。事实不一致指生成的内容有真实世界的事实可以验证,但是与事实冲突,而事实捏造指生成的内容无法用真实世界的知识进行验证,纯扯淡的情况。

信念幻觉指大模型的生成内容与人类意图不一致的情况,可以分为指令不一致,上下文不一致和逻辑不一致。指令不一致指生成的内容与用户提供的无害指令不一致,存在于用户指令的无意识的不对齐情况。上下文不一致指生成的内容与用户提供的上下文信息不一致,与事实不一致类似。逻辑不一致指生成的内容存在逻辑错误的情况。

幻觉原因

根据大模型的训练和使用流程,可以将幻觉原因划分到数据,训练和推理三个环节。(但我感觉这个划分方法不是很好,本质来说不清楚幻觉的原因,否则应该是纵向划分,数据的问题导致了训练的问题,或者训练和推理的问题导致了数据的使用问题这样)

数据导致的幻觉

数据导致的幻觉可以分为数据本身的问题和数据使用的问题。数据本身的问题包括数据本身存在的各种瑕疵,比如错误信息,社会偏见,知识边界等。但本质来说就是指因为使用了本身就存在问题的数据,所以导致预训练后的模型记住了这些有问题的知识,最后在输出的时候就会偏向于生成错误的回答。如果数据本身存在错误信息和社会偏见,那就容易生成事实或者指令/上下文不一致的结果(模仿错误,重复偏差,社会偏见),如果数据本身存在领域和时间的边界限制,那生成的结果就容易出现事实捏造或者信念幻觉等问题。

因果关系是瞎猜的,但其实数据本身的问题就三类:缺失,错误,重复

数据使用的问题感觉和数据关系不大,应该是模型的问题。数据使用问题包括知识捷径和知识召回失败,知识捷径指LLM倾向于记住位置较近的,共现较多的知识,即时这些知识可能存在事实错误。知识召回失败指LLM难以召回长尾知识和难以处理需要多跳推理以及逻辑推断的复杂场景。(这个我感觉更多是模型机制的问题,NLP对于节点表征的基础假设就是单词的含义可以由其周围的词来表示,那在生成表征的时候就已经天然注定了会更偏向于在这个词周围出现频繁的其他词)

训练导致的幻觉

训练导致的幻觉主要出现在预训练和对齐步骤上,预训练步骤没有标签,数据量庞大,通过自监督完成学习,对齐步骤有标签,数据量相对较小,往往利用强化学习等方式完成训练。因此两者导致幻觉的问题点也有所不同。

预训练导致的幻觉主要出现在模型结构以及训练策略的问题上。目前LLM基本都是基于transformers的解码器部分堆叠得到的,在进行预测的时候遵循从左至右的逐token预测方式,这种方法只利用了一个方向的上下文信息,无法捕捉更加复杂的上下文依赖关系。同时研究发现软注意力机制在序列长度增加时会出现位置间注意力稀释的问题。模型结构的缺陷会导致预训练时对于知识的捕捉出现问题,间接导致在预测时出现幻觉。在预训练期间LLM主要使用最大似然估计的策略进行训练,正确的回答会作为输入进入模型,但在预测时模型需要完全依靠自己生成的token进行预测。这种训练和预测机制的不统一会导致预测时优于一个token的预测错误出现后续偏离越来越大的现象(滚雪球现象),由此引发幻觉。

感觉预训练导致的幻觉就是模型结构与海量数据之间存在的冲突,注意不了那么多的数据,模型也记不住那么久远的知识,或者也有可能是数据本身的分布就是不一样的,随着训练分布偏移了?

对齐导致的幻觉主要出现在对齐的能力和意图上,监督微调和对齐存在大模型本身能力和指令数据中描述的能力之间的差异(按对齐的综述来说这在于对于人类意图的描述不够准确全面,训练过程向模型的传递也不够准确)。部分研究发现LLM的动作包含了一种对于其生成的内容的内在信念,通过RLHF训练出来的模型会出现迎合用户观点的倾向(奉承),这种倾向可能导致模型主动忽略准确性而生成幻觉内容。研究发现这种同态倾向很可能是由于人类和偏好模型表现出对奉承回答(而不是真实回答)的偏爱而导致的。

推理导致的幻觉

推理部分输入问题由LLM生成回答,堆叠的transformers结构输出计算的hidden state即下个token的embedding,然后最后的head利用softmax将hidden state转换成每个词的概率,然后某些推理方法会根据概率选择下个token的词。推理部分导致的幻觉主要在三个环节,模型中由于注意力机制导致的表征解码的不完备,softmax瓶颈导致的概率分布表达能力受限,以及随机采样导致的随机误差。

表征解码的不完美指LLM的注意力机制会导致局部关注,给邻近的单词过高的优先级,导致上下文注意力的显著不足。这种不充分的注意力可以直接导致信念幻觉,让模型输出偏离原始上下文的内容。softmax瓶颈指在分布式词嵌入的基础上使用softmax会约束输出概率分布的表达能力,导致LLM无法输出期望的概率分布。同时研究发现当输出词嵌入空间中的期望分布呈现多种模式时,LLM难以准确地为所有模式中的单词进行优先级排序。随机采样导致的随机误差指根据似然陷阱(高似然序列通常会导致令人惊讶的低质量文本)将随机性纳入解码策略导致的幻觉风险与随机性呈正相关的问题。采样温度的升高会导致更均匀的令牌概率分布,从而增加从分布尾部以较低频率采样令牌的可能性,由此加剧幻觉出现的风险。

感觉这完全缺少对于transformers的认识啊,或者就是训练的数据量太大了,同义性和多义性会导致对应的输出不止一类,正确答案不止一种,可能不是似然陷阱而是似然的不是想要的那类的似然,然后由于前面模型机制那里说的长文本中对于提示的忽略导致走向了另一个似然的道路。在这个视角下随机性就是强行跳出这个似然,然后去撞那个正确的似然。

幻觉检测方法

幻觉的检测方法与幻觉类型相关,事实幻觉有事实幻觉的检测方法,信念幻觉有信念幻觉的检测方法。

事实幻觉检测方法

事实幻觉的特点是一般有真实世界事实进行验证(也有扯淡的),因此检测方法也分两种思路,一种通过扩大数据来源,检索外部事实来对幻觉进行验证;一种估计生成结果的不确定性,判断模型是不是在扯淡。文中没有对对应的具体事实幻觉类型进行描述,但个人感觉是跟事实不一致和事实捏造两种类型对应的。

检索外部事实将模型生成的内容与可靠的知识源进行比较。这种方法的流程与事实检测任务很像。但更新的方法将真实场景的优先级提得很高。已经有一套自动化的流程提出,包括宣称分解、原始文档检索、细粒度检索、聚焦宣称的摘要和准确性分类。后续工作在数据源选择和查询方式上进行了改进。通过在检索过程中结合原始问题和LLM生成的答案来解决主题漂移问题,确保检索的段落与问题和LLM的响应保持一致。通过对数据源的选择进行优先级划分解决检索冲突。通过将文本分解为原子事实逐个验证的方式解决长文本验证的问题。

不确定性估计遵循零来源设定,避免进行检索,基本假定是幻觉的来源与模型的不确定性捆绑。方法可以分为基于内部状态的和基于LLM行为的。基于内部状态的方法通过对LLM内部状态(token概率,熵)的分析来估计模型的不确定性,包括考虑概念中的最小token概率来确定模型对关键概念的不确定性,利用LLM重构原始概念的能力评估不确定性,通过限制熵的方式来防御幻觉攻击等。基于LLM行为的方法不接触模型的内部状态,仅通过对模型API的查询来获取信息进行验证,比如通过验证对于事实陈述的一致性。也有工作通过查询开放问题来评估多个模型之间的一致性,以及使用额外的LLM来进行评估,通过多轮交互来发现陈述的不一致性。

信念幻觉检测方法

信念幻觉检测主要关注于确保生成内容与给定上下文的对齐,避开无关或矛盾输出的潜在陷阱。可以分为基于事实的标准,基于分类器的标准,不确定性评估和基于prompting的标准。

基于事实的标准度量生成的内容和源内容的重叠程度,方法可以分为基于实体的,基于关系的和基于知识的。基于N-gram的方法就是直接检测词的重叠度,基于实体的方法普遍用于摘要任务,计算摘要中的命名实体与源实体的精确程度。基于关系的方法使用训练的端到端事实提取算法计算关系三元组的重叠程度。基于知识的方法度量生成内容与提供的知识的对齐程度。

基于分类器的标准利用既包含任务特定的幻觉内容又包含忠实内容,以及来自相关任务的数据或综合生成的数据训练的分类器。其中基于蕴含式的方法基于这样一个思想:真正忠实的内容应该内在地由其源文本的内容所蕴含。然后提出方法训练分类器来识别事实不一致,包括在对抗数据集上微调,在依赖弧级别对蕴涵决策进行分解,将文档切分为句子单元然后聚合句子对之间的得分。弱监督方法解决蕴含式方法存在的相关任务与下游任务之间的内在差距问题,以及标注数据的稀缺性问题。设计方法来生成弱监督的数据集来微调分类器。

基于问答的标准首先从LLM输出的信息单元中选择目标答案,然后通过问题生成模块生成问题。这些问题随后被用于根据用户情境生成源答案。最后,通过比较源答案和目标答案之间的匹配分数来计算LLM答案的忠实度。

不确定性估计跟上面的很像,根据估计方法的不同可以分为基于熵的,基于对数概率的和基于模型的。基于熵的方法发现数据到文本生成中的幻觉可能性与预测不确定性之间存在正相关关系,于是使用熵来度量预测不确定性,从而反应幻觉可能性。基于对数概率的方法使用长度归一化的序列对数概率来度量模型可信度。基于模型的方法使用模型来预测幻觉可能性,通过目标提取、信息收集、步骤再生和结果比较的精简过程来聚合置信度分数,从而提高问答准确率。

基于prompting的标准利用LLM的指令遵循能力来自动检测幻觉。通过为LLMs提供具体的评估准则,并将模型生成的内容和源内容同时反馈给它们,它们可以有效地评估忠实度。评估prompt可以是直接prompt,思维链prompt,使用文本内学习生成或使用模型生成。

幻觉缓解方法

幻觉缓解方法与幻觉的产生原因相关联,也可以从数据原因,训练原因和推理原因三个角度进行分类总结。另一篇文章说明可利用知识仅有预训练保留和训练数据时,幻觉问题无法完全消除,可能因此一般只提缓解。

数据相关幻觉缓解方法

数据相关的问题主要是数据本身的问题和数据使用的问题,缓解方法可以分为针对误信息和偏见的针对知识边界的针对知识捷径的三类,分别处理数据的社会偏见,知识缺失以及数据使用导致的知识捷径问题。

针对误信息和偏见的幻觉缓解方法

针对误信息和偏见的幻觉缓解方法主要包括事实性数据增强和数据的去偏见化两类,主要目的还是通过数据的预清洗步骤提升数据质量,间接缓解幻觉问题。事实性数据增强主要通过人工修整和在预训练阶段上采样事实数据完成。对重复数据的去偏见化主要分为近似重复和精确重复,精确重复主要通过字符串匹配来进行检测和消除,包括使用构建的后缀向量来在线性时间完成多个子串的查询,近似重复的识别通常涉及近似全文匹配,通常使用基于哈希的技术来识别具有显著ngram重叠的文档对。对于社会性偏见的去偏见化主要集中在仔细挑选训练语料上。

针对知识边界的幻觉缓解方法

针对知识边界的幻觉缓解方法主要包括两类:知识编辑方法主要关注于直接修改模型参数来弥合知识边界,检索增强生成(RAG)使用非参数化的知识源来缓解幻觉。

知识编辑方法可以修补事实错误以及更新过时信息,编辑方式可以分为对于模型参数的直接修改以及使用额外的模型插件。直接修改方法可以分为定位修改法和元学习法。定位修改法首先定位模型参数中的” bug “部分,然后对其进行更新以改变模型的行为。这些方法缺乏非平凡的泛化能力,并且对不同的模型结构具有不同的性能和适用性。元学习法训练一个外部超网络来预测原始模型的权重更新。在LLMs时代需要额外的训练和记忆成本,需要专门的设计来减少超网络的规模。直接修改方法对参数的修改可能会对模型的固有知识产生潜在的有害影响。模型插件方法在原模型中增加一个模型插件,实现模型行为的期望变化。(论文中方法很多)这些方法需要额外的步骤来训练参数模块,精心设计训练函数和结构,以促进插件在更新知识中发挥作用,同时保留原始模块处理的未编辑事实。

知识编辑方法的效果依然可以加强,评估工作(MQUAKE)发现编辑后的模型可以成功地回忆被编辑的事实,但在复杂的多跳问题中失败。目前的编辑方法的跨语言泛化能力有限,以及知识编辑技术在试图减轻LLM的幻觉时给用户引入了潜在的风险,并建议使用结合显性知识的方法。

检索增强方法根据外部知识源检索到的相关文献对LLMs生成过程进行调整。通常,RAG遵循先检索后阅读的流程,首先由检索器从外部来源检索相关的上下文文档,然后生成器根据输入文本和检索到的文档来生成所需的输出。根据检索方式可以将检索增强生成方法分为一次检索,迭代检索和事后检索。

  • 一次检索直接将从单次检索中获得的外部知识提交给LLMs的提示。已有工作(In-Context RALM等)的外部知识源往往是wikipedia,结合排名方法往往可以提升效果。近期有工作(PKG)开始考虑利用知识图谱让llm与最新知识的交互,并引发稳健的推理路径。PKG采用可训练的背景知识模块,将其与任务知识对齐并生成相关的上下文信息。PKG的有效性凸显了通过融入检索到的背景知识来增强LLMs忠实性的潜力。
  • 迭代检索处理一次检索无法解决的多步推理和长形式问答(long-form QA)问题,这些问题往往因为涉及环节较多,无法通过单次查询直接获得全部所需知识。迭代检索通过在生成过程中持续检索外部数据来解决这些问题。主要思路是将复杂问题分解为若干个可以处理的子问题,思维链prompt的推动给LLMs带来了实质性的进步,许多工作开始考虑在每个推理步骤中融入外部知识,并进一步根据正在进行的推理指导检索过程,减少推理链中的事实错误。自我提问(self-ask)在每个步骤中描述了它想要解决的问题,随后包含了基于后续问题的搜索动作。思维链基础上还提出了迭代检索-生成协同框架,其中模型的响应作为一个有洞察力的上下文来获取更多相关的知识,然后在接下来的迭代中精炼响应。在长形式问答中已有工作包括一种主动检索增广生成框架,该框架迭代地将即将到来的预测作为查询来检索相关文档。以及MisAlign,使用基于模型的指导和向用户寻求澄清来迭代地细化用户问题,最终增强问题和知识之间的一致性。
  • 事后检索与前两种的先检索后阅读的方式不同,主要通过后续的基于检索的修正来精化LLM输出。研究-修改(research-then-revise)工作流首先研究相关证据,然后根据检测到的与证据的差异修改初始生成。验证编辑框架(Verify-and-edit)对于表现出低于平均一致性的推理链生成验证性问题,然后根据检索到的知识对推理规则进行精化。多回答生成方法对各种潜在答案进行采样,从而获得更全面的检索反馈,通过使用考虑检索前后答案可能性的集成技术减轻误导检索反馈的风险。

针对知识捷径的幻觉缓解方法

知识捷径表现为当LLMs依赖于虚假的相关性,例如预训练语料的共现统计,以捕获事实性知识。已有工作建议在通过排除有偏样本构建的去偏数据集上进行微调。虽然由于排除了更多的样本可以使对频繁事实的回忆显著下降,但当稀有事实在微调过程中不可见时,这种方法难以泛化。

针对知识召回失败的幻觉缓解方法

LLM中幻觉的一个普遍来源是无法准确检索和应用其参数化知识中蕴含的相关信息。通过增强知识回忆,我们可以更好地将模型的输出锚定到可验证的知识上,从而为产生幻觉内容提供更鲁棒的防御。最直接的方式是通过思维链提示的方式让LLM进行推理,简单地应用CoT可以增加知识回忆,这在多跳环境下大大提高了事实编辑的性能。已有工作认为直接给问题添加相关信息可以增强模型对关键知识的回忆能力,而不是融入推理步骤。以及概念化的方法,将原始的常识性知识提取到高层次的抽象知识中,促进了知识的回忆。

训练相关幻觉缓解方法

训练相关的幻觉与模型结构和训练策略的本身限制有关,试图在训练过程中缓解幻觉的方法可以根据环节分为训练环节和对齐环节方法。

预训练相关幻觉缓解方法

缓解有问题的模型结构的方法主要关注模型结构中单方向表征和注意力故障问题。

  • 单方向表征缓解包括使用双向自回归方法(BATGPT)来根据所有见过的token来预测下个token,同时考虑过去和未来的上下文语义。以及使用编码解码模型的上下文窗口进行缓解。
  • 注意力故障缓解包括使用注意力锐化正则化器,使用可微的损失项对自注意力架构进行稀疏化。

环节次优的预训练目标的方法细化预训练策略,保证更丰富的语境理解,规避传统的目标导致的碎片化表示和模型输出的不一致性。

  • 训练目标优化针对LLMs训练中固有的局限性,即文档级别的非结构化事实性知识经常由于GPU内存限制和计算效率而被分块,从而导致碎片化的信息和不正确的实体关联。已有工作包括事实加强的训练方法,将事实文本转化为独立的事实,显著减少事实错误,增强模型对事实关联的理解;以及In-Context预训练,LLMs在相关文档的序列上进行训练。通过改变文档顺序最大化上下文窗口内的相似度。
  • 曝光偏差(Exposure Bias)导致的幻觉与累积误差有关,已有工作包括在置换多任务学习框架中引入中间序列作为监督信号,以减轻域迁移场景中的虚假相关性。

误对齐幻觉缓解方法

对齐过程中引发的幻觉通常由于能力的误对齐和信念的误对齐导致,定义LLMs的知识边界具有挑战性,难以弥合LLMs的内在能力与人类标注数据中呈现的知识之间的鸿沟。虽然有限的研究涉及能力误对齐,但重点主要转向信念误对齐。

信念误对齐导致的幻觉往往显示出阿谀奉承的倾向,可能是由于人类的偏好判断往往更倾向于合取反应,而非更真实的反应,从而导致了奖励入侵。一种简单的化解方法是改善人类的偏好判断和偏好模型,比如使用LLM来帮助人类识别忽视的标记错误,以及结合多个人类偏好来强化反馈质量,减少奉承现象。

此外通过微调或者推理时的激活控制来修改LLM的内部动作也可以改变模型行为。已有工作包括使用专门的奉承数据进行微调来减少奉承倾向,以及使用使用奉承/非奉承提示对来生成奉承转向向量,该向量来源于平均中间激活的差异。在激活时减去转向向量可以减少奉承输出。

推理相关幻觉缓解方法

不完美的解码往往会导致输出缺乏事实性或偏离原文语境。相关工作可以分为两种,旨在改进解码策略,以提高LLMs输出的真实性忠实性

真实性加强的解码策略

真实性增强型译码(真实性Enhanced Decoding)侧重于保证LLMs产生信息的真实性。通过强调事实的准确性,该策略旨在生成严格遵守真实世界信息的输出,并抵制产生误导性或虚假陈述。

单独的解码策略包括事实-核心采样算法,在整个句子生成过程中动态调整”核心”p。以及激活空间相关的方法,比如推理时间干预方法,首先在与事实正确的语句相关的激活空间中确定一个方向,然后在推理过程中沿着与真值相关的方向调整激活。事实知识存储方法发现较低层次的信息在较早的层次中捕获,语义信息在较后的层次中捕获。DoLa策略动态地选择和对比来自不同层的logits,以改进解码的真实性。

编辑后解码策略旨在利用LLMs的自我改正能力,在不依赖外部知识库的情况下,对原本生成的内容进行精炼。验证链(Chain-of-Vertfication,COVE)方法假设在适当的提示下,LLMs可以自我修正错误并提供更准确的事实。方法首先制定验证问题,然后系统地回答这些问题,以便最终产生改进的修订答案。迭代自思考过程(iterative self-reflection process)利用LLM固有的能力,首先生成事实性知识,然后提炼响应,直到与提供的背景知识保持一致。

忠实性加强的解码策略

忠实性增强解码优先考虑与用户指令或提供的上下文进行对齐,并强调增强生成内容的一致性。现有的工作总结为两类,包括上下文一致性和逻辑一致性。

上下文一致性解码策略旨在增强LLMs对用户指令和提供的上下文的忠实度。信心解码方法在解码阶段结合一个信心分数来度量模型对于数据源的注意程度,通过在信心分数较高时更多地强调来源来减轻由于缺乏背景注意力而导致的幻觉。将解码目标转换为逐点互信息的方法可以鼓励模型优先考虑与源文档相关的令牌,特别是当模型不确定性上升时,以防止产生幻觉。自动忠实性度量方法为beam search生成的候选回答进行评级,并结合了为未来代分配忠实度分数的前瞻启发式方法,在忠实度方面取得了显著的改进。

为处理LLM中由于对上下文的注意力不足导致的幻觉问题,CAD(context-aware decoding)方法通过减少对先验知识的依赖来修改输出分布,从而促进模型对上下文信息的关注。针对过度关注上下文信息导致的多样性受损问题,一种采样方法通过两个平行解码方式来再保存多样性的前提下提升关注度。知识受限解码(KCD)采用token级别的幻觉检测来识别幻觉,并通过重称token分布来指导生成过程,以更好地估计未来的知识背景。考虑到softmax瓶颈限制了多样性和忠实表示的表达。一系列的工作探索了克服瓶颈的方法,或者通过混合Softmax,使用多个隐藏状态多次计算Softmax并合并产生的分布,或使用指针网络来让LLM复制上下文单词从而减少幻觉。

逻辑一致性方法包括采用了知识蒸馏框架,首先使用对比解码生成一致的理据,然后使用反事实推理目标对学生模型进行微调,有效地消除了不考虑理据而得出答案的推理捷径。此外,通过直接使用对比解码,LLMs可以减少表层复制,防止遗漏推理步骤。

挑战和研究方向

LLM幻觉中的挑战包括长文本生成中的幻觉,检索增强生成中的幻觉,以及大型视觉语言模型中的幻觉问题。

  • 长文本生成中的幻觉:已有的benchmarks主要以事实性问答形式呈现,主要关注事实幻觉。在长文本生成领域,人工标注的幻觉基准存在明显的缺失。在长文本生成中难以评估幻觉,目前可用的评价指标当事实更加细致入微、开放和有争议,或当知识来源存在冲突时不适用。
  • 检索增强生成中的幻觉:RAG管道中的误差累积问题,不相关的证据可以传播到生成阶段,从而污染输出。生成式检索偶尔会遭受引用不准确的困扰。RAG面临事实和多样性的权衡问题。
  • 大型视觉语言模型中的幻觉:LVLMs容易产生与关联图像不一致的响应,LVLMs很容易由于过度依赖强大的语言先验,以及对不恰当的用户输入的防御能力较差而导致被欺骗和严重的性能下降。

待研究方向包括LLMs的自我改正机制在减少幻觉方面的有效性,对LLMs内部知识边界的理解,以及它们的创造性和真实性之间的平衡。

  • 自我修正机制能否有助于减轻推理幻觉:自我纠错机制在缓解推理幻觉方面的有效性需要研究,能否不通过外部反馈识别修改LLM的推理幻觉
  • 是否可以准确捕捉LLM的知识边界:近期工作发现LLMs在其激活空间中包含与真实性信念相关的潜在结构,并且可以能够对问题的不可解答性进行编码,尽管这些模型在面对不可解答的问题时表现出过度自信并产生幻觉。但还无法确认LLM是否具有意识。
  • 是否可以在创造性和事实性之间获得平衡