核心观点
幻觉是基础模型概率生成机制的必然结果,但可以通过RAG、提示优化和后处理验证等多层防护策略有效缓解。
正如Chip Huyen在《AI Engineering: Building Applications with Foundation Models》第3章所写的:
“Hallucinations are a direct consequence of the probabilistic nature of foundation models.”
理解幻觉的关键在于:它不是bug,而是feature。模型生成流畅、合理的文本,但可能包含错误信息,因为模型学习的是语言模式,而非事实知识。因此,缓解幻觉的策略不是消除它(可能不现实),而是通过多层防护将其控制在可接受水平:用RAG提供真实知识源,用提示工程引导模型行为,用后处理验证检测和修正错误。
一、什么是幻觉?
1.1 定义与类型
定义:幻觉是指AI模型生成与输入不一致、与事实不符,或完全虚构的内容。
幻觉有四种常见类型:
- 事实性幻觉(生成错误的事实信息,如模型说"爱因斯坦在1920年获得诺贝尔奖"实际是1921年,严重性高,可能误导用户)、
- 上下文幻觉(生成与输入上下文不一致的内容,如用户问"我的订单状态",模型回答"您的订单已发货"但实际未发货,严重性高,直接业务影响)、
- 引用幻觉(生成虚假的引用或来源,如模型说"根据2023年《Nature》论文…"但该论文不存在,严重性中高,损害可信度)、
- 逻辑幻觉(生成逻辑矛盾的内容,如先说"A比B大"后说"B比A大",严重性中,可能被用户发现)。
理解这些类型很重要,因为不同类型的幻觉需要不同的检测和缓解策略。事实性幻觉需要事实核查,上下文幻觉需要上下文验证,引用幻觉需要引用验证,逻辑幻觉需要一致性检查。
1.2 幻觉 vs 错误
幻觉和错误的区别在于:错误是模型知道正确答案但输出错误(可能是训练问题),幻觉是模型不知道正确答案,但生成看似合理的虚假信息。
关键特征是:幻觉通常看起来合理(流畅、符合语法),可能部分正确(混合真实和虚假信息),在开放域任务中更常见(如创意写作 vs 封闭分类)。
这个区别很重要,因为错误的缓解方法是改进训练,而幻觉的缓解方法是提供真实知识源(如RAG)或后处理验证。
二、幻觉的成因:为什么AI会产生幻觉?
2.1 根本原因:概率生成机制
幻觉的根本原因是概率生成机制:基础模型是自回归语言模型,基于概率分布预测下一个token;模型学习的是统计模式(哪些词经常一起出现),而非事实知识;生成过程是采样(从概率分布中随机选择),而非确定性查找。
书籍第3章解释:模型被训练为"完成文本",而不是"回答准确"。给定上下文"I love…“,模型可能生成"street food”(因为训练数据中常见),即使这不是用户想要的答案。这就是为什么模型会生成看似合理但错误的信息——它基于统计模式,而非事实知识。这个解释揭示了幻觉的根本原因:模型学习的是语言模式,而非事实知识。
2.2 训练数据问题
训练数据问题包括数据质量和数据规模问题。
数据质量问题有:
- 噪声数据(训练数据包含错误信息,如网络爬取的错误内容)、
- 过时数据(训练数据截止日期后的事实变化,如GPT-4训练数据到2023年4月)、
- 偏见数据(数据不平衡导致模型偏向某些观点)。
数据规模问题有:
- 数据不足(某些领域数据稀缺,模型"编造"信息填补空白)、
- 数据冲突(同一事实有多个版本,模型混淆)。
这些问题导致模型学习到错误或过时的信息,从而产生幻觉。缓解方法是使用高质量、最新、平衡的训练数据,或通过RAG注入真实知识源。
2.3 模型架构限制
模型架构有三个核心限制导致幻觉:
- 上下文窗口限制(模型只能"看到"有限上下文,如GPT-4的128K tokens,超出窗口的信息被遗忘,可能导致不一致)、
- 注意力机制(注意力可能关注错误的部分,导致生成无关内容)、
- 缺乏外部知识(模型是"闭卷考试",仅依赖训练数据,无法访问实时信息,知识更新需要重新训练,成本高昂)。
这三个限制相互影响:上下文窗口限制导致模型无法看到完整信息,注意力机制可能关注错误部分,缺乏外部知识导致模型依赖过时记忆。这就是为什么RAG如此重要——它通过外部知识库解决了这三个限制,让模型能够访问实时、准确的信息。
2.4 提示工程问题
提示工程问题有三个主要类型:
- 模糊提示(提示不清晰,模型"猜测"意图,比如"告诉我关于AI的信息"太宽泛,可能生成错误信息)、
- 提示注入(恶意用户输入覆盖系统提示,导致模型生成不当内容)、
- 上下文污染(之前的对话包含错误信息,模型延续错误)。
这三个问题都源于提示设计不当:
- 模糊提示让模型不确定要生成什么,可能编造信息;
- 提示注入让恶意用户控制模型行为;
- 上下文污染让错误信息在对话中传播。
因此,提示工程优化很重要,需要明确约束、隔离用户输入、清理上下文。
2.5 采样策略问题:低温度+确定性采样
温度参数过高会导致问题:高温度(如>1.0)增加随机性,可能生成不相关或错误内容。
书籍第3章建议:
事实性任务用低温度(0.2-0.5),这样可以减少随机性,提高输出的准确性和一致性。这个建议基于大量实验验证,能够有效减少幻觉。
除了温度参数,Top-p/Top-k采样策略也可能导致问题:采样策略可能选择低概率但错误的token,因为采样是从概率分布中随机选择,即使概率低也可能被选中。
因此,对于事实性任务,应该使用低温度配合确定性采样(如greedy decoding),而不是随机采样。
三、如何检测幻觉?
3.1 自动检测方法
3.1.1 事实核查(Fact-Checking)
方法:将模型输出与可信知识库对比
知识库来源有三种:Wikipedia API(通用事实,适合一般性问题)、专业数据库(如医学数据库PubMed,适合专业领域)、企业内部知识库(公司特定信息,适合内部应用)。
选择哪种来源取决于你的应用场景:
- 如果是一般问答,用Wikipedia;
- 如果是专业领域,用专业数据库;
- 如果是企业内部应用,用内部知识库。
事实核查的局限性有两个:知识库可能不完整(某些信息可能不在知识库中,导致误判)、实时信息可能缺失(知识库更新滞后,最新信息可能缺失)。因此,事实核查应该作为初步筛选,而不是唯一验证方法,需要结合其他检测方法。
3.1.2 一致性检查(Consistency Checking)
一致性检查从三个维度进行:
- 时间一致性(日期不矛盾,比如不能说"2020年发生的事件在2019年之前")、
- 数值一致性(数字计算正确,比如总数等于各部分之和)、
- 逻辑一致性(推理链合理,比如不能说"A比B大"和"B比A大"同时成立)。
这三个维度覆盖了输出一致性的核心方面,能够发现大部分逻辑错误。
3.1.3 引用验证(Citation Verification)
方法:验证模型生成的引用是否真实
引用验证工具有两种:DOI验证(学术论文DOI,确保论文真实存在)、URL检查(网页链接有效性,确保链接可访问)。这两种工具帮你快速验证引用的真实性,避免引用幻觉。如果引用无法验证,应该标记为可疑或移除。
3.1.4 置信度评分(Confidence Scoring)
方法:模型自身评估输出可信度
置信度评分策略很简单:低置信度阈值(< 7分,标记为可疑,需要进一步验证)、高置信度(> 9分,可能可靠,但仍需谨慎)。这个策略帮你快速筛选可疑输出,但记住置信度评分有局限性:模型可能高估自己(过度自信),即使高置信度也可能出错。因此,置信度评分应该作为辅助工具,而不是唯一判断标准。
3.2 人类检测方法
人类检测方法有三种,根据成本和适用场景选择:
- 专家审查(领域专家验证输出准确性,成本高$1-10/样本,适用高风险场景如医疗、法律,因为错误成本高,必须保证准确性)、
- 众包评估(多人评估投票决定,成本中等$0.1-1/样本,适用中等风险场景,通过多人投票减少主观性)、
- 用户反馈(用户标记错误输出,成本低免费但需用户参与,适用所有场景作为补充,因为用户是最终使用者,他们的反馈最有价值)。
这三种方法互补:专家审查保证关键场景的质量,众包评估平衡成本和准确性,用户反馈提供持续改进的数据。选择哪种方法取决于你的应用场景和成本预算。
3.3 混合检测策略
混合检测策略的推荐流程很简单:
- 自动预筛选(事实核查加一致性检查,快速识别可疑输出)、
- 置信度过滤(低置信度输出标记,进一步筛选)、
- 人类验证(可疑输出由专家审查,确保准确性)、
- 持续学习(用检测结果改进模型,形成反馈循环)。
这个流程确保效率和质量的平衡,先用低成本方法筛选,再用高成本方法验证。
成本优化策略很关键:自动检测成本低($0.001/样本),人类验证成本高($1/样本),所以策略是只对自动检测标记的样本进行人类验证。这样可以将人类验证成本降低90%以上,因为大部分输出通过自动检测,只有少数可疑输出需要人类验证。这种分层策略能够最大化检测效率,同时控制成本。
四、如何缓解幻觉?
4.1 提示工程优化
4.1.1 明确约束
方法:在提示中明确要求准确性
示例:
不好的提示:
"告诉我关于AI的信息"
好的提示:
"基于以下文档,准确回答关于AI的问题。如果信息不在文档中,请说'我不知道'。
文档:[文档内容]
问题:[用户问题]"
明确约束的关键要素有三个:明确来源(指定信息源,告诉模型只能基于这些来源回答)、不确定性表达(允许说"不知道",避免模型编造信息)、事实核查要求(要求验证信息,确保准确性)。这三个要素确保模型不会编造信息,如果信息不在指定来源中,模型应该诚实地说"不知道",而不是猜测。
4.1.2 Few-Shot示例
方法:提供正确示例,引导模型行为
示例:
示例1:
问题:爱因斯坦何时获得诺贝尔奖?
回答:根据可靠来源,爱因斯坦在1921年获得诺贝尔物理学奖。
示例2:
问题:[用户问题]
回答:[模型生成]
效果:模型学习示例中的准确性和谨慎表达
4.1.3 Chain-of-Thought(思维链)
方法:要求模型展示推理过程
示例:
提示:
"请逐步推理并回答:
1. 问题是什么?
2. 需要什么信息?
3. 信息来自哪里?
4. 最终答案是什么?"
优势:暴露推理错误,便于检测幻觉
4.2 检索增强生成(RAG)
核心思想:不让模型"编造",而是从真实数据源检索
RAG的实施流程很简单:检索(从知识库如向量数据库检索相关文档,找到与查询最相关的信息)、注入(将检索到的文档作为上下文输入模型,让模型看到真实信息)、生成(模型基于真实文档生成回答,而不是依赖训练时的记忆)。这个流程确保模型基于真实数据生成,而不是编造信息。
RAG的优势很明显:减少幻觉(模型基于真实数据,而非记忆,大大降低幻觉风险)、可追溯(可以验证信息来源,每个回答都可以追溯到具体文档)、实时更新(知识库可更新,无需重训模型,保持信息新鲜度)。这三个优势让RAG成为缓解幻觉最有效的方法之一。
书籍第3章强调:RAG是缓解幻觉的最有效方法之一。这是因为RAG让模型基于真实文档生成,而不是依赖训练时的记忆,大大减少了幻觉风险。
4.3 模型微调优化
方法:在高质量、准确的数据上微调模型
模型微调优化的数据要求有三个:
- 准确性(人工验证的事实,确保训练数据准确)、
- 多样性(覆盖不同领域,确保模型泛化能力)、
- 不确定性标注(标注哪些问题模型应该回答"不知道",避免模型编造信息)。
这三个要求确保微调后的模型既准确又诚实,不会为了回答而编造信息。
微调策略有三种:
- 指令微调(训练模型遵循"只说知道的内容",避免编造)、
- 对比学习(对比正确和错误答案,让模型学习区分)、
- 强化学习(奖励准确回答,惩罚幻觉,让模型倾向于准确)。
这三种策略可以单独使用,也可以组合使用,根据你的需求选择。
微调成本高($1000-10000),但长期收益大,因为微调后的模型在特定任务上表现更好,幻觉率更低。如果任务高度特定且数据充足,微调是值得的投资。
4.4 后处理验证
方法:生成后验证和修正
后处理验证的策略有三种:
- 自动修正(用检索到的信息替换可疑内容,直接修正错误)、
- 标记不确定(对无法验证的内容添加警告,让用户知道这部分信息不确定)、
- 拒绝生成(如果验证失败率高,拒绝回答,避免传播错误信息)。
这三种策略根据验证结果选择:如果能够修正,自动修正;如果无法验证,标记不确定;如果错误太多,拒绝生成。这样能够最大化输出质量,同时保持透明度。
4.5 系统架构设计
4.5.1 多模型验证
方法:用多个模型交叉验证
多模型验证的优势很明显:多个模型同时出错的概率低,因为不同模型有不同的偏见和错误模式,如果多个模型都给出相同答案,这个答案更可靠。但成本也相应增加(3倍推理成本),因为需要调用多个模型。因此,多模型验证适合高风险场景,如医疗、法律,错误成本高,值得额外投入。
4.5.2 分层验证
方法:不同风险级别用不同验证策略
分层验证的实施根据风险级别选择策略:
- 低风险场景(如创意写作)用自动检测,因为错误影响小,成本敏感;
- 中风险场景(如内容摘要)用自动检测加抽样人工验证,平衡效率和准确性;
- 高风险场景(如医疗建议)必须人工验证,因为错误可能导致严重后果,不能依赖自动检测。
这种分层策略能够最大化验证效率,同时保证关键场景的质量。
4.6 用户界面设计
用户界面设计的透明度有三个要素:
- 显示置信度(告诉用户答案的可靠性,让用户知道答案的可信程度)、
- 显示来源(展示信息来自哪里,让用户能够验证)、
- 不确定性表达(用"可能"、"根据…"等表达,避免绝对化表述)。
这三个要素确保用户了解答案的可靠性,不会盲目信任。
示例UI可以这样设计:回答显示"根据2023年《Nature》论文,AI在医疗诊断中准确率达到90%“,同时显示”[置信度: 85%] [来源: 已验证] [查看原文]",让用户能够看到置信度、来源和原文链接。这样用户可以根据置信度决定是否信任答案,根据来源验证信息,根据原文深入了解。
用户教育也很重要:
- 提示用户验证关键信息(特别是重要决策,提醒用户验证)、
- 提供"报告错误"功能(让用户能够反馈错误,形成反馈循环)。
这两个措施确保用户不会盲目信任AI输出,同时能够帮助改进系统。
五、幻觉缓解最佳实践
5.1 综合策略
综合策略的推荐组合有四个层次:
- RAG作为基础(减少幻觉根源,让模型基于真实数据生成)、
- 提示优化(明确约束和示例,引导模型行为)、
- 后处理验证(自动检测和修正,确保输出质量)、
- 人类审核(高风险场景必须,保证关键场景的准确性)。
这四个层次形成多层防护:RAG从源头减少幻觉,提示优化引导正确行为,后处理验证检测和修正错误,人类审核保证关键质量。这种多层防护策略确保即使某一层失效,其他层也能提供保护。
5.2 持续监控
持续监控需要跟踪三个核心指标:
- 幻觉率(检测到的幻觉比例,反映系统整体质量)、
- 用户报告(用户标记的错误,反映实际使用中的问题)、
- 置信度分布(模型输出的置信度,反映模型对输出的信心)。
这三个指标从不同角度反映系统状态:幻觉率反映系统质量,用户报告反映用户体验,置信度分布反映模型行为。
警报机制根据指标设置阈值:
- 幻觉率>5%触发调查(说明系统质量下降,需要立即检查)、
- 用户报告增加立即检查(说明用户发现问题,需要快速响应)。
这两个警报确保问题能够及时发现和处理,避免问题扩大。
5.3 迭代改进
迭代改进的反馈循环很简单:
- 检测幻觉(发现问题)、分析原因(数据问题?提示问题?模型问题?)、
- 实施缓解措施(根据原因选择对应方法)、
- 重新评估(验证缓解效果)、迭代(持续改进)。
这个循环确保系统不断改进,因为幻觉是持续的问题,需要持续应对。每次迭代都能发现新问题、应用新方法、验证新效果,最终将幻觉控制在可接受水平。
六、实战案例:幻觉缓解系统设计
案例:医疗问答系统
医疗问答系统的挑战很明显:医疗信息错误可能导致严重后果,甚至危及生命,所以必须严格控制幻觉。解决方案包括四个层面:
- RAG系统(知识库是PubMed医学论文,检索相关论文摘要,生成基于论文内容,确保信息来自权威来源)、
- 多层验证(自动事实核查用PubMed API验证,人工医生审核所有回答,确保双重验证)、
- 用户界面(显示"此信息仅供参考,不构成医疗建议"免责声明,显示论文引用让用户验证,显示可靠性评分让用户判断)、
- 监控(每日检查幻觉率,用户反馈优先处理,确保问题及时发现)。
这个解决方案展示了高风险场景的完整防护策略: RAG提供真实知识源,多层验证保证准确性,用户界面确保透明度,监控保证持续改进。
结果:幻觉率从15%降至<2%,说明系统化方法能够有效缓解幻觉。这个案例证明,即使在高风险场景,通过系统化的多层防护,也能将幻觉控制在可接受水平。
七、总结
幻觉是基础模型的固有挑战,但可以通过系统方法缓解。
成功的幻觉缓解策略有四个核心要素:
- 理解成因(概率生成、数据问题、架构限制,只有理解成因才能对症下药)、
- 检测方法(自动检测如事实核查、一致性检查,加上人类验证,形成完整检测体系)、
- 缓解策略(RAG减少根源、提示优化引导行为、后处理验证修正错误、架构设计多层防护,形成系统化缓解方案)、
- 持续改进(监控发现问题、反馈收集数据、迭代持续优化,形成反馈循环)。
关键原则有四个:
- 预防优于检测(用RAG减少幻觉根源,比事后检测更有效)、
- 多层防护(不依赖单一方法,多道防线确保可靠性)、
- 透明度(告诉用户不确定性,让用户能够判断)、
- 持续学习(用检测结果改进系统,形成反馈循环)。
这四个原则指导你设计幻觉缓解系统,确保系统既有效又可持续。
记住:完全消除幻觉可能不现实,但可以将其控制在可接受水平。作为架构师,你的目标是设计系统,让幻觉的影响最小化,同时保持模型的实用性和效率。通过系统化的方法,你能够构建可靠的AI系统,即使面对幻觉挑战,也能保持高质量输出。
参考:《AI Engineering: Building Applications with Foundation Models》 Chip Huyen

被折叠的 条评论
为什么被折叠?



