大模型幻觉问题 思维导图(定稿版)

  • 总览
      1. 幻觉产生的原因
      1. 幻觉检测方法
      1. 幻觉缓解策略(生成前/生成中)
      1. 幻觉缓解策略(生成后)
      1. 评估与评测体系

一、幻觉产生的原因

  • 数据层面
    • 训练数据本身包含错误信息
      • 举例:互联网爬取的文本里存在过时知识、谣言、偏见,模型学了就输出
    • 数据覆盖不足
      • 长尾知识、小众领域、最新事件在训练数据中占比极低,模型只能猜
    • 面试点:模型不是故意编造,而是训练时就学到了错误的知识
  • 训练层面
    • 最大似然估计的本质
      • 模型训练目标是预测下一个Token概率最大化,不是“说真话”
      • 面试点一句话:“模型的目标是生成流畅文本,不是生成事实正确的文本”
    • 对齐不足
      • 没有经过足够的RLHF/DPO对齐训练,模型不确定时就自由发挥
    • 知识截止日期
      • 训练数据有截止时间,截止后发生的事情模型完全不知道
  • 推理层面
    • 解码策略导致
      • Temperature过高 → 输出随机性增加 → 容易编造细节
      • Top-p/Top-k截断不当 → 候选Token池太小或太大 → 偏离事实
      • 面试点:调低temperature能抑制但会牺牲多样性,本质是取舍
    • 上下文误导
      • Prompt中给了错误的前提,模型倾向于顺着错误前提编下去
      • 举例:问“牛顿为什么发明了电话”,模型不去纠正错误前提,而是编造原因
    • 知识边界不自知
      • 模型不知道自己不知道什么,遇到未知问题不会说“不知道”而是硬编
  • 面试话术:三层归因法(30秒讲清幻觉根因)
    • 数据层:训练数据本身就包含错误和知识盲区,模型学到了错误的认知
    • 训练层:模型优化目标是预测下一个Token,不是保证事实正确,这是根本矛盾
    • 推理层:解码参数不当或上下文误导,触发了模型自由发挥的倾向

二、幻觉检测方法

  • 自动化检测方法
    • 基于NLI模型的事实一致性校验
      • 原理:用自然语言推理模型判断“生成答案”是否能从“参考文档”中推断出来
      • 结论分三类:蕴含(一致)/ 矛盾(冲突)/ 中性(无关联)
      • 工具:HuggingFace上的NLI模型(如BART-Large-MNLI)、LLM-as-Judge
      • 面试点:NLI模型本身也会出错,只能做初步筛查,不能替代人工
    • 基于规则的关键信息校验
      • 实体一致性检查:答案中的人名/地名/数字是否和参考文档一致
      • 数值范围校验:日期不能是未来、金额不能为负、数量级不能离谱
      • 正则兜底:身份证号/手机号/邮箱等固定格式,写规则直接校验
    • 基于检索结果的置信度判断
      • 检索相关性分数低于阈值 → 说明知识库里没有相关信息 → 高风险
      • 生成答案和检索文档的语义相似度过低 → 模型可能没参考文档 → 高风险
  • 模型自检方法
    • 直接询问模型
      • Prompt追加:“请评估你的回答是否完全基于提供的资料,并标注不确定的部分”
      • 局限性:模型倾向于说自己是正确的,自己评估自己不太准
    • 输出置信度信号
      • 用Logprob(Token生成概率)判断模型对输出是否有把握
      • 面试点:Logprob低的Token往往是模型不确定的地方,是潜在编造点
    • 多次采样对比
      • 同一个问题让模型回答3次,temperature设0.7
      • 对比三次答案中不一致的地方 → 那些就是模型不确定的内容
      • 面试点:一致的答案可信度高,不一致的部分大概率是编的
  • 人工评估方法
    • 人工抽检流程
      • 每天从线上日志抽50-100条回复
      • 评估维度:忠实度(是否基于文档)、相关性(是否回答问题)、完整性
      • 打分标准:1-3分,1分有事实错误,3分完全正确
    • 用户反馈信号
      • 点踩/举报/追问“你确定吗” → 都是潜在幻觉信号
      • 用户复制答案后去搜索引擎验证 → 说明用户不信任答案
    • 面试点:人工评估最准但最慢,线上用户反馈最真实但有延迟
  • 面试话术:分层检测策略
    • 第一层自动化:上线前用NLI模型跑一轮,快速筛出明显的幻觉case
    • 第二层规则兜底:对关键实体、数值、格式做规则校验,抓出低级事实错误
    • 第三层人工抽检+线上反馈:人工定期抽检,用户点踩的自动加入badcase队列

三、幻觉缓解策略(生成前/生成中)

  • Prompt工程约束(成本最低、最先做)
    • 核心指令设计
      • “仅根据提供的资料回答,不要使用外部知识”
      • “如果资料中没有相关信息,直接说’未找到相关信息’,不要猜测”
      • “如果资料不足以完整回答,请列出缺失的信息”
    • 角色设定约束
      • “你是一个严谨的事实核查员,每个回答都要标注引用来源”
      • 面试点:角色越具体,模型越倾向于遵循角色规范
    • 输出格式约束
      • 要求先引用原文片段,再给出结论
      • 要求标注不确定内容:“如果你对某条信息不确定,用[存疑]标记”
    • 面试点:Prompt约束成本为零,是所有缓解方案的第一步,效果能达60-70%
  • RAG作为幻觉缓解手段
    • 为什么RAG能缓解幻觉
      • 把“闭卷考试”变“开卷考试”,模型不需要依赖内部知识
      • 面试点一句话:“模型不用回忆,只需要照着资料回答”
    • RAG自身引入的幻觉风险
      • 检索到不相关文档 → 模型被误导,顺着错误文档编答案
      • 检索文档本身有错误 → 模型照搬错误信息
      • 模型强行融合多个文档 → 拼凑出不存在的“事实”
    • 缓解RAG幻觉的工程手段
      • 检索相关性阈值过滤:相关性分低于阈值的不喂给模型
      • 重排序:用Rerank确保最相关的文档排前面
      • 多文档冲突时要求模型标注分歧,而不是强行融合
  • 解码参数调优(线上快速调整)
    • Temperature控制
      • 事实性任务:temperature=0~0.3(降低随机性,减少编造)
      • 创意性任务:temperature=0.7~1.0(保持多样性)
      • 面试点:降低temperature是最简单的幻觉抑制手段,但过度降低会让回答机械
    • Top-p / Top-k控制
      • Top-p设0.8~0.9,限制候选Token范围
      • 和temperature二选一即可,不需要两个都调
    • 面试点:参数调优是“治标不治本”,只能减少不能根治幻觉
  • 知识图谱约束(GraphRAG,加分项)
    • 原理:把知识图谱作为生成时必须遵守的约束条件
      • 模型生成时先查知识图谱中是否存在对应关系,不存在则拒绝生成
    • 适用场景
      • 多跳推理:“A公司的CEO的毕业院校”
      • 需要严格事实约束的领域(医疗/法律/金融)
    • 面试点:知识图谱把“可能对”变成“一定对”,是最强的事实约束手段
  • 面试话术:分层缓解策略(30秒讲清整个思路)
    • 第一层Prompt约束:写好指令,成本为零,效果能达60-70%
    • 第二层RAG:把闭卷变开卷,模型照着资料答,是成本最低的根治方案
    • 第三层解码参数:事实性任务temperature压低,快速有效但不治本
    • 第四层知识图谱:对关键事实做硬约束,成本高但效果最好,适合高风险场景

四、幻觉缓解策略(生成后)

  • 事实一致性校验(生成后的核心手段)
    • 基于NLI模型的自动校验
      • 流程:生成答案 → 把答案拆成原子陈述 → 每条陈述和检索文档做NLI判断
      • 结论分类
        • 蕴含:陈述能从文档推断出来 → 通过
        • 矛盾:陈述和文档冲突 → 标记为幻觉
        • 中性:陈述和文档无关 → 标记为存疑
      • 工具:HuggingFace NLI模型 / GPT-4做裁判
      • 面试点:NLI模型轻量但准确率有限,GPT-4准确率高但贵且慢
    • 基于LLM的二次校验
      • 方法:把生成答案+参考文档一起交给另一个LLM,让它判断是否有事实错误
      • Prompt示例:“请逐条检查以下回答是否完全基于参考资料,列出所有无依据的陈述”
      • 适用场景:高风险答案(如医疗建议、法律条款),需要更精细的判断
    • 交叉验证
      • 同一个问题用不同检索结果生成两次答案,对比差异
      • 不一致的部分标记为存疑,优先展示一致的部分
  • 关键事实提取与比对
    • 实体抽取与校验
      • 用NER抽取答案中的实体(人名/地名/日期/数字)
      • 去参考文档中查找这些实体是否出现
      • 没找到的实体 → 疑似编造 → 标记或删除
    • 数值校验
      • 日期:不能是未来时间、不能是2月30号
      • 金额:数量级是否合理(说“一杯咖啡5000元”明显不合理)
      • 统计数字:和参考文档中的数字比对是否一致
    • 面试点:规则校验抓低级错误很有效,但对“看似合理但实际错误”的内容无能为力
  • 后处理纠错策略
    • 标记而非删除
      • 检测到存疑内容后,用[存疑]或[待核实]标记,而不是直接删除
      • 原因:删除可能导致信息不完整,标记让用户自己判断更负责任
    • 降级回复
      • 检测到答案中存在多处事实存疑 → 舍弃整个答案
      • 降级回复:“关于这个问题,我找到的信息不够确定,建议您查阅官方文档:[链接]”
    • 自动修正
      • 检测到实体名称明显错误(如“张三”写成“张伞”)→ 用参考文档中的正确实体替换
      • 面试点:自动修正风险高,只能改明确错误,不能改语义内容
    • 重生成
      • 校验不通过 → 调整Prompt或换一批检索结果 → 重新生成一次答案
  • 人机协同兜底(高风险场景必须上)
    • 什么场景需要人工兜底
      • 医疗、法律、金融等高风险领域
      • 用户明确表示质疑或投诉的答案
      • 自动校验标记为“高存疑”的答案
    • 人工审核流程
      • 存疑答案进入审核队列 → 人工判断 → 确认无误放行 / 有误修正 / 严重错误下架
      • 审核结果反馈回系统:修正后的答案可缓存,同类问题直接返回正确版本
    • 面试点:人工兜底不是技术方案,但证明你有“安全生产”的工程意识
  • 面试话术:生成后防线策略
    • 第一层自动校验:用NLI模型或规则做事实一致性检查,快速筛出明显问题
    • 第二层重生成/降级:校验不通过就调整Prompt重试一次,还不行就降级回复
    • 第三层人工兜底:高风险场景或用户投诉的答案,进人工审核队列

五、评估与评测体系

  • 评测指标
    • 忠实度(Faithfulness)
      • 定义:生成答案中的每条信息是否能从参考文档中推断出来
      • 计算方式:拆成原子陈述 → 逐条和参考文档比对 → 一致/矛盾/无依据
      • 面试点:忠实度是衡量幻觉最直接的指标,其他指标都是辅助
    • 事实准确率(Factual Accuracy)
      • 定义:答案中关键事实(实体/数字/关系)的正确比例
      • 和忠实度的区别:忠实度看是否基于文档,准确率看和真实世界是否一致
    • 幻觉率(Hallucination Rate)
      • 定义:生成答案中包含无依据信息的比例
      • 简单公式:幻觉答案数 / 总答案数,或幻觉原子陈述数 / 总原子陈述数
    • 面试点:三个指标侧重点不同,线上一般用忠实度和幻觉率,离线用准确率
  • 评测数据集构建
    • 数据来源
      • 真实用户历史问题(最有价值,直接反映线上分布)
      • 业务方/产品方提供的FAQ
      • 领域专家人工构造的边界问题
      • 线上badcase补充进去
    • 对抗样本(面试加分点)
      • 定义:故意设计容易诱发幻觉的问题
      • 类型一:错误前提问题
        • 举例:“为什么牛顿发明了电话?”→ 模型如果顺着答就是幻觉
      • 类型二:知识库外问题
        • 举例:问一个知识库完全不覆盖的问题 → 模型应该说不知道
      • 类型三:边界模糊问题
        • 举例:问一个知识库有相关但不完整覆盖的问题 → 最容易产生部分幻觉
      • 面试点:对抗样本能测出系统的下限,是评测集中最有价值的部分
    • 规模建议
      • 初期50-100条就够跑一轮离线评估
      • 持续扩充:每次线上badcase都加入评测集
    • 标注标准
      • 每条问题标注参考答案 + 关键事实 + 可能的陷阱点
      • 面试点:标注质量决定评测可信度,宁少勿滥
  • 离线评估流程
    • 步骤一:跑评测集,获取所有答案
    • 步骤二:自动计算指标(RAGAS/自研脚本)
    • 步骤三:人工抽查得分最低的case,确认是否真有问题
    • 步骤四:分类归因(Prompt问题/检索问题/生成问题)
    • 步骤五:针对性优化 → 重新跑评测 → 对比指标变化
  • 线上监控指标(和生产环境挂钩)
    • 直接指标
      • 用户点踩率:最直接的负面信号
      • 用户追问率:答案没解决问题,用户继续追问
      • 用户举报/投诉率:严重幻觉会触发举报
    • 间接指标
      • 答案采纳率:用户看了答案后的行为(点击/复制/停留时长)
      • 人工介入率:多少对话从AI转到了人工客服
      • 答案修改率:用户复制答案后手动修改的比例
    • 面试点:线上指标是最终裁判,离线指标再好,线上点踩率高就是有问题
  • 面试话术:评测闭环
    • 线下评测:构造包含对抗样本的测试集,跑RAGAS算忠实度,每次发版前跑一轮
    • 线上监控:看点踩率、追问率、人工介入率,异常飙升就告警排查
    • 闭环:线上badcase → 加入评测集 → 优化方案 → 离线评测验证 → 上线 → 观察指标
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐