一、基础概念与分类
什么是大模型的“幻觉”?请给出一个通用定义。¶
通用定义:大模型的“幻觉”(Hallucination)是指模型生成的内容与真实世界事实、用户提供的上下文或内在逻辑相矛盾,但模型却以高度自信的方式呈现,仿佛它是真实可信的信息。换句话说,模型“编造”了看起来合理但实际上不正确、无根据或与给定信息冲突的内容。
从技术角度,幻觉可以更精确地描述为:模型在给定输入条件下,输出的概率较高的字符串与理想的事实性(或上下文一致性)目标之间出现了系统性偏离。这种偏离不是随机的噪声错误,而是模型习得的生成模式在特定条件下产生的一类结构化失真。
该定义涵盖了不同维度的幻觉:
-
与事实不一致:生成的内容与客观事实矛盾(例如,声称珠穆朗玛峰高度为 8849 米,但实际为 8848.86 米,或捏造不存在的历史事件)。
-
与上下文不一致:在摘要或对话等任务中,生成的文本扭曲、添加或无根据地推断出原文或对话历史中不存在的信息。
-
与自身生成不一致:模型在一段输出中前后矛盾,或产生逻辑断裂的推理过程。
幻觉的本质是模型在知识边界或语境约束下,依赖学到的统计模式进行“合理想象”而非忠实检索或推理,从而产生看似真实但实质错误的输出。
幻觉与模型“错误”有什么区别?所有错误都是幻觉吗?¶
区别:幻觉是模型错误的一个子集,但并非所有模型错误都是幻觉。二者在成因和表现上有重要差异。
- 模型错误(Model Error) 是一个广义概念,指模型输出偏离了预期正确目标的一切情况。它可以分为多种类型:
- 知识缺失型错误:模型对事实记忆不清或根本没有学到该知识,例如被问到冷门日期时猜测错误。模型可能表现出不确定或回避,也可能给出错误答案。
- 推理错误:逻辑链断裂、计算失误,即便掌握了相关事实,仍得出错误结论。例如解数学题过程中一步算错。
- 格式或对齐错误:输出格式不符、拒绝回答合理问题、重复循环等。
- 感知错误(多模态):视觉识别错误(把猫认成狗)。
-
幻觉错误:这是错误中的一个特定类别。
-
幻觉的独特性:幻觉的核心在于模型无中生有地“编造”内容,并且通常以极高的置信度呈现,使其难以与正确知识区分。幻觉产生的内容往往语法完美、风格一致,且与上下文高度融洽,在外部事实核查之前极具欺骗性。与此相对,普通的“错误”可能包含不确定的表达、明显的推理漏洞或格式混乱。幻觉中的错误是被模型的语言能力包装过的,它并不只是“答错了”,而是“自信地胡说”。
-
举例区分:
- 问题:“谁发现了万有引力?” 模型回答:“爱因斯坦发现了万有引力。”(错误,但不是典型幻觉,这是知识混淆,模型可能只是混淆了人名。)
- 问题:“介绍一下 1990 年世界杯的吉祥物。” 模型回答:“1990 年世界杯吉祥物是‘Ciao’,一只意大利灵缇犬,身穿绿白红三色球衣……” 如果实际上 1990 年世界杯没有吉祥物,这就是典型的幻觉——模型在知识空缺时用语言能力构造了一个细节丰富的虚构实体。
- 问题:摘要一篇科技文章,原文没有提到任何量子计算,但模型摘要中出现“该研究有望推动量子计算发展”——这是忠实性幻觉,无故添加了原文不存在的信息。
因此,所有幻觉都是错误,但并非所有错误都是幻觉。幻觉特指那些由于生成机制固有缺陷而产生的虚构且呈现为事实的输出。
内在幻觉和外在幻觉分别指什么?举例说明。¶
这是根据幻觉信息来源与原因的一种分类,最早在一些综述中提出。
(1)内在幻觉(Intrinsic Hallucination)
-
定义:生成的回复与给定的上下文、输入或已生成的前文相矛盾。即模型没有忠实于自己已有的信息源。
-
特点:这类幻觉可以从输入本身检验出来,无需外部知识。常见于摘要、对话、翻译、代码生成等任务。
-
举例:
- 摘要任务:原文说“小明今天去公园玩”,模型摘要写成“小明今天去商场购物”。“商场”和原文冲突。
- 对话:用户说“我住在北京”,模型回复“上海的天气怎么样?”——忽略了已知的居住地信息,产生了内在矛盾。
-
推理:模型先在步骤1说“因此X大于Y”,但在步骤3写道“由于X小于Y...”,自身前后不一致。
-
根因:注意力分散、过长上下文中的信息遗忘、解码策略不当(如束搜索的过度简化)导致模型无法保持对源信息的忠实。
(2)外在幻觉(Extrinsic Hallucination)
-
定义:生成的回复无法从给定的输入中验证或与客观世界事实相悖,即模型编造了不被上下文支持且不真实的信息。
-
特点:需要外部知识库或事实核查才能判断。这类幻觉体现了模型内部储存知识的错误或偏差,或者因为模型过度泛化而“发明”了不存在的事实。
-
举例:
- 开放域问答:问“第一个登上火星的人是谁?”模型答“是美国的约翰·史密斯,于2035年登陆。” —— 这完全是编造的未来事件和人名。
- 知识性对话:模型介绍一本真实存在的书,但错误地声称作者是另外一个人,并编造了该书的获奖记录。
-
实体生成:要求列出某公司的产品,模型捏造了几款根本不存在的产品,并给出参数细节。
-
根因:训练数据噪声、知识截止、长尾实体欠拟合、解码时的概率最大化偏好导致高频模式的拼接。
总结:内在幻觉是“没有忠实于提示/上下文”,外在幻觉是“没有忠实于世界知识”。两者可能同时出现:模型既曲解了原文,又补充了虚构的外部事实。
事实性幻觉与忠实性幻觉有何不同?¶
这是另一种互补的分类维度,与内在/外在幻觉有交叉,但侧重点不同。
- 事实性幻觉(Factuality Hallucination)
- 关注点:生成内容是否与客观世界的事实相符。
- 实质:这属于外在幻觉的范畴,指模型输出了可被证伪的、与真实世界冲突的信息。
- 例子:问“《红楼梦》的作者是谁?”答“施耐庵” —— 这违背了事实。
-
特点:需要使用外部知识库、搜索引擎或现实世界的证据来验证。
-
忠实性幻觉(Faithfulness Hallucination)
- 关注点:生成内容是否忠实于用户的指令和给定的输入上下文。
- 实质:这主要涵盖内在幻觉,但范围更广。它包括:
- 对输入源的不忠:如摘要任务中,添加、删减或歪曲原文事实。
- 对用户指令的不忠:用户要求“只列出优点”,模型却同时输出缺点;用户要求“用中文回答”,模型却用英文回答。
- 例子:用户提供一段新闻原文,要求生成标题。原文未提及伤亡,但模型生成的标题写“事故造成10人死亡”——这就添加了原文没有的信息,属于不忠实。
- 特点:只需比较输出与输入指令和上下文即可判断,不依赖外部事实。
区别与联系:
-
一个输出可能事实正确但不忠实。比如,用户让模型根据某篇文章回答问题,但文章内容有误,模型做出了符合事实但偏离文章的修正——这可能违背忠实性(用户期望基于文章的回答),即使事实性正确。
-
一个输出可能忠实但不事实。例如,模型严格按用户提供的虚构故事进行续写,故事本身是假的,但续写忠实于原设定。这在创意写作中是可接受的,但在需要事实性的场景中则是失败。
-
在幻觉缓解中,这两个维度需要不同的解决方案:忠实性幻觉可以通过更强大的注意力机制、检索增强生成(RAG)和对输入的严格对齐来缓解;事实性幻觉则需要外部知识注入、事实核查模块或更好的训练数据去噪。
总之,事实性是“对世界的忠诚”,忠实性是“对上下文的忠诚”。
什么是“闭卷幻觉”?在什么场景下容易发生?¶
闭卷幻觉(Closed-book Hallucination) 是指模型在没有访问任何外部知识源、仅依赖自身参数中存储的信息来回答问题时,由于知识缺失、过时或不准确而生成的幻觉。这一术语源自“闭卷问答”(Closed-book QA)范式,即模型不借助检索文档,直接回答问题。
典型发生场景:
-
纯粹闭卷问答:用户直接向模型提问事实性问题,例如“2023年诺贝尔化学奖得主是谁?”如果模型训练数据截止于2022年,它必然会编造答案——这种就是典型的闭卷幻觉。
-
长尾实体查询:关于较为冷门的知识,如某小镇的历史、小众电影剧情、某个三线城市的市长姓名。模型可能没有在训练数据中充分学习这些事实,但为了维持流畅的输出,会用最常见或最合理的模式去“填补”空白。
-
时敏信息查询:实时股票价格、天气预报、最新新闻事件。模型由于知识截止日期无法获知,只能根据过时信息甚至完全虚构。
-
边缘知识组合:要求模型结合两个不常见的事实进行推理,如果其中一个或两个事实在训练中缺失,模型会在推理链中“脑补”出合理的中间事实,导致整个推理链外观完美但基础不实。
-
多跳推理闭卷:例如“法国最大的城市的市长的名字是什么?”如果模型忘记了“法国最大城市是巴黎”这一事实,或者记错了市长名字,就容易产生幻觉。
为什么在这些场景下容易发生?
闭卷场景下,模型完全处于自给自足状态,没有了检索到的文档作为“约束锚点”,解码过程完全由语言模型的统计概率驱动。当模型对某一知识的内部表征不确定或冲突时,解码算法(如贪心、束搜索)会倾向于选择高概率的 token 组合,这些组合往往构成流畅且合乎语法的句子,却在事实上失真。换言之,模型宁可“说点什么像样的”也不愿坦诚无知,这种倾向在闭卷环境中尤为明显。
缓解闭卷幻觉的主要方向是转向开卷(检索增强)模式,或使用外部工具、搜索引擎实时核实。此外,训练模型学会拒绝回答或表达不确定性也是一种补充策略。
在 RAG 场景中,模型可能产生哪些新型幻觉?¶
检索增强生成(RAG)通过给模型提供外部检索文档来增强事实性,但同时也引入了新的、特有的幻觉类型。这些幻觉不再单纯是参数知识的缺失,而是与检索和融合过程相关。
RAG 中的新型幻觉包括:
(1)来源-内容冲突幻觉(Source-Content Conflict)
-
模型忽略了检索到的文档,继续依赖自身参数知识生成答案,导致输出与提供的证据矛盾。
-
例子:文档说“某药物临床试验失败”,模型却答“该药物被证实有效”,因为它基于训练数据中过时的乐观报道生成。
(2)跨文档混淆幻觉(Cross-Document Confusion)
-
当检索返回多篇文档,模型错误地混合了不同文档的信息,产生现实中不存在的交叉实体或事件。
-
例子:文档A介绍苹果公司的iPhone,文档B介绍三星公司的Galaxy,模型生成“苹果公司发布了Galaxy S23”,将两个品牌混淆。
(3)证据捏造/篡改幻觉(Fabricated Evidence)
-
模型在输出中引用或概述检索文档的内容时,添加文档中根本没有的细节或数据,甚至编造出看似合理的引用页码。
-
例子:“根据文档第3页,该技术的效率提升了50%”,但实际上文档中从未出现此数字。
(4)过度精简或过度泛化幻觉(Over-summarization Hallucination)
-
模型在融合多文档信息时,为了生成简洁回答,丢失了关键的条件、限定词或背景,使陈述变得绝对化且错误。
-
例子:文档提到“在低温低压条件下,A物质表现为超导体”,模型简化为“A物质是超导体”,忽略了必要条件,这在科学上是错误。
(5)时效性与检索快照不一致幻觉(Temporal Hallucination)
-
当检索到的信息已经更新,但模型训练数据中的旧知识或内部偏见导致它选择性地相信旧信息,或对检索结果中的新信息产生抗拒,输出扭曲的现实。
-
例子:文档是最新的公司财报,显示CEO已更换,但模型仍坚持旧的CEO姓名,因为它对此有更强的参数记忆。
(6)检索噪声诱导幻觉(Noise-induced Hallucination)
-
检索到的文档与问题无关或不准确,但模型仍试图从中提取答案,强行建立联系,生成看似相关实则错误的回答。
-
例子:问“某公司的成立年份”,检索返回的是该公司产品发布会的新闻,模型据此推理并错误声称“该公司在2018年随着产品X的发布而成立”。
(7)提示与证据混淆
- 模型的指令遵循与证据使用发生冲突。用户要求“基于常识回答”,模型可能把常识作为事实,忽略了证据文档中的反常识正确信息。
这些新型幻觉表明,RAG 虽然增强了知识覆盖面,却带来了信息整合的复杂性。缓解需要更好的检索精排、文档消歧、引用强制对齐、以及训练模型具备“引用即约束”的强遵循能力。
为什么说幻觉是生成式模型固有的问题,而非单纯的 bug?¶
幻觉并非简单的工程缺陷,而是源于当前生成式大语言模型的基本工作原理、训练目标和评估范式,具有结构性、原生性。
(1)基于语言建模的训练目标导致
-
语言模型的训练目标是最小化下一个 token 的负对数似然,即最大化训练语料中文本序列的概率。这个目标鼓励模型学习“看起来像人类写的文本”,而不是“说出真相”。
-
训练数据中包含着大量虚构作品、错误信息、过时事实、主观观点等,模型无法区分哪些是客观事实、哪些是虚构。它只学会了统计学上的共现模式,因此当被问及不确定的事实,会倾向于生成统计上最“自然”的延续,这种延续可能是错误的,但很流畅。
(2)生成机制导致的“合理猜测”
-
自回归生成过程中,模型在每一个时间步基于之前已生成的 token 来预测下一个 token。当一个错误 token 被采样并进入上下文后,模型会接着编造后续内容以维持连贯性(即“雪球效应”)。这导致模型经常一条路走到黑。
-
为了维持输出的连贯、一致、信息量,模型被隐式地鼓励去填补知识空白,因为拒绝回答、表示不确定性、留下空白并不符合训练数据中人类文本的分布(人们通常不会在教科书中写“我不知道”)。
(3)软性知识存储与压缩的缺陷
-
模型并非数据库,知识是以分布式、高度压缩的形式存储在参数中的。这种压缩是有损的,特别是对于长尾实体或细节,存储的信号可能模糊或混淆。当模型要“解码”这些知识时,容易出现类似人类记忆的错构或重构现象。
-
神经网络的连续表征没有内置的真值检验机制,模型无法自我验证“我是否真的知道这件事”,它只能根据上下文激活相关概念。有时激活了相邻但不正确的概念,就造成了幻觉。
(4)解码策略的推波助澜
- 常用的解码策略如贪心搜索、Top-k/Top-p 采样,本质都是基于模型输出的概率。但模型对事实的不确定性往往不会表现为低概率或平坦分布——研究发现,模型在产生幻觉时往往置信度很高。因此基于概率的生成策略无法识别并阻止幻觉,甚至可能优先选择高频但错误的模式。
(5)任务的开放性
- 大模型被用于开放域对话、创意写作、推理等多种任务,边界极其模糊。某些场景下,虚构和想象是可接受的,甚至是期望的(如编故事);在其他场景下则是有害的。这种同一模型需兼具创意与事实性的矛盾,根源上难以调和,因此幻觉倾向成为模型的多面性中必然附带的一面。
因此,幻觉是“预测下一个词”这一单一范式与“追求真相”这一复杂目标之间深层矛盾的体现,是生成式模型的天生特征,而非靠修补某个模块就能根除的 bug。
模型产生幻觉时,通常伴随怎样的输出特征?(如过于自信、流畅但错误)¶
幻觉输出往往拥有一些与正确输出高度相似的表面特征,使其极具欺骗性。辨识这些特征有助于开发检测方法。
常见特征:
(1)语言流畅且语法完美
- 幻觉文本通常语法正确,用词自然,与正确回答在语言质量上没有明显差异。这是因为模型的核心能力是语言生成,即使事实错误,语言形式仍保持高水平。
(2)高度自信与确定的语气
-
模型通常以陈述句、绝对化口吻输出幻觉内容,避免使用“可能”“也许”“我不确定”等限定词。即使完全编造,也会呈现出斩钉截铁的确信感。
-
研究表明,模型的校准度较差,生成幻觉时的 softmax 概率可能很高,因此不能仅凭置信度判断真伪。
(3)富含细节和具体化
- 幻觉常常会添加许多额外的细节,如具体数字、日期、人名、地点、统计结果等,使其看起来基于具体事实。这些细节正是虚构的核心部分。例如,编造一种疾病的发病率会精确到小数点后两位。
(4)结构化和连贯的论证
- 幻觉回答往往结构良好:有引入、分点论述、总结。逻辑链条从表面上看是自洽的,即使前提虚假,后续推理也维持内部一致性。在复杂问题中,模型甚至可能为支持幻觉而编造出更基础的事实作为“证据”。
(5)模式拼接与知识混淆
- 幻觉有时会显露出“张冠李戴”的特征:将实体A的属性赋予实体B,混合两个真实实体的信息构成一个虚构实体。例如,把某部电影的情节按到另一部电影上,或将两位科学家的成就合并到一个人名下。
(6)对真实知识的扭曲或“近似正确”
- 幻觉输出可能不是完全空穴来风,而是真实事实的某种变形,如把近似数值说成精确数值,把相关事件的时间错位,或把假设当作事实。这种半真半假的幻觉更难察觉。
(7)无法被上下文约束(在 RAG 中)
- 在存在检索文档的情况下,幻觉输出可能会奇怪地忽略或弱化文档的信息,同时用模型自身参数知识补齐,并且不与文档产生明显冲突(通过话术)。例如,用“研究表明...”等模糊引源来掩饰并非来自文档。
(8)重复的模式与模板
- 在面对大量类似问题时,模型的幻觉可能展现出一致的模板化,比如总是把不认识的药物归为“新型抗癌药”并罗列常见副作用。这种模板性反映了模型依赖高频分布的语言骨架。
这些特征意味着:仅仅通过流利度和自信度来评估大模型输出是危险的,需要结合外部知识源和专门的事实验证机制。
“忠诚度”(Faithfulness)和“事实性”(Factuality)在幻觉语境下如何区分?¶
在幻觉语境下,这两个术语虽然常被并提,但指代不同层次的可靠性,区分它们对于评估、诊断和缓解幻觉至关重要。
定义差异:
- 忠诚度:指模型的输出是否忠实于给定的输入或上下文。它衡量的是输出与输入信息的一致性,不关心输入信息本身是否正确。
- 核心问题:模型是否按照用户的要求、基于提供的材料进行生成?有没有无依据地添加、忽略或歪曲输入中的内容?
-
验证方式:仅比较输入和输出即可,无需外部知识。
-
事实性:指模型的输出是否与现实世界的客观事实相符。
- 核心问题:模型陈述的真假值是什么?能否被事实证实?
- 验证方式:需要借助外部知识库、数据库、真实世界观测。
具体对比:
为什么要严格区分?
-
评估分离:在摘要任务中,我们可以用蕴含模型(NLI)评估忠实度,而不必关心摘要中的事实是否真实(原文本身可能有误)。在开放域问答中,我们则需要事实性评价。
-
错误溯源:模型可能对错误输入保持忠诚(忠实但不真实),这通常不是模型的错;模型也可能对正确输入不忠实(不忠实但可能部分真实),这反映了模型的理解/生成控制问题。
-
缓解策略不同:
- 提升忠诚度:改进注意力机制,使用覆盖惩罚,在强化学习中奖励与输入相符的输出,或在解码中加入忠实度约束。
- 提升事实性:引入检索增强、知识编辑、事实核查后处理,或训练模型生成引用和不确定性表达。
在防止幻觉的综合目标下,忠诚度和事实性需要共同提升。RAG 场景尤其如此:我们希望模型对检索文档忠实,因为这些文档应该已经过事实性筛选。如果一个 RAG 系统输出既忠实又事实,则达到了理想的可靠状态。
如何判断一段生成文本中哪些部分是幻觉?¶
判断生成文本中哪些具体片段是幻觉(细粒度检测)是一项核心挑战,当前方法可分为基于外部知识、基于模型自身信号、基于统计分析以及人工评估等几大类。
(1)基于外部知识验证(事实性幻觉)
-
检索增强验证:将生成文本拆分为原子事实(如使用信息抽取工具或提示 LLM 分解为简单陈述句),然后对每个原子事实通过搜索引擎、知识库(如 Wikidata)或维基百科进行事实核查。如果找不到支持证据或与权威来源矛盾,则标记为幻觉。
-
自然语言推理(NLI):对于有源文的任务(如摘要),可使用 NLI 模型判断生成文本的每个片段是否可以被源文蕴含。不被蕴含且无其它源文支撑的部分即为幻觉片段。例如,将每个句子与源文进行对齐和蕴含分类,标记“矛盾”或“中立”的片段。
-
工具调用验证:对于包含可执行信息(如代码、数学公式、数据查询)的生成,直接在解释器或数据库上运行,看结果是否一致。如果某部分代码有语法错误或逻辑错误,则是幻觉。
(2)基于模型内部信号(无需外部知识)
-
输出概率与熵:检查生成片段中每个 token 的条件概率或预测熵。研究发现,幻觉 token 的概率分布往往具有特定模式,比如模型可能对幻觉部分仍然高置信度,但有时也会出现高熵(不确定性)。利用该特性可训练一个分类器,输入特征如序列概率、熵、注意力分布等,识别幻觉 span。
-
自我评估(Self-Evaluation):让模型对自身生成的文本进行逐句或逐段判断,询问“这句话是否有充分依据?”或“这部分信息是否可能出错?”。通过精心设计的提示词或微调,模型能够在某些情况下指出潜在的幻觉片段。比如,让模型生成回答后,再让其以校验者身份进行复核并生成解释,提取其指出有问题的片段。
-
内部表示异常检测:有研究利用模型隐藏层激活,通过训练探针发现幻觉片段的内部表示与真实陈述的表示在向量空间中距离较远。但这需要白盒访问且需要标注数据训练。
(3)基于交叉检验与多模型共识
-
自我一致性:多次采样生成多个回答,比较它们之间的一致性。如果在多次采样中某个事实出现不一致,或某部分细节变化极大,则该部分可能是幻觉。这本质是利用模型的随机性来暴露不确定性。
-
多模型互验:用另一个独立模型(如更大或不同结构的模型)作为验证器,对生成的各片段进行事实性或忠实性评分,标记出不一致的部分。
(4)基于源文对齐(针对忠实性幻觉)
-
细粒度对齐与覆盖分析:将生成文本和输入源文分别分割为事实单元,使用语义相似度匹配。未能在源文中找到足够相似证据的生成单元即为幻觉片段。可使用句子嵌入余弦相似度或基于跨度级别的蕴含系统。
-
引用检测:如果模型生成了引用(如“根据文档[1]”),可以自动检查引用内容是否确实出现在指定的文档中。引用内容与原文不符的部分就是幻觉。
(5)人工与辅助标注
-
定义精细的标注规范,让标注者逐句标注“是否包含幻觉”,并高亮幻觉 span。常用框架包括 FActScore、Attributed QA 等。这种方式最准确但成本高,常用于构建自动检测模型的训练数据。
-
可以使用工具辅助:先让自动系统提出候选幻觉片段,再人工确认。
组合策略:目前最可靠的方法是将生成文本原子化,再用 NLI 或搜索引擎原子级核查,结合模型不确定性信号和多次采样一致性,综合判断哪部分为幻觉,并给出逐句的事实性评分。
什么是“内在一致性幻觉”?例如模型自相矛盾。¶
内在一致性幻觉(Intrinsic Consistency Hallucination) 指模型在同一段输出中前后矛盾,违反了最基本的逻辑一致律,表现为自己推翻自己,或推理步骤之间存在冲突。这也属于内在幻觉的一种,因为判断它不需要外部知识,仅从输出文本本身就能发现矛盾。
典型表现与例子:
- 事实陈述矛盾:
-
开头说“巴黎是法国的首都”,但后文又说“法国的首都是马赛”。这直接在同一回答中提供两个完全相反的事实。
-
数值与逻辑矛盾:
-
“这个团队有 5 个人,包括小明、小红、小刚、小丽和小芳。团队总共 6 个人。” 前文列举了5人,后文却声称总人数为6。
-
推理链条矛盾:
-
在数学题中,模型可能写“因为 A > B,所以 B 比 A 大”,或“设 X=10,因此 X 小于 5”,推理过程推翻了前提。
-
立场或观点摇摆:
-
在分析利弊时,先声称“该政策对经济有显著正面影响”,随后在总结中说“该政策对经济几乎没有正面作用”,出现评价矛盾。
-
条件与结论错位:
- “如果下雨,我就不出门。今天下雨了,因此我决定出门散步。” 明显违反逻辑蕴含。
产生原因:
-
长距离依赖失效:自回归生成过程中,模型在生成较远的后文时已经“忘记”了前文的详细约束,尤其是对于长回答。
-
注意力分散:多头注意力可能在不同步骤聚焦于不同训练样本的模式,导致前部用了一种常用句式,后部用了另一种冲突句式。
-
概率最大化与模板混合:模型在生成时分别在不同位置选择了各自概率最高的短语或模板,这些模板单独看合理,但整体合并时互相抵触。
-
缺乏全局规划:模型没有显式的规划器,无法在生成前构建完整的知识快照或论证结构,边生成边拼凑,矛盾随之产生。
检测方法:
-
使用 NLI 模型将生成文本拆分为句子或命题,检查任意两个命题之间是否存在“矛盾”关系。
-
训练专门的一致性检测器,输入完整文本,输出矛盾片段的位置。
-
利用大模型自我检查,提示“找出文本中前后不一致的地方”。
内在一致性幻觉尤其容易在长文生成、多步推理、辩论性写作中出现,严重影响模型的可信度。
多轮对话中的幻觉有什么特殊表现?¶
多轮对话引入了对话历史、交互状态和渐进式信息更新,幻觉表现出一些单轮中不常见的形态。
特殊表现:
(1)记忆漂移(Memory Drift)
- 在长对话中,模型逐渐遗忘或歪曲对话早期确立的信息,表现为:
- 对用户的个人信息(姓名、偏好)记错、混淆。
- 对对话中已确认的事实(如日期、决定)进行重新编造或错误更新。
- 例如,用户在最初说“我的预算是5000元”,对话后期模型却建议“一万元的产品”,并声称“符合您的预算”。
(2)角色混淆与跨对话污染
-
在多用户或需要区分角色的对话中,模型错误地将发言者 A 的信息归于发言者 B,或把与当前对话无关的外部对话模式引入。
-
例如,在客服模拟中,模型把用户说的“我的产品是X”记成自己(系统)的产品,导致后续回答错乱。
(3)承诺兑现失败与虚假承诺
-
模型在前轮承诺会执行某个动作(如“我会为你查询天气”),但在后续轮次中要么未执行,要么生成一个虚构的查询结果。
-
这种幻觉破坏了交互信任,是对话助手的严重问题。
(4)对话状态的虚假设定
-
模型错误地认为自己处在一个某个任务阶段(如已经完成支付),而事实上该阶段并未发生,从而生成不恰当的确认或下一步指令。
-
例如,用户还没提供地址,模型却生成“您的订单已送达至XX”,并编造了地址。
(5)不恰当的信息持久化
- 模型把单次对话中临时提供的、之后应该被覆盖或删除的信息固化为持久知识,影响后续。例如,用户纠正了一次错误:“我不是老师,是工程师”,但几轮后模型又提到“作为老师,您应该...”。
(6)情感与立场的虚假延续
- 模型可能延续一个不存在的情绪或态度。如用户并没有表示不满,模型却持续道歉并假设用户生气了,并为此编造错误原因。
(7)对话目标遗忘与虚构任务
- 在开放聊天中,模型可能忘记原始目标,开始游离并虚构一个新的对话目标或场景,并围绕这个虚构目标生成一系列回复,使用户感到困惑。
原因分析:
-
上下文窗口限制和位置编码衰减使早期信息被淹没。
-
解码时对历史信息的关注不均匀,倾向于最近信息。
-
缺乏显式的对话状态跟踪机制。
缓解:引入结构化对话状态摘要、关键信息槽位填充、检索增强对话记忆,能够部分缓解多轮幻觉。
在代码生成中,幻觉通常以什么形式出现?¶
代码生成中的幻觉是指模型生成的代码看似合理,但实际上包含错误、使用不存在的 API、逻辑矛盾或无法正确运行。
主要形式:
(1)API 幻觉(API Hallucination)
-
调用不存在的库、类、函数或方法。例如,生成 Python 代码使用
pandas.read_csv()时写成pd.load_csv(),或者引用一个完全虚构的库import magic_data_lib。 -
参数名称或签名错误:如
open(file, mode='r')误写为open(file, read=True)。 -
这是最常见类型,源于训练数据中 API 的版本变化或模型拼凑不同的命名习惯。
(2)逻辑错误幻觉
- 算法逻辑本身错误,但代码语法正确且结构完整。比如:
- 边界条件处理错误(循环次数多1次或少1次)。
- 判断条件写反(
if x > 10写成if x < 10)。 -
变量混淆:错误地使用未定义变量或覆盖重要变量。
-
这类幻觉不易静态检测,往往需要测试才能发现。
(3)语义幻觉(Semantic Hallucination)
-
代码实现了与需求不符的功能。例如,要求实现排序,却生成了查找最大值的函数,或者要求创建 REST API 却生成了 GraphQL 端点。
-
生成的内容在语法上完美,但“理解”错了需求。
(4)安全幻觉
- 生成了存在明显安全漏洞的代码(如 SQL 注入、不安全反序列化),但模型在注释或解释中声称它是“安全的”。这种对安全属性的虚假声称是一种危险的幻觉。
(5)自我解释与代码不符
- 模型生成代码并附带解释注释,但注释内容与实际代码行为矛盾。例如,注释写“遍历列表进行累加”,实际代码却做了乘积。
(6)不完整实现与死代码
- 函数主体没有完成核心功能就
pass或return None,或者包含永远不会被执行的代码块,却在文档字符串中声称具有某种功能。
(7)状态幻觉
- 在多步交互式编程(如 Jupyter 环境)中,模型“记住”的变量状态与真实状态不一致,后续代码基于虚假的状态生成,导致连锁错误。
检测与缓解:
-
沙箱执行与测试用例验证是最有效的方法。
-
静态分析(类型检查、linter)可发现 API 幻觉和部分逻辑矛盾。
-
结合检索增强,让模型参考真实的 API 文档,可以大幅减少 API 幻觉。
多模态模型的幻觉有哪些独特类型?(如对象幻觉、关系幻觉)¶
多模态大模型(如视觉-语言模型)在整合图像和文本时,会产生跨模态特有的幻觉类型,这些幻觉与纯文本模型有本质不同。
独特类型包括:
(1)对象幻觉(Object Hallucination)
-
描述图像时,添加了图像中根本不存在的物体。
-
例如,一张只包含“狗和草地”的照片,模型却生成“一只狗在草地上,旁边有一个红色的球”,凭空多出“红色的球”。
-
细分:虚构物体,或把背景纹理误认为特定实体。
(2)属性幻觉(Attribute Hallucination)
-
对图像中存在物体的颜色、大小、材质、状态等属性的描述错误。
-
例如,描述“一辆蓝色汽车”而实际上汽车是黑色的;或声称“热狗上涂有番茄酱”,实际上没有。
(3)关系幻觉(Relation Hallucination)
-
错误描述物体之间的空间关系、动作关系或语义关系。
-
例如,“猫坐在椅子上”但实际猫在椅子旁边;“人拿着伞”但伞其实靠在墙边;或动作关系“男孩在踢足球”但他是用手扔。
(4)数量/计数幻觉(Counting Hallucination)
- 对图像中物体数量的描述错误。比如图中有3个人,模型说“5个人”;或“两匹马”但实际上只有一匹。
(5)文本与符号幻觉(OCR Hallucination)
-
在包含文字的场景图像中,模型读出或描述的文字内容与实际不符,凭空捏造词句或数字。
-
例如,路牌上写“STOP”,模型说是“YIELD”;图表中的数据标签被误读或编造。
(6)上下文与场景幻觉(Context Hallucination)
-
对整体场景、地点、事件的推理错误。例如,一张在办公室拍摄的图片,模型描述为“在咖啡厅开会”,或将晴天说成雨天。
-
这类幻觉常常源自模型根据局部特征过度推断,或者训练数据偏见。
(7)时序与因果幻觉(Temporal Hallucination)
- 在视频理解或多图像序列中,编造事件顺序或因果关系,比如把前一刻的动作和后一刻的结果颠倒,或者虚构未发生的动作过渡。
(8)深度与空间幻觉
- 对3D深度、相对距离判断失误导致描述错误,如“车在树的后面”但实际在树的前面。
根源:
-
视觉编码器的信息压缩损失。
-
跨模态对齐不充分,语言先验过强,使得模型在视觉不确定时依赖语言模式猜测,导致幻觉。
-
训练数据噪声、标注不精确。
缓解:更强的视觉编码器,细粒度的区域级对齐,引入检索增强生成,使用幻觉检测与纠正模块。
“反事实幻觉”是什么?模型为何会生成违背常识的内容?¶
反事实幻觉(Counterfactual Hallucination) 是指模型生成的陈述违背了普遍接受的物理规律、逻辑法则或世界运行的常识性规则,构成了与现实完全相反或不可能发生的情境。
举例:
-
“水在零上100摄氏度时结冰。”(违背物理常识)
-
“要治疗感冒,可以把人放进微波炉加热几分钟。”(违背安全常识)
-
“太阳围绕地球转。”(违背天文学常识)
-
“用铁锤把玻璃敲成柔软的布料。”(违背材料常识)
-
在故事中,一个人“同一时间出现在两个相隔千里以上的地方”。
模型为何会生成违背常识的内容?
-
训练数据中包含反事实、虚构和讽刺文本:模型从互联网文本中学习,包含大量科幻、奇幻小说、笑话、讽刺、错误信息等,这些文本中的反事实陈述与正常语言模式交织在一起,模型缺乏区分虚构和现实的内在机制,仅学习了语言模式,当被问及此类问题时可能模仿不合常理的模式。
-
过度泛化和模式拼接:模型是统计机器,没有真正的世界模型。当它遇到不常见问题或需要组合多个概念时,它会从相近的分布中采样,这可能导致物理上不合理的组合。如把“加热”和“杀菌”组合成“微波炉杀菌治感冒”,而忽略了安全性。
-
缺乏具身经验和常识推理:模型没有与物理世界交互的经验,其常识是从文本共现中习得的表面关联,不是基于感知运动图式的深层理解。因此,它无法真正理解“固体”、“液体”的物理内涵,容易输出违背物理的陈述。
-
解码策略的风险:为了追求流畅和低困惑度,模型倾向于在不确定时选择高频共现的词语组合,哪怕这种组合违反常识。如果训练数据中“大象”和“飞”因比喻或动画而共现,模型可能会在描述动物时说“大象在天空飞翔”。
-
安全对齐的不完备:虽然 RLHF 等对齐训练能过滤掉大部分明显的反常识有害输出,但不可能覆盖所有边际情境。反事实幻觉往往发生在看似无害的知识问答或解释性文本中,未被安全训练拦截。
重要性:反事实幻觉特别危险,因为它可能被用作错误信息传播,或在决策支持系统中导致灾难性建议。需要显式的物理常识知识库、逻辑规则检查以及对抗性测试来缓和。
模型能否意识到自己产生了幻觉?“自我认知”与幻觉的关系?¶
这涉及到模型的元认知(Metacognition)能力,即模型是否知道自己的知识边界,能否识别自身输出的不确定性或错误。
现状与能力:
(1)模型具有一定的自我一致性评估能力
-
当被明确要求自我检查或提供置信度时,大模型能提供一部分有用的信号。例如,通过提示“请判断你之前的回答是否正确,并解释”,模型有时能发现自身的逻辑矛盾或事实错误。但这种能力不稳定,高度依赖问题类型和提示方式。
-
研究发现,让模型扮演一个“批判者”角色,对自己的回答进行批评并修正,能提高最终答案的准确性,这意味着模型在某种程度上能够“意识到”部分错误。
(2)存在校准偏差:常常过于自信
-
模型在产生幻觉时,内部概率和输出的措辞往往表现出高置信度,说明它并“不自知”。模型的认知边界非常模糊:对于自己不知道的事情,它倾向于猜测(且猜测得确信),而非诚实地表达无知。
-
即使有时生成低概率 token,也不一定对应幻觉;幻觉片段可能概率极高。
(3)可以通过特殊训练增强“自我认知”
-
表达不确定性的微调:在训练数据中加入“我不知道”、“我无法确定”、“以下信息可能不准确”等样本,并训练模型在知识不确定时使用这些表达,可以教会模型一定程度的自我边界意识。
-
校准训练(Calibration Tuning):让模型不仅输出答案,同时输出置信度分数,并针对置信度与真实正确率的一致性进行优化,从而提高元认知准确性。
-
自我一致性信号:通过多次采样并比较答案的多样性,模型可以隐式地产生对答案确定性的估计。实际应用中,可以让模型生成多个回答,然后分析这些回答的语义一致性,作为是否可能幻觉的指标。这利用了集成和多样性的思想,但并非模型自身的直接“意识”。
(4)自我认知与幻觉的关系
-
如果模型具有完善的自我认知,它会在知识不足时选择放弃回答或表达不确定性,从而避免幻觉。然而,当前大模型并没有稳定的、领域通用的自我认知机制,产生幻觉时常伴随高自信的谎言。
-
理想的解决方案是构建模型内在的知识边界检测模块,或者通过外部知识验证反向训练模型使其意识到何时不该作答。
-
未来方向:元认知能力的注入,即让模型预测自己的错误概率,或者使用“口头不确定性表达”作为自我知识边界的代理。
结论:当前模型在有限提示下可展现初步的自我纠错能力,但远未达到可靠地“知道自己在胡说”。因此,依赖模型的自我认知来过滤幻觉目前只能作为辅助手段,必须配合外部验证。
偏见和幻觉有何联系与区别?¶
定义与核心区别:
-
偏见(Bias) 指模型输出中系统性地反映出的刻板印象、不公平关联、或针对特定群体的倾向性,通常源于训练数据的偏差。偏见可以是事实正确的陈述,但在社会意义上不公平或有害(如“护士通常是女性”虽具统计事实却强化性别刻板印象)。
-
幻觉(Hallucination) 指模型生成与事实或上下文相矛盾的内容,它是关于真实性的偏差,而不是社会公平性的偏差。
联系:
-
偏见可以导致幻觉:当模型受到刻板印象影响时,可能会对某些个体或群体产生错误的推断,形成事实幻觉。例如,模型假设一个叫“小明”的人是男性,因而编造出“小明娶了妻子”的事实,但实际上小明是女性,这就构成了幻觉。这种幻觉是由性别偏见驱动的。
-
幻觉可以强化偏见:模型编造关于特定群体的虚构负面事件或属性,这些虚假信息若被传播,会加深社会偏见,即使模型本身没有显式的偏见目标。
-
同源问题:两者都源自训练数据的缺陷——数据中包含错误、不均衡和有害内容。缓解偏见和减少幻觉都需要数据治理、对齐训练和过滤技术。
-
安全对齐中相互交织:在 RLHF 中,训练模型拒绝回答有害问题可以减少偏见驱动的回答,但过度拒绝可能诱发回避性幻觉(如胡说一个无害但无关的回答)。两者都需要平衡。
区别:
交叉情景:
-
当模型生成“某少数民族群体犯罪率更高”这一陈述时,如果该陈述没有事实依据,则既是偏见(种族刻板印象)又是幻觉(虚假陈述)。如果该陈述基于过时、有偏差的统计但现实中有相关数据,它可能不是严格的事实幻觉,但依然是偏见(可能选择性报道)。
-
从技术角度,偏见检测更侧重于词级关联、情感分析和公平性指标;幻觉检测侧重于事实三要素(主语-谓词-宾语)的准确性验证。
综合策略:负责任的大模型部署需要同时解决偏见和幻觉,即确保生成内容既公平又真实。
解释“来源幻觉”:模型声称信息来源但实际不存在。¶
来源幻觉(Source Hallucination / Citation Hallucination) 是指模型在生成文本时为某个主张提供了看似具体的引用或信息来源(如论文标题、作者、URL、机构名称、文档编号等),但这些来源部分或全部是虚构的,无法在现实世界中找到对应文献或链接。
典型表现:
-
虚构学术引用:模型可能会生成“根据 Smith et al. (2021) 的研究,……”,并附上看似合理的论文题目和期刊名称,但该论文根本不存在,或者作者、年份与真实论文不匹配。
-
编造 URL:模型给出一个形如“更多信息请参见 https://www.example.gov/report2023”的链接,但该网址并不存在或页面内容与所宣称的完全不同。
-
伪造法律条文或标准:声称“根据欧盟 GDPR 第99条……”,但 GDPR 根本没有第99条。
-
不存在的报告和机构:引用“世界卫生组织 2022 年《全球睡眠质量白皮书》”,实际上 WHO 从未发布该名称的报告。
-
内部文档编号幻觉:在企业环境中,模型可能会编造内部 wiki 页面或工单编号,如“参见内部文档 DOC-4567”,而该编号从未被创建。
产生原因:
-
语言模型的格式模仿:训练数据中包含大量带引用的学术文本、新闻报道和法律文书。模型学会了“有主张就应当有引用”的格式模式,但并未真正理解引用的验证逻辑。当需要增强可信度时,它会按照学到的格式“发明”一个看起来专业的来源。
-
实体与模式组合:模型会记忆一些真实存在的作者名、期刊名和标题关键词,然后进行随机拼接,形成一种“看起来像真的”的引用。例如把真实作者 Smith 和真实期刊 Nature 组合起来,编造一个题目。
-
缺乏检索和事实绑定:在闭卷生成中,模型没有任何机制将生成的引用与实际存在的数据库进行比对,因此无法自我校验来源的真实性。
危害:
-
严重损害信息可信度,传播伪科学或虚假法律依据。
-
让用户误以为信息已经过验证,妨碍批判性思考。
-
在学术、法律、医疗等严肃领域可能引发严重后果。
缓解方案:
-
强制模型在输出引用时,必须同时生成可以直接验证的标识(如 DOI),并配合检索系统实时确认。
-
在 RAG 系统中,只允许模型引用真正检索到的文档,并对其生成的不在文档内的引用进行惩罚。
-
训练模型区分“确定性来源”和“推测性来源”,并鼓励其坦诚无法提供准确引用。
为什么即使训练数据正确,模型仍可能产生幻觉?¶
训练数据完全正确并不能杜绝幻觉,因为幻觉的产生远不限于训练数据噪声,而与模型的学习方式、生成机制及数据分布本身有关。
(1)统计学习与真实性的根本鸿沟
-
语言模型的训练目标是最小化下一个 token 的预测损失,也就是模仿训练数据的分布,而不是学习“真相”函数。即使数据100%正确,模型学到的仍是“在上下文 C 下,token T 出现的概率”,而非“token T 所指的命题为真”。
-
对于相同的正确事实,可能存在多种语言表达,模型可能会混合这些表达,产生一个事实错误但语法合理的句子。例如,正确的数据包含“巴黎在法国”和“里昂在法国”,模型可能错误组合成“巴黎在法国,里昂是它的首都”。
(2)分布外泛化与组合性错误
-
即使单个事实都正确,当模型被要求组合两个或多个事实进行推理时,可能会产生在训练数据中从未出现过的错误组合。例如,训练数据中有“小明是工程师”和“小红是医生”,模型被问及“小明的职业”时可能回答正确,但被要求编故事时可能写“小明是医生”,因为在语言模式上“小明”和“医生”也是常见搭配。
-
这种组合性幻觉是因果模型和符号化推理所抑制的,而纯统计模型难以避免。
(3)不确定性下的最优猜测
- 对于训练数据覆盖不足的问题(即使数据正确,但覆盖不全面),模型仍会面临知识缺口。此时,解码策略(如贪心或温度采样)会促使模型输出概率最高的续写,这通常是一个看似合理的猜测。该猜测可能恰是错误的,形成了幻觉。换句话说,模型被逼着回答,只能用学到的语言模式“脑补”。
(4)训练中的遗忘与干扰
- 正确的知识虽然在训练数据中出现过,但由于模型容量限制、多任务学习干扰或后续微调的灾难性遗忘,这些知识可能被冲淡或扭曲。当再次被查询时,模型提取出的可能是与其它相似概念混合后的失真版本。
(5)上下文冲突与提示误导
- 即使用户提示中包含误导性假设,模型有时会顺应提示的“虚假前提”而生成延续,即便它自身参数中存储的正确知识与提示不符。例如,用户说“假设月亮是奶酪做的,那么它的密度是多少?”,模型可能会煞有介事地推算,生成一段看似科学但基于虚假前提的输出。这种“顺应性幻觉”在数据正确的前提下依然出现。
因此,消除训练数据错误只是减少幻觉的必要条件之一,远非充分条件。需要从目标函数、解码策略、推理架构等更根本的层面进行革新。
幻觉与“分布外泛化”有何关系?¶
分布外泛化(Out-of-Distribution Generalization) 指模型在面对与训练数据分布不同的输入时的表现。幻觉与分布外泛化有着深层的联系:幻觉可以视为模型在分布外输入上的一种特殊的泛化失败模式,即模型以高度自信产生了虚假但符合其内部语言分布的输出。
关系分解:
(1)分布外输入诱发幻觉
-
当用户提出的问题、要求的文本体裁、涉及的知识组合方式在训练数据中很少或从未出现时,模型便处于分布外。此时模型无法依赖记忆的事实,只能依赖学到的语言模式进行“类比”和“组合”。这种组合过程容易产生事实性幻觉,因为它没有真实世界分布作为约束。
-
例如,要求模型“用莎士比亚风格解释量子纠缠”,这种跨域组合可能让模型生成华丽的比喻,但也可能在科学事实上完全跑偏。
(2)模型对分布外的“知识空缺”以幻觉填补
-
在分布内,模型可以通过记忆或高频模式给出正确答案;在分布外,正确的生成需要强泛化——即模型需在零样本或小样本下进行事实性推理。当前大模型缺乏这种可靠的泛化机制,它们倾向于激活最接近的训练模式,但这可能对应一个错误的事实。
-
可以说,幻觉是模型在分布外“强行维持流畅度和有用性”的产物。如果模型直接拒绝回答或输出低概率空泛语句,就不会产生幻觉,但这会降低用户的“帮助感”。
(3)校准失败加剧分布外幻觉
- 在分布内,模型的置信度可能较好地校准(高置信度对应高准确率)。但在分布外,校准通常恶化,模型却依然给出高置信度预测。这种过度自信与错误答案的组合就是典型的幻觉。因此,分布外检测与不确定性估计是缓解幻觉的关键技术。
(4)分布外检测与幻觉缓解的协同
- 如果能有效判断输入是否为分布外,系统可以转而使用检索增强、人工介入或拒绝回答来避免幻觉。这相当于为模型建立“知识边界”感知。当前许多幻觉检测方法本质上是在衡量生成内容与训练分布(或检索到分布的近似)的距离。
(5)幻觉也暴露了模型分布外泛化的特征
- 幻觉内容并非是随机的,它往往反映了模型训练分布中的偏见和常见模式。这可以成为研究模型内部表征的窗口:通过分析分布外输入激发的幻觉类型,可以反向推断训练数据的构成和模型学到的虚假相关性。
结论:分布外泛化失败是幻觉产生的重要机制之一,而幻觉则是这种失败的显著表征。提升模型的分布外鲁棒性、结合检索或工具将输入拉回分布内,是减少幻觉的关键路径。
模型对数字、日期等精确信息的幻觉为何特别常见?¶
数字、日期、价格、数量等精确信息是最容易出现幻觉的类别之一,这由精确信息的独特属性以及模型的编码和生成方式共同决定。
(1)精确信息的低容错性和唯一性
-
对于普通文本,存在许多同义表达,即使用词不同也可能被接受。但对“2023年GDP增长率”来说,只有“2.7%”是正确的,“2.6%”或“2.8%”都是错误。不存在近似正确的余地,因此任何偏离都被归类为幻觉。
-
这种唯一正确性使得模型无法通过近义替换来搪塞,稍微的参数记忆偏差即成为显式幻觉。
(2)数字被 tokenizer 分割成碎片
-
多数 tokenizer 将数字拆分为不直观的 token,例如“2023”可能被拆成“20”和“23”,或更细粒度。模型必须学习这些数字 token 之间的组合关系,而不能像处理一个整体实体那样直接检索。这增加了记忆和生成准确数字的难度。
-
日期的格式多变(“2023-01-01”、“1 Jan 2023”、“January 1st, 2023”),模型需要在不同格式间转换,更容易产生错位。
(3)数字在训练数据中高度分散且稀疏
-
每个具体数字在训练语料中出现的频率远低于普通词语,且多数数字实例是年份、统计数字等,模型难以建立对每一个精确数字的扎实记忆。对于长尾数字,模型可能“见过”但印象模糊,最终在生成时被常见数字(如 100, 0, 2020)所替代。
-
数字还存在“近似值干扰”:模型可能记得某数值的范围或数量级,但记不清精确值,于是生成一个合理但不准确的数值,造成幻觉。
(4)缺乏对数字的专门归纳偏置
-
Transformer 架构本身并没有内建的数字计算模块,而是将数字视为普通 token。模型主要靠位置编码和注意力模式去建立数与数之间的关系,缺乏符号化的数值推理器。这让模型在需要精确计算、比较或生成数字时,非常依赖不太可靠的统计记忆,而不是确定性的算法过程。
-
即使模型能从上下文中提取数字,其复制(copy)能力在长文本中也容易出错,发生数字串错位。
(5)训练目标对数字不友好
-
语言建模目标对数字的微小误差(如将“1900”错成“1901”)的损失惩罚与普通词语错误相同,但数字错误造成的语义偏差往往更大。模型没有受到专门激励去精确还原数字。
-
另外,在训练数据中,许多数字本身可能就不精确(近似、估算),模型学会了对数字“取整”或模棱两可的表达,这在要求精确的场合就变成了幻觉。
缓解方向:
-
结合检索增强,从可靠知识库中直接提取精确数字而非依赖模型记忆。
-
使用工具学习,允许模型生成可执行的计算代码来推导数字,而不是纯文本生成。
-
引入特殊的数字 token 化方法和位置编码,强化数字复制和推理能力。
在低资源语言上,模型幻觉是否更严重?为什么?¶
是的,幻觉在低资源语言(Low-Resource Languages)上通常更严重且更频繁。 这是由训练数据不平衡、表征质量差以及生成控制弱等多方面因素造成的。
主要原因:
(1)训练数据稀缺与质量低下
-
低资源语言在预训练语料库中的占比极低(有时不到0.1%),模型对这些语言的语法、词汇和世界知识的接触严重不足。即使在数据中出现的文本,也可能包含大量错误、非标准拼写或混入其他语言。
-
数据稀缺直接导致模型对该语言的事实记忆几乎为零,因此面对任何需要知识的提问,模型都会严重依赖从高资源语言(通常是英语)中迁移过来的知识,并尝试用目标语言重新表达。这种“翻译+生成”的过程极易引入事实歪曲和表达幻觉。
(2)跨语言知识迁移的失真
-
模型的主要知识库以英语等资源丰富语言为基础构建。当被用低资源语言询问时,模型内部需经过“问题理解(可能转化为英语表示)→ 英语知识检索 → 答案生成为低资源语言”的隐式管道。在这一过程中,实体、数字、专有名词可能会被错误翻译或转换,导致最终输出包含虚构或错误的本地化信息。
-
例如,问“卢旺达的首都是哪里?”用基尼亚卢旺达语问,模型可能从英语知识知道是 Kigali,但在生成基尼亚卢旺达语回答时可能拼写错误或使用了一个不存在的变体名。
(3)语言模型本身对低资源语言的生成控制力弱
-
模型对低资源语言的 token 概率估计较为不准,流畅度和连贯性本身就较差。当连贯性受损时,模型会产生更多不合逻辑的跳跃,由此产生大量内在幻觉(前后矛盾、逻辑断裂)。
-
同时,由于低资源语言的语法和词汇约束弱,模型更容易“跑偏”,生成与输入无关的内容,这也构成忠实性幻觉。
(4)评估与反馈的缺乏
- 在模型的对齐训练(RLHF)中,低资源语言的偏好数据极其有限,导致模型在安全、事实性和拒绝策略上的对齐主要面向高资源语言。因此,低资源语言中更可能出现幻觉、不安全输出或不愿说“不知道”。
(5)数字和实体的文化语境错位
- 模型可能生成对高资源语言文化合理但对低资源语言社群荒谬的陈述,例如把西方节日、地点、人名强加到完全不相关的语境中,形成文化性幻觉。
特殊表现:
-
语言混淆幻觉:模型可能在中途切换成高资源语言,或者输出混合语言,其中包含从高资源语言直接复制的事实片段,这在单语环境中就是一种幻觉(输出不可用)。
-
虚假的文化等价:编造本地化后的虚假实体,如“肯尼亚著名诗人 Juma Otieno”可能是一个合成出来的、不存在的名字。
缓解:增加低资源语言的训练语料和高质量对齐数据,使用跨语言检索增强生成(多语言RAG),以及引入母语者参与的数据标注和红队测试。
什么是“知识边界幻觉”?模型何时应该承认不知道?¶
知识边界幻觉(Knowledge Boundary Hallucination) 指模型在其知识覆盖范围之外,无法识别自身知识的极限,从而对超出其可靠知识边界的问题进行猜测或编造,而不是表达不确定性或拒绝回答。这是一种“不知而强以为知”的现象。
核心特征:
-
模型对问题所涉及的事实缺乏可靠的参数记忆,或者该信息超出其训练数据截止日期。
-
模型本应输出“我不知道”、“我无法获取该信息”或表达概率性不确定,但实际上却生成了肯定、详细且看似合理的回答。
-
这种幻觉直接反映了模型缺乏元认知能力——即监视自身知识状态并据此调整行为的能力。
何时应该承认不知道?
从负责任 AI 的角度,模型应在以下情况主动表达知识边界:
-
时间敏感信息超出截止日期:当被问及模型训练数据截止日期之后的事件(例如“2024年世界杯冠军”),模型应明确指出其知识截止日期,避免编造。
-
涉及实时或私密数据:例如股票即时价格、个人医疗记录、未公开的企业内部情报。模型不可能知道这些,应拒绝猜测。
-
高度小众、长尾的知识:如某一小村庄某年某日的天气、非常罕见的疾病细节、不知名人物的生平,模型训练数据中大概率没有,且容易混淆,应该表达不确定性。
-
问题前提为假或无法验证:如“为什么独角兽的角能治愈癌症?”模型应指出前提有误,而不是就假前提进行推导。
-
复杂多跳推理缺乏确定性证据:如果推理链的任何一步基于不确定的猜测,模型应该在输出中显式说明该不确定性,或者放弃作答。
-
高风险领域:在医疗、法律、金融等建议中,即使模型有一定的知识,也应声明自己的局限性,避免用户将其视为权威。
为何当前模型做不到:
-
训练数据中缺少表示不确定性和拒绝回答的自然示范(人类对话中人们不常直接说“我不知道”)。
-
对齐训练时,模型获得的奖励偏向于“有用”和“有帮助”,这使得模型倾向于提供任何可能的答案,而不是承认无知。
-
校准不佳:模型在知识边界上对自己的不确定性没有正确估计,反而常表现出高置信度。
改进方向:
-
训练模型生成带有置信度的回答,或学习输出特殊拒绝 token。
-
微调时引入知识边界数据集:包含许多需要承认不知道的样本,并让模型模仿回答“I'm not sure, but here is some related information...”。
-
外部知识锚定:结合检索增强,若检索得分低,则提示模型表达不确定性。
幻觉是否一定是坏事?有没有“有用的幻觉”(如创意写作)?¶
不,幻觉并非绝对有害。在适当场景下,幻觉可以成为创造性、想象力和多样性的驱动力,即“有用的幻觉”(Constructive Hallucination)或“受控幻觉”。
幻觉的双重属性:
-
有害幻觉:当任务要求真实性、事实准确性、对源文的忠实度时(如医疗咨询、新闻摘要、法律文书、代码生成、学术写作),任何偏离事实的生成都是有害的。
-
有用幻觉:在需要发散思维、艺术创作、娱乐等场景中,模型“编造”内容的能力恰恰是核心价值所在。
有用幻觉的场景与形式:
(1)创意写作与文学
-
写小说、诗歌、剧本时,模型需要构造虚构的人物、事件、世界。这种对现实的偏离是创造,而非错误。例如,让模型描绘“龙与魔法师的对决”就是在可控地运用幻觉能力。
-
模型可以生成超现实的情节、不存在的科技产品设定,丰富艺术表现。
(2)头脑风暴与创新思维
-
在构思新产品、广告创意、解决方案时,模型提出的“虚构案例”或“不存在的功能”可能启发人类的创新思路。即使这些建议本身不真实,但可以打破思维定式。
-
例如,问“如何设计一款让人可以飞行的鞋?”模型会生成基于反重力的设想,虽然不真实但有启发性。
(3)教育和解释中的类比与故事
-
为了解释复杂概念,模型可能会编造一个简化的故事或类比,其中包含事实不完全精确的元素,但有效传递了核心思想。例如用“一只看不见的手”解释市场调节,即使手并不存在。
-
关键在于使用者清楚这些是教学工具,而非事实陈述。
(4)对话中的社交润滑
- 在闲聊时,模型生成一些无害的小故事、虚构的个人经历(如“我有个朋友曾经……”),能让人机交互更自然,增强亲和力,这在社交对话中是合意的。
(5)数据增强与模拟
- 用模型生成虚构的训练数据(例如稀有事件的对话样本、合成患者病例用于隐私保护训练),这类幻觉直接服务于下游任务性能提升。
边界与控制:
-
“有用幻觉”的前提是用户和开发者明确知晓并同意在该场景下接受虚构。这就需要在系统设计时划分“事实模式”与“创意模式”。
-
在创意模式下,可以通过系统提示(如“请发挥你的想象力,不必拘泥于现实”)开启受控幻觉;在事实模式下,则通过检索增强、事实核查和拒绝策略严控幻觉。
-
可解释性:告知用户生成内容的性质,尤其是在真假边界模糊的应用中。
结论:幻觉是生成式模型的内在能力光谱的一端,其价值取决于语境。关键在于赋予开发者控制能力,让幻觉在正确的任务上成为“想象力”,在错误的任务上则被严格抑制。
请对幻觉现象进行系统分类,并说明每类的特征。¶
综合以上讨论,可从多个维度对幻觉进行系统分类,形成多维分类体系。
第一维度:按事实性与忠实性
-
事实性幻觉:生成内容与客观世界事实相悖(外在)。特征:需要外部知识验证,涉及实体、数字、事件等。
-
忠实性幻觉:生成内容与用户输入、上下文或指令不一致(内在)。特征:可从输入直接判断,包括添加、遗漏、歪曲。
第二维度:按信息源冲突类型
-
内在幻觉:输出与输入上下文冲突(如摘要中加入原文没有的信息)。
-
外在幻觉:输出与外部知识冲突(编造世界知识)。
第三维度:按内容表现与粒度
-
实体幻觉:捏造不存在的实体(人名、地名、产品、文献)。
-
属性幻觉:错误描述实体属性(颜色、大小、时间)。
-
关系幻觉:错误描述实体间关系(空间、因果、社会关系)。
-
数量幻觉:计数、数值错误。
-
来源幻觉:伪造引用、链接、来源文档。
-
逻辑/一致性幻觉:自相矛盾,推理错误。
-
反事实幻觉:违反物理规律或常识。
-
知识边界幻觉:超出知识范围仍强行回答。
第四维度:按生成机制与成因
-
知识缺失型:因训练数据未包含或模型遗忘导致。
-
组合泛化型:错误组合两个正确事实形成错误。
-
解码诱导型:采样/贪心策略导致的错误放大。
-
上下文干扰型:长上下文遗忘或注意力分散导致的不忠实。
-
跨模态失配型(多模态):视觉-语言对齐错误。
-
偏见驱动型:刻板印象导致的事实扭曲。
第五维度:按适用任务和场景
-
闭卷幻觉:无检索辅助,依赖参数知识时的幻觉。
-
RAG 幻觉:检索增强系统中特有的混淆、忽略证据、伪造引用等。
-
多轮对话幻觉:记忆漂移、角色混淆、状态虚设。
-
代码生成幻觉:API幻觉、逻辑幻觉、安全幻觉。
-
多模态幻觉:对象幻觉、关系幻觉、OCR幻觉。
-
低资源语言幻觉:文化错配、跨语言知识迁移错误。
第六维度:按价值与风险
-
有害幻觉:在需要真实性的任务中导致误导和伤害。
-
有用幻觉(受控虚构):在创意、头脑风暴、社交对话中提供想象力和多样性。
这种多维分类有助于针对性地设计检测和缓解策略:不同幻觉类型需要不同的验证工具(知识图谱、NLI、执行反馈等),也有不同的容忍标准和应对手段。系统梳理幻觉全貌,是构建可信赖大模型的基石。