跳到主要内容

模型幻觉

模型幻觉是指模型生成了看似合理、但与事实、输入材料或可用工具不符的内容。模型按概率生成文本,没有“我不知道”的内在机制,所以幻觉无法彻底消除,只能通过提供证据、约束输出、校验结果和设计兜底来控制影响。本文讲幻觉的类型、成因和分层缓解方法;工具调用中的幻觉见 Function Calling,评估模型自身的幻觉见 Agent 评估。

1. 面试核心​

先记住这几条,再读正文
  • 幻觉分为事实性幻觉(与世界知识不符)、忠实性幻觉(与提供的材料或指令不符)和行动幻觉(编造工具、参数或执行结果)。区分类型才能选对办法。
  • 成因:模型按概率生成,训练目标不惩罚“自信地编造”;训练数据有缺失、过时或错误;上下文缺少证据或包含干扰材料;指令要求必须给出答案。
  • 缓解按链路分层:输入侧提供证据并允许拒答,生成侧要求引用和结构化输出,输出侧做规则和事实校验,业务侧按风险设置人工确认和兜底。卡 · 类型与成因
  • RAG 场景先区分是检索没找到证据,还是有证据但生成没有忠实使用,两者的修复方法不同。卡 · 分层缓解
  • 上线后无法保证零幻觉,要用置信度和风险等级决定是否自动执行,高风险操作需要确认,并记录可追溯的证据。卡 · 类型与成因

2. 类型与成因​

类型例子主要成因
事实性幻觉编造不存在的论文、API、法规条款训练数据缺失或过时;模型倾向给出完整回答
忠实性幻觉摘要里出现原文没有的数字;回答与检索材料矛盾模型用参数中的知识覆盖了上下文;材料过长,关键内容被忽略
指令幻觉声称已按要求处理,实际遗漏约束约束位于长上下文中间或压缩时丢失
行动幻觉调用不存在的工具;参数里编造订单号;声称“已发送邮件”但没有调用工具工具过多或描述不清;缺少参数来源约束;没有核对执行结果

用户问题不明确时,模型常用“看起来合理”的默认值补全,例如没有说日期就默认今天。这种情况应当由程序判断必填信息是否缺失,向用户追问,而不是让模型猜测。

3. 分层缓解​

输入侧:给证据,允许不知道

  • 事实类问题通过 RAG 或工具获取最新、可信的材料,见检索增强生成。
  • 在提示中明确“材料中没有的信息回答不知道”,并提供拒答的输出格式。不提供拒答出口,模型更倾向编造。
  • 只放与任务相关的材料,关键约束放在开头或结尾。

生成侧:约束形式

  • 要求每个论断附带引用(文档 ID、段落),无法引用的内容不输出。
  • 使用结构化输出,把自由文本变成可校验的字段,见结构化输出。
  • 事实抽取、分类等任务降低 temperature。

输出侧:校验

  • 规则校验:引用的文档是否存在,数字、日期、ID 是否能在材料中找到,工具参数是否来自上文。
  • 模型校验:用另一次调用判断回答中的每个论断是否被材料支持(忠实度检查)。校验模型也会出错,结论要抽样人工复核。
  • 执行结果以工具返回为准:模型说“已完成”不算完成,程序检查实际状态。

业务侧:兜底

  • 按风险分级:查询类可以直接返回并标注来源;修改数据、对外发送、涉及资金的操作要求人工确认。
  • 置信度低(检索得分低、自检不一致、多次采样结果不同)时,转为追问、拒答或人工处理。
  • 记录输入、证据和输出,便于事后追溯和加入评测集。

4 · 面试题卡片​

4.1 什么是大模型幻觉?有哪些方法可以减少或避免?​

出现公司:阿里云、蚂蚁、字节跳动

考察重点

  • 幻觉的定义、类型和成因。
  • 从输入、生成、输出到业务的分层缓解,而不是只说“用 RAG”。

相关内容:类型与成因、分层缓解。

参考回答

幻觉是模型生成了看似合理但与事实、给定材料或实际执行结果不符的内容,可以分为事实性、忠实性和行动幻觉。根本原因是模型按概率生成文本,训练目标没有惩罚“自信地编造”,加上训练数据缺失或过时、上下文缺少证据或干扰过多。

缓解要分层做:输入侧用 RAG 或工具提供可信材料,并明确允许回答“不知道”;生成侧要求引用来源、使用结构化输出、降低随机性;输出侧校验引用是否存在、数字和 ID 是否能在材料中找到,必要时用另一次调用做忠实度检查;业务侧按风险分级,高风险操作要人工确认,低置信度时追问或转人工。幻觉不能彻底消除,目标是让错误可以被发现,并把影响控制在可接受范围内。

4.2 RAG 系统中的幻觉怎样处理?生成阶段怎样控制幻觉?​

出现公司:联想、阿里云、百度

考察重点

  • 先定位是检索问题还是生成问题。
  • 无证据拒答、引用约束和忠实度检查。

相关内容:分层缓解、RAG 评估、重排序。

参考回答

先看 bad case 属于哪一类:检索没有召回相关文档,或召回了无关文档,模型只能靠自己补全;还是检索到了正确材料,但模型没有忠实使用。前者是检索问题,用混合检索、重排序、相关度阈值过滤无关片段、查询改写来提高召回质量;后者是生成问题。

生成阶段的控制:提示中规定只能依据给定材料回答,材料不足时输出固定的拒答格式;要求每个结论标注引用的片段编号,程序校验引用存在且内容相关;数字和专有名词与原文比对;必要时让另一次调用检查回答中每句话是否被材料支持,不被支持的句子删除或重新生成。评估时把检索指标(召回率、精确率)和生成指标(忠实度、答案相关性)分开统计,才能知道该改哪一层。

4.3 项目中遇到过幻觉吗?上线后幻觉导致业务出错,怎样兜底?置信度怎样判断,什么情况需要用户确认?​

出现公司:美团、百度、字节跳动、阿里淘天

考察重点

  • 置信度信号的来源,以及按风险决定自动执行还是确认。
  • 缺失信息由程序追问,不让模型猜默认值;上线后的监控与回流。

相关内容:类型与成因、分层缓解、人工介入。

参考回答

回答时先讲一个具体 case:现象、怎样通过日志和轨迹定位到是检索缺证据、约束在长上下文中丢失还是参数被编造,以及修复后怎样加入回归集。

置信度不依赖模型自己报的分数,而是组合可观测信号:检索相关度是否低于阈值,回答的引用能否在材料中找到,结构化字段是否通过校验,多次采样或自检结果是否一致,必填参数是否都来自用户或工具结果。用户没有提供的必填信息由程序检测缺失后追问,不允许模型填默认值。

是否需要用户确认按风险决定:只读查询可以直接返回并标注来源;修改数据、对外发送、涉及金额或不可逆的操作,以及置信信号不达标的情况,都先展示将要执行的内容,确认后再执行。上线后监控校验失败率、用户纠错和人工接管,异常时告警并降级到保守流程(只给建议不执行、转人工),出错的样本回流到评测集。

5. 参考资料​