随着市面上各种大模型的出现,研究者们发现大模型会“产生与某些来源无关的荒谬或不真实的内容”的倾向,大模型的开发者们将这一现象叫做幻觉(Hallucination)。由于幻觉现象的存在,目前的大模型依旧无法在医疗和法律等需要高度严谨回答的领域广泛应用,为了减轻大模型产生的幻觉现象,研究者们采用了包括事实检测,in-context learning,知识微调[15]等多种手段,已上线的gpt-4等大模型更是在幻觉高发段训练模型拒绝回答幻觉高发的问题。
然而,有些研究者对大模型的幻觉现象持不同看法。他们认为,幻觉现象不仅是一个问题,也可以视为一种潜在的能力。这种能力可以帮助大模型生成一些出人意料的有趣答案,比如用于数据集的扩展生成或进行创新性的问题回答。从这个角度来看,研究和利用幻觉现象可能会对模型的训练研究产生积极影响。无论是作为一种能力,还是一种挑战,大模型的幻觉现象都是我们在提升模型能力和应用实践中必须面对的问题。
在NLP之外的一般背景下,幻觉是一种特定类型的感知,在心理学中,幻觉被定义为"一个清醒的个体在没有来自外部世界适当刺激的情况下所体验的感知"。简单来说,幻觉是一种感觉真实的虚假感知。"文本生成任务中,有时会生成不忠实或无意义的文本"这种不良现象与心理学上的这种幻觉具有相似的特征。虽然幻觉文本不忠实并且无意义,但是由于大模型强大的上下文生成能力,这些文本的可读性往往非常高,让读者以为它们是基于提供的上下文,尽管实际上很难找到或验证这种上下文真实存在。这种现象与难以与其他“真实”感知区分的心理幻觉类似,一眼看上去也很难捕捉到幻觉文本。
在NLP的背景下,以上对幻觉的定义,即生成的内容是无意义的或对提供的源内容不忠实,显得并不够具体。然而在不同的NLP任务中,幻觉都有着不同的表现形式,本文主要介绍大模型在生成式问答任务上(Generative question answering ,GQA)的具体表现形式。GQA旨在生成一个概括性的答案,而不是从提供的段落中提取一个给定问题的答案。GQA任务是大模型目前主要的任务,因为大模型目前上线后的主要形式就是处理用户提出的许多问题,并且这些问题往往都需要深入的解释,因此这类问题的答案通常非常长,如果模型直接从给出的文本中摘抄答案,回答的整体可读性与应用性会变得很弱。一个GQA系统可以与搜索引擎集成,以实现更智能的搜索,或者与虚拟对话代理结合,以提高用户体验。
大模型幻觉的产生原理目前并没有数学逻辑上的证明,目前较为令人信服的产生猜测是大模型在搜索过程中并没有良好地融合获得的证据。一个GQA系统会首先进行问题相关信息的搜索,把这些搜索到的信息称为“证据”,然后模型再基于检索到的信息生成答案。但是在大多数情况下,检索到的证据来源往往不唯一,用于答案生成的答案经常有多个来源。这些文档可能包含冗余的、互补的或者相互矛盾的信息。因此,模型生成答案时会对多个并不兼容的证据产生疑惑,为保证回答的全面,模型融合证据时会把不同答案的段落进行拼接,以至于生成的答案产生幻觉。
如图1所示,在[5]中北卡罗纳大学和Alexa AI的研究中发现,大模型在多轮对话中会产生图1所示的三种幻觉类型:**无法进行验证的虚拟事实回应,与输入知识不相符的事实不一致回应,以及对于输入中不存在的问题的虚构回应。**这种标签与以前的工作不同,因为在处理开放领域对话中,不是所有回应都需要评估事实正确性,其中创意生成等需要模型创作新文本的任务经常不存在事实是否正确,因此该团队设置了如图1的实验,来验证模型是否会生成幻觉,在图中的例子可以看出,模型把两个不同人的经历和属性混淆了,这也反映了前面对幻觉产生原因的印证,即模型幻觉的产生往往是因为证据过多,无法有效融合。
图1 多轮对话中的证据融合错误导致了模型幻觉
幻觉问题是GQA中最重要的挑战之一。由于GQA系统的一个基本目标是提供给定问题的事实正确答案,所以答案中的幻觉会误导用户并损害系统性能。在OpenAI公司的GPT-4的官方技术文档中介绍,GPT-4有“产生幻觉”即“产生与某些来源无关的荒谬或不真实的内容”的倾向。这种倾向在模型变得越来越令人信服和可信时可能特别有害,导致用户过度依赖它们。出人意料的是,当模型的回答越来越令人信服的时候,幻觉现象会变得更加危险,因为当模型在用户熟悉的领域提供了部分的真实的信息时,用户会对模型建立过量的信任(over-relience)。当这些模型被部署到服务器上并应用给社会中并被用来帮助自动化各种系统时,产生的幻觉无异于在互联网上制造很多令人难以分辨的谣言,会大幅降低公开可用信息的真实性和信任度,并且会对幻觉的主体造成一定的经济以及信誉影响。
作为一个具有挑战性但尚未被深入探索的任务,GQA任务中还没有关于幻觉的标准定义。然而,几乎所有关于GQA的研究[7, 8]都涉及一个人类评价过程,在这个过程中,衡量生成答案的忠实程度的事实正确性可以被视为对幻觉的一种测量;即,答案越忠实,它包含的幻觉内容就越少。最近的一项研究[9]使用了语义漂移这个术语,它指的是答案在生成过程中离正确答案漂移的程度,这也可以被视为GQA中幻觉的一个特定定义。 香港科技大学的CAiRE实验室对不同task中的幻觉进行了总结,在表1中给出了GQA任务中两个具体的幻觉例子。两个问题的来源都是维基百科网页。对于第一个问题,“道琼斯工业平均指数是什么?”,生成的答案“美国30个主要股票指数的指数”与维基百科中的声明“美国上市的30家知名公司的指数”产生了冲突,在这个例子中,模型产生的回答对一个概念的回答产生了幻觉,对于模型用户而言,这个小小的错误由于模型的回答与答案很接近并且回答的有理有据,很有可能一直让用户对这个概念产生误解,如果这是一个上市公司产生的搜索,那么这个错误带来的经济负面影响不可估量。
表1 不同任务中产生的一些幻觉错误
目前,并没有一套针对GQA大模型幻觉的自动度量标准。虽然大部分关于GQA任务的研究使用如ROUGE得分和F1等自动评价指标来衡量答案的质量,但这些基于N-gram重叠的指标并不能有效地评价幻觉,因为这些标准实际与人类判断的相关性较差,Krishna等人在[8]中指出了这点。另一方面,几乎所有的GQA相关研究都加入了一个由专家组进行评价的环节作为幻觉评价方法的主体。通常,专家组会被要求给出一个评价答案忠实度的得分,这也是目前对幻觉的一种最普遍而有效的检测方法。然而,通过人类评价得到的数据集目前来看样本过少,这项费时费力的工作所产出的评测数据通常在发表后都会被回馈给大模型以获得更高的分数,这样就会令人力构建的测试数据越来越少,无法跟上目前大模型的发展速度。
因此研究者们从尝试使用一些计算性质的指标来评价模型的输出,例如语义重叠这样的指标,这是一个基于BERT的学习评价指标,用该指标来模拟人类判断,目前因为方便计算,通常作为GQA幻觉的一种简易检测方法。其他如事实正确性的指标也可以被视为一种衡量GQA中幻觉的方法。张等人[10]提出首先通过信息抽取(IE)的方法提取事实来明确衡量生成文本与参考文本的事实正确性。然后,再定义并测量事实准确度得分,利用该得分评价生成文本中与参考文本中对应事实相等的事实的比率。
本节将介绍四种不同的幻觉检测的途径,通过这些方法,大模型可以得到有效的回馈手段,这样模型在生成回复内容时,也可以有效地减少生成的幻觉。
首先介绍最常用也是最方便的基于语义相似度的方法,这类方法的关键是在微调评分数据之前“预热”BERT的预训练技术,利用大量的预料库训练BERT,让BERT模型学习到较好的分词能力,之后通过不同的分数方法来评价模型输出与金标准之间的差距,目前这类方法的驯良方式以及评分方法多种多样,表2中列举了多种常用的与训练方法与损失函数,利用这些评价方法可以初步的观察模型的输出是否包含了真实答案中所需要的信息。
在[13]中,谷歌利用多任务损失在几个词汇级和语义级监督信号上进行训练,在进行了多种实验后,BLEURT在在训练数据不完全的情况下表现特别好。任何预训练方法都需要一个数据集和一组预训练任务。理想情况下,预训练的数据设置应该十分接近一种NLG评估任务,也就是说,训练集与测试机的句子分布应该较为类似,预训练信号应该与人类评分相关。但是,预训练侧是没有办法得知下游任务的数据类型与分布。因此,谷歌为了其BLEURT分数的普遍性优化了方案,他们的预训练策略有三个要求:
(1) 参考句子的集合应该大而且多样化,这样BLEURT就能应对各种NLG领域和任务。(2) 句子对应该包含各种词汇、句法和语义的不同。这里的目标是预见NLG系统可能产生的所有变化,例如,短语替换、释义、噪声或省略。(3) 预训练目标应该有效地捕捉这些现象,这样BLEURT就能学会识别它们。以下章节将介绍我们的方法。 表2 各种评分方法与其损失函数
通过这一系列的与训练操作,BLEURT模型在有限预训练语料的情况下达到了惊人的效果,如图2所示,谷歌团队对多种预训练模型的绝对肯德尔值进行了测试,我们首先观察到,随着我们增加测试偏斜,所有指标的一致性都在下降。这种效应已经在2019年WMT指标报告中描述过。对此的一个常见的解释是,随着语料评级越来越接近,任务会变得更加困难——也就是区分“好”和“差”的系统比排列“好”系统更容易。对于没有预训练的BLEURT,训练偏斜会产生灾难性的影响:对于α=1.0,它低于BERTscore,并且对于α≥1.5,它下降到低于sentBLEU。预训练的BLEURT要强大得多:唯一的情况是当α=3.0,这种情况下的偏移过于极端,这时训练所使用的文本是错误的,而测试时使用的却是最优秀的,其中α代表偏斜因子,它衡量了训练数据有多少向左偏斜,以及测试数据有多少向右偏斜,偏斜因子越大,代表训练数据越恶劣。
图2 不同预训练模型的绝对肯德尔相关系数
第二种验证其事实性的方式主要应用于文献,报告等规范领域当中,比如在临床医学中,由于技术报告较为复杂并且行文逻辑较为规范,减轻临床医生的负担并提高他们的效率具有重要的应用价值。[2]中提出了在自动生成放射科报告摘要中,维持生成的摘要与实际放射学发现之间的事实正确性至关重要。在应用中,生成的影象印象中的任何错误或不准确都可能对患者的诊断和治疗产生重大影响。迄今为止,对于科学医学等领域,已经有少数研究聚焦于用强化学习(RL)优化生成摘要的事实正确性。如前文中的衡量标准,医学领域也有如CheXBert 的度量标准,用来评估生成摘要中临床信息的事实正确性,并使用基于强化学习的方法,根据这个度量标准来优化事实正确性的目标。在此之上也有人进行优化,提出的新标准使用了放射科报告中更广泛的临床信息,比基于ChexBERT的评分更符合放射科医生的需求。
图3 放射科报告中的三元组匹配检测
然而,这些模型的理论最优性能和他们的实际输出之间存在着显著的差距,这是因为在解码过程中没有事实引导。这些方法中的绝大多数采用了诸如贪婪搜索、波束搜索和多样性波束搜索等解码策略,这些策略并未将事实一致性作为从𝑘个生成的摘要中选择最佳摘要的标准。这些解码方法通常维持一个最好的𝑘个候选者列表,并根据对数概率进行排序来输出最好的一个。然而,剩下的𝑘 − 1个候选者可能包含更多的正确事实。因此,Xie团队在文章中提出了图3中的基于知识三元组的匹配方法,该方法训练模型比较放射报告与影像学结果之间的异同,通过抽象出其中药物的三元组关系并计算二者的余弦相似度,以比较两个不同报告之间的描述是否存在差异,帮助医生进行总结与发现问题。这一方法的效果如表3所示,factranker的F1值远远超过其他方法,同时利用CheXbert作为评价模型时,也超过了其文章中的SOTA。
表3 FactRanker在各个数据集上的表现
图4 Scifacr的判别流程
有诸多的研究者在使用ROUGE为代表的评分标准时,发现这种基于文本的评价方式没办法探求文本内部逻辑的一致性,即使得分很高,也不能证明生成的文本与金标准是一致的关系,因为ROUGE评分只是测量两个序列之间的表面文本重叠,并不考虑它们之间的事实对齐。比如,一个参考句子“肺炎被发现”,和一个模型生成的句子“肺炎未被发现”,二者有大量的文本重叠,因此生成的句子将会得到一个高的ROUGE分数,然而生成的句子传达了一个完全相反的事实。因此在研究如何甄别欢聚时,要更加细粒度地观察句子中每一个需要被关注的点,如图4所示,华盛顿大学的wadden在[14]中提出了scifact的验证结构,这种验证方法主要针对的是可以找到理论依据的科学类声明,例如化合物的性质,或者一些物理性的常识,这类pipeline的方法较为经典,是首先拿到了声明与能够证明该声明的诸多文章,通过抽取出的最相关的n篇文章进行判断,分析该声明是否与抽取的证据相违背,这类工作的主要创新点在于抽取证据的形式与判断的过程,在大模型出现之前,研究者们倾向于令事实验证模型寻找其判断的依据,或者是细化粒度,寻找模型究竟在声明的哪个token上发现的差异。
scifact同样作为一个开放的数据集任务寻求着各个研究团队的加入,目前该数据集上得分最高的模型是scifact数据集作者之后创作的Multivers模型,该模型致力于利用上下文的信息整合抽取到的多个证据并作出最终的判断,它基于主张和全文档上下文的共享编码以多任务方式预测事实检查标签并识别理由。这种方法实现了两个关键的建模目标。首先,它确保所有相关的上下文信息都被考虑到每次决策中。其次,它使模型能够从注释了文档级事实检查标签,但缺乏句子级理由的实例中学习。如前文所言,大模型的幻觉的成因很可能与证据融合错误有关,因此这一事实验证方法相信会对大模型的检测起到一定的帮助作用。
表4 scifact数据集任务排行
事实一致性的评价方法,其本质是衡量生成答案给出的源文档的忠实度,可以作为另一种衡量GQA中幻觉的方式。Wang等人[11]提出了一个自动QA基础指标来衡量摘要中的忠实度,利用了阅读理解的SOTA模型把原本的匹配任务转化为阅读理解任务。他们首先使用问题生成模型从摘要中构造问题-答案对,然后使用QA模型从给定的源文档中提取问题的短答案范围。那些不匹配提供的答案的提取答案表明摘要中的信息不忠实。这一方法在[12]中得到了一定的修正与优化,通过抽取声明(claim)中的关键信息创建问题,再根据原文和问题进行回答,最后指出实际答案与阅读理解模型给出答案之间的相似度,将事实的一致性间接通过多个问题答案的一致性进行表示,虽然这些指标最初是在摘要生成或者事实验证的任务中提出的,但它们可以很容易地应用在GQA任务中,以大模型是否在回答时产生了幻觉。
图5 LoRen模型事实验证步骤
这一转化问题的方法与之前prompt的思路不谋而合,同样其本质还是对声明进行token级别的验证,相当于把原本的比较token之间的相似度通过一个阅读理解模型的转化进行一个中间形态的比较,这一方法的效果如表5所示,其正确率与LisT5相当,而LisT5是一个3B的模型,其体量远超LoRen,而LOREN在开发集中在FEV分数上超过了LisT5。对于DREAM,我们注意到它在测试集的LA分数上比LOREN更高。由于证据检索策略和主干预训练语言模型的差异,LOREN与DREAM并不完全可比。然而,LOREN(BERT和RoBERTa)更高的FEV分数表明,与DREAM相比,它的决策更忠实于证据。相反,我们与KGAT(其相同的PLMs和证据检索技术)进行了更公平的比较,发现LOREN配备的BERTlarge和RoBERTalarge分别超过了KGAT的RoBERTalarge和CorefRoBERTalarge。
表5 LoREN模型在FEVER数据集上效果比较
本文简要介绍了大模型产生幻觉的成因危害,与一些目前可能有效的检测与减少措施。大模型的幻觉本身也是一种模型所造的‘谣言’,因此目前的事实验证模型只要加以改造,会很有效的对目前已有的大模型输出进行筛查与规范,但是目前对大模型幻觉的研究仍处在猜测和验证的阶段,并没有人能够把模型产生幻觉的具体成因与过程通过数学的方式呈现出来,随着模型体量的迅猛发展,这种从原理上解读模型行为的方式会更加地困难,因此如何利用现有的模型与方法,去让大模型尽量减少模型所犯的错误,依旧会是该研究方向的主旋律。
[1] Kaplan J, McCandlish S, Henighan T, et al. Scaling laws for neural language models[J]. arXiv preprint arXiv:2001.08361, 2020. [2]Xie Q, Hu J, Zhou J, et al. Factreranker: Fact-guided reranker for faithful radiology report summarization[J]. arXiv preprint arXiv:2303.08335, 2023. [3]Esin Durmus, He He, and Mona Diab. 2020. FEQA: A Question Answering Evaluation Framework for Faithfulness Assessment in Abstractive Summarization. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. 5055–5070. [4] Shuster K, Poff S, Chen M, et al. Retrieval augmentation reduces hallucination in conversation[J]. arXiv preprint arXiv:2104.07567, 2021. [5] Santhanam S, Hedayatnia B, Gella S, et al. Rome was built in 1776: A case study on factual correctness in knowledge-grounded response generation[J]. arXiv preprint arXiv:2110.05456, 2021. [6]Ji Z, Lee N, Frieske R, et al. Survey of hallucination in natural language generation[J]. ACM Computing Surveys, 2023, 55(12): 1-38. [7] Angela Fan, Yacine Jernite, Ethan Perez, David Grangier, Jason Weston, and Michael Auli. 2019. ELI5: Long Form Question Answering. In Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. 3558–3567 [8] Kalpesh Krishna, Aurko Roy, and Mohit Iyyer. 2021. Hurdles to Progress in Long-form Question Answering. In Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 4940–4957. [9] Chenliang Li, Bin Bi, Ming Yan, Wei Wang, and Songfang Huang. 2021. Addressing Semantic Drift in Generative Question Answering with Auxiliary Extraction. In Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing (Volume 2: Short Papers). 942–947 [10] Yuhao Zhang, Derek Merck, Emily Tsai, Christopher D Manning, and Curtis Langlotz. 2020. Optimizing the Factual Correctness of a Summary: A Study of Summarizing Radiology Reports. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. 5108–5120 [11] Alex Wang, Kyunghyun Cho, and Mike Lewis. 2020. Asking and Answering Questions to Evaluate the Factual Consistency of Summaries. Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics (2020). [12]LOREN: Logic-Regularized Reasoning for Interpretable Fact Verification [13]Thibault Sellam, Dipanjan Das, and Ankur Parikh. 2020. BLEURT: Learning Robust Metrics for Text Generation. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. 7881–7892. [14]Wadden D, Lin S, Lo K, et al. Fact or fiction: Verifying scientific claims[J]. arXiv preprint arXiv:2004.14974, 2020. [15]H Wang, S Zhao, Z Qiang, Z Li, N Xi, Y Du, MZ Cai, et a;.Knowledge-tuning Large Language Models with Structured Medical Knowledge Bases for Reliable Response Generation in Chinese arXiv preprint arXiv:2309.04175, 2023