思维导图笔记:大模型幻觉问题 大模型幻觉问题 思维导图定稿版总览幻觉产生的原因幻觉检测方法幻觉缓解策略生成前/生成中幻觉缓解策略生成后评估与评测体系一、幻觉产生的原因数据层面训练数据本身包含错误信息举例互联网爬取的文本里存在过时知识、谣言、偏见模型学了就输出数据覆盖不足长尾知识、小众领域、最新事件在训练数据中占比极低模型只能猜面试点模型不是故意编造而是训练时就学到了错误的知识训练层面最大似然估计的本质模型训练目标是预测下一个Token概率最大化不是“说真话”面试点一句话“模型的目标是生成流畅文本不是生成事实正确的文本”对齐不足没有经过足够的RLHF/DPO对齐训练模型不确定时就自由发挥知识截止日期训练数据有截止时间截止后发生的事情模型完全不知道推理层面解码策略导致Temperature过高 → 输出随机性增加 → 容易编造细节Top-p/Top-k截断不当 → 候选Token池太小或太大 → 偏离事实面试点调低temperature能抑制但会牺牲多样性本质是取舍上下文误导Prompt中给了错误的前提模型倾向于顺着错误前提编下去举例问“牛顿为什么发明了电话”模型不去纠正错误前提而是编造原因知识边界不自知模型不知道自己不知道什么遇到未知问题不会说“不知道”而是硬编面试话术三层归因法30秒讲清幻觉根因数据层训练数据本身就包含错误和知识盲区模型学到了错误的认知训练层模型优化目标是预测下一个Token不是保证事实正确这是根本矛盾推理层解码参数不当或上下文误导触发了模型自由发挥的倾向二、幻觉检测方法自动化检测方法基于NLI模型的事实一致性校验原理用自然语言推理模型判断“生成答案”是否能从“参考文档”中推断出来结论分三类蕴含一致/ 矛盾冲突/ 中性无关联工具HuggingFace上的NLI模型如BART-Large-MNLI、LLM-as-Judge面试点NLI模型本身也会出错只能做初步筛查不能替代人工基于规则的关键信息校验实体一致性检查答案中的人名/地名/数字是否和参考文档一致数值范围校验日期不能是未来、金额不能为负、数量级不能离谱正则兜底身份证号/手机号/邮箱等固定格式写规则直接校验基于检索结果的置信度判断检索相关性分数低于阈值 → 说明知识库里没有相关信息 → 高风险生成答案和检索文档的语义相似度过低 → 模型可能没参考文档 → 高风险模型自检方法直接询问模型Prompt追加“请评估你的回答是否完全基于提供的资料并标注不确定的部分”局限性模型倾向于说自己是正确的自己评估自己不太准输出置信度信号用LogprobToken生成概率判断模型对输出是否有把握面试点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控制事实性任务temperature0~0.3降低随机性减少编造创意性任务temperature0.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 → 加入评测集 → 优化方案 → 离线评测验证 → 上线 → 观察指标