大模型「幻觉」有解药了?药方请查收——|云启嗑普
要对症下药,先弄清「病理」。

在NLP(自然语言处理)之外的一般背景下,幻觉(Hallucination)被心理学定义为**「一种感觉真实的虚假感知」**。通常情况下,我们认为「幻觉」会带来麻烦。
LLM的幻觉,确实是现在AI公司正全力试图解决的问题之一。从根源上说,「幻觉」的来源,是GPT在进行问题相关的「证据」搜索中,因为不能准确区分不同来源、不统一甚至相互矛盾的答案,从而产生疑惑,自行将不同答案的段落进行拼接。也就是说,模型生成的内容,与现实世界的真实情况或者用户输入并不一致。
但它「难以控制」的特性,也正在为创业公司制造新机会。在之前有关AIGC+Game的文章中,我们列举了使用大模型幻觉开发出的新颖玩法、以及它给用户带来的新体验。
要想进一步控制「幻觉」,我们需要更清晰地弄明白它的具体原理。近日,哈工大和华为联合发表了一篇49页大模型幻觉综述,在网上引起了众多讨论。本期**「云启磕普」**带你一起探秘大模型幻觉的定义、分类、原因和解决方法。
以下内容转载自量子位
这篇来自哈工大和华为的最新「大模型幻觉综述」在网上引起众多讨论。

具体来说,文中用一套新的范畴框架来定义模型幻觉,并将其分为事实性幻觉、忠实性幻觉两大类。
此外,它还总结了模型产生幻觉的三大来源:数据源、训练过程和推理,并给出了对应的减轻幻觉策略。
一图预览如下↓

幻觉作为大模型的一种"通病",找到了病根,也好对症下药。
北大数学教授董彬也曾讲,作为研究者,自己其实是比较喜欢大模型幻觉的:
因为幻觉和创造/创新其实只有一线之隔。
那么这篇综述具体如何解剖大模型幻觉现象?一起来看看。

大模型的幻觉「病理」
大模型出现幻觉,简而言之就是"胡说八道"。
用文中的话来讲,是指模型生成的内容与现实世界事实或用户输入不一致的现象。
正如上文提到的,研究人员将大模型的幻觉分为事实性幻觉(Factuality Hallucination)和忠实性幻觉(Faithfulness Hallucination)。

左,事实性幻觉;右,忠实性幻觉
事实性幻觉,是指模型生成的内容与可验证的现实世界事实不一致。
比如问模型"第一个在月球上行走的人是谁?",模型回复"Charles Lindbergh在1951年月球先驱任务中第一个登上月球"。实际上,第一个登上月球的人是Neil Armstrong。
事实性幻觉又可以分为事实不一致(与现实世界信息相矛盾)和事实捏造(压根没有,无法根据现实信息验证)。
忠实性幻觉,则是指模型生成的内容与用户的指令或上下文不一致。
比如让模型总结今年10月的新闻,结果模型却在说2006年10月的事。
忠实性幻觉也可以细分,分为指令不一致(输出偏离用户指令)、上下文不一致(输出与上下文信息不符)、逻辑不一致三类(推理步骤以及与最终答案之间的不一致)。
那么致使大模型产生幻觉的原因都有哪些?
首先"病从口入",大模型的粮食数据,是致使它产生幻觉的一大原因。
这其中就包括数据缺陷、数据中捕获的事实知识的利用率较低。
具体来说,数据缺陷分为错误信息和偏见(重复偏见、社会偏见),此外大模型也有知识边界,所以存在领域知识缺陷和过时的事实知识。
即便大模型吃掉了大量数据,也会在利用时出现问题。
大模型可能会过度依赖训练数据中的一些模式,如位置接近性、共现统计数据和相关文档计数,从而导致幻觉。比如说,如果训练数据中频繁共现"加拿大"和"多伦多",那么大模型可能会错误地将多伦多识别为加拿大的首都。
此外,大模型还可能会出现长尾知识回忆不足、难以应对复杂推理的情况。

除了数据,训练过程也会使大模型产生幻觉。
主要是预训练阶段(大模型学习通用表示并获取世界知识)、对齐阶段(微调大模型使其更好地与人类偏好一致)两个阶段产生问题。
预训练阶段可能会存在:
-
架构缺陷。基于前一个token预测下一个token,这种单向建模阻碍了模型捕获复杂的上下文关系的能力;自注意力模块存在缺陷,随着token长度增加,不同位置的注意力被稀释。
-
曝露偏差。训练策略也有缺陷,模型推理时依赖于自己生成的token进行后续预测,模型生成的错误token会在整个后续token中产生级联错误。
对齐阶段可能会存在:
-
能力错位。大模型内在能力与标注数据中描述的功能之间可能存在错位。当对齐数据需求超出这些预定义的能力边界时,大模型会被训练来生成超出其自身知识边界的内容,从而放大幻觉的风险。
-
信念错位。基于RLHF等的微调,使大模型的输出更符合人类偏好,但有时模型会倾向于迎合人类偏好,从而牺牲信息真实性。
大模型产生幻觉的第三个关键因素是推理,存在两个问题:
-
固有的抽样随机性:在生成内容时根据概率随机生成。
-
不完美的解码表示:上下文关注不足(过度关注相邻文本而忽视了源上下文)和softmax瓶颈(输出概率分布的表达能力受限)。

检测大模型病症
分析了大模型的幻觉病因,研究人员还给出了一份模型幻觉检测基准。
针对事实性幻觉,已有检索外部事实和不确定性估计两种方法。
检索外部事实是将模型生成的内容与可靠的知识来源进行比较。

基于不确定性估计的幻觉检测方法,可以分为两类:基于内部状态的方法和基于行为的方法。
基于内部状态的方法主要依赖于访问大模型的内部状态。例如,通过考虑关键概念的最小标记概率来确定模型的不确定性。
基于行为的方法则主要依赖于观察大模型的行为,不需要访问其内部状态。例如,通过采样多个响应并评估事实陈述的一致性来检测幻觉。

检测忠实性幻觉的方法,研究人员用一张图概括了五种不同的方法:
-
基于事实的度量:测量生成内容和源内容之间事实的重叠程度来评估忠实性。
-
分类器度量:使用训练过的分类器来区分模型生成的忠实内容和幻觉内容。
-
问答度量:使用问答系统来验证源内容和生成内容之间的信息一致性。
-
不确定度估计:测量模型对其生成输出的置信度来评估忠实性。
-
提示度量:让大模型作为评估者,通过特定的提示策略来评估生成内容的忠实性。

了解了如何度量幻觉后,就是减轻幻觉的方法了。

对症下药减轻幻觉
研究人员根据致幻原因,详细总结了现有减轻幻觉现象的研究。
1、数据相关的幻觉
减少错误信息和偏见,最直观的方法是收集高质量的事实数据,并进行数据清理以消除偏见。
对于知识边界的问题,有两种流行方法。一种是知识编辑,直接编辑模型参数弥合知识差距。另一种通过检索增强生成(RAG)利用非参数知识源。
检索增强具体分为三种类型:一次性检索、迭代检索和事后检索。

一次性检索是将从单次检索中获得的外部知识直接预置到大模型的提示中;迭代检索允许在整个生成过程中不断收集知识;事后检索是基于检索的修订来完善大模型输出。
2、训练相关的幻觉
根据致幻原因,可以完善有缺陷的模型架构,目前已有许多相关研究。

从模型预训练阶段来讲,最新进展试图通过完善预训练策略、确保更丰富的上下文理解和规避偏见来应对这一问题。
比如针对模型对文档式的非结构化事实知识理解碎片化、不关联,有研究在文档的每个句子后附加一个TOPICPREFIX,将它们转换为独立的事实,从而增强模型对事实关联的理解。
此外,还可以通过改进人类偏好判断、激活引导,减轻对齐错位问题。
3、推理相关的幻觉
不完美的解码通常会导致模型输出偏离原始上下文。
研究人员探讨了两种高级策略,一种是事实增强解码,另一种是译后编辑解码。
此外,忠实度增强解码优先考虑与用户说明或提供的上下文保持一致,并强调增强生成内容的一致性。现有工作可以总结为两类,包括上下文一致性和逻辑一致性。
有关上下文一致性的最新研究之一是上下文感知解码(CAD),通过减少对先验知识的依赖来修改输出分布,从而促进模型对上下文信息的关注。
有关逻辑一致性的最新一项研究包括知识蒸馏框架,用来增强思维链提示中固有的自洽性。

论文链接:https://arxiv.org/abs/2311.05232





