AI幻觉问题,RAG解决不了的那些情况
上个月帮一个医疗 AI 项目做咨询,遇到了一个典型场景。
他们的系统用 RAG 增强了一个医学问答模型,检索库里有 50 多万篇医学文献。测试的时候发现,用户问「孕妇能不能吃阿司匹林」,系统回答得头头是道——但答案是错的。
问题出在哪?检索确实找到了相关文献,但模型把「孕早期禁用」和「孕晚期在医生指导下可用」这两个信息混在一起了,最后给出的建议既不准确也不安全。
这就是 RAG 解决不了的幻觉类型。
RAG 能解决的幻觉
先说好的一面。RAG 确实能解决很大一部分幻觉问题,主要是这几类:
第一类是事实性幻觉。比如「某公司的 CEO 是谁」「某个产品的发布日期」。这类问题有明确答案,只要检索库里有准确信息,RAG 基本能搞定。
第二类是知识时效性幻觉。模型训练数据有截止日期,问「昨天发生了什么」它肯定瞎编。RAG 通过实时检索,能补上这块短板。
第三类是领域专属知识幻觉。通用模型不懂某个小众领域,比如「某家医院的就诊流程」。RAG 把领域文档塞进去,能大幅提升准确率。
这三类问题有个共同点:答案在检索库里,且检索能精准定位。
RAG 解决不了的幻觉
但现实中的幻觉,很多不在这个范畴内。
第一类是推理性幻觉。检索到的信息是对的,但模型推理错了。就像前面说的孕妇用药例子——文献没错,但模型没搞明白不同孕期的区别,也没理解「医生指导」这个前提条件的重要性。
第二类是整合性幻觉。多个检索结果之间有矛盾,模型不知道怎么处理。比如检索到「A 研究说 X 有效」,「B 研究说 X 无效」,模型可能选择性忽略其中一个,或者强行拼凑出一个站不住脚的结论。
第三类是边界性幻觉。问题本身在检索库的知识边界上,模型分不清楚「不知道」和「知道但不完整」。比如问「某种罕见病的最新治疗方案」,检索库只有 2023 年的资料,模型可能基于这些过时信息给出 confident 但错误的答案。
第四类最隐蔽——源混淆幻觉。模型把检索到的信息和自己的「训练记忆」混在一起,最后输出的内容分不清哪部分来自检索、哪部分来自模型自己的「脑补」。
为什么 RAG 解决不了?
核心问题在于:RAG 解决的是「信息获取」环节,但幻觉不只发生在信息获取阶段。
模型拿到检索结果后,还要做理解、推理、整合、生成——这些环节都可能产生幻觉。RAG 不管这些,它只是把相关材料塞给模型,剩下的「怎么理解、怎么推理」还是模型自己决定。
换句话说,RAG 解决的是「模型不知道但应该知道」的问题,但解决不了「模型以为自己知道但其实理解错了」的问题。
那怎么办?
我接触过几种补充方案,各有优劣。
第一种是置信度校准。让模型学会说「我不知道」或者「我不确定」。技术上可以通过微调或者提示工程实现,但难点在于「什么时候该说不知道」——说太多了用户体验差,说太少了又没用。
第二种是多模型验证。同一个问题问多个模型,对比答案一致性。成本高,延迟大,但在高风险场景(比如医疗、法律)值得做。
第三种是人机协同。模型给出答案后,标注出「这部分来自检索」「这部分是模型推理」,让人类审核员快速判断风险点。这是目前工业界最实用的方案。
第四种是知识图谱增强。不只是检索文本,还利用结构化的知识图谱做推理验证。技术复杂度高,但在需要精确推理的场景效果明显。
林锐的看法
作为前算法工程师,我对 RAG 的态度是:它是必要但不充分的。
做 RAG 系统的时候,不能只关注「检索准不准」,还要关注「模型拿到检索结果后怎么处理」。后者往往更难,也更少有人讨论。
一个实用的建议是:在设计 RAG 系统时,明确界定「知识边界」——系统能回答什么类型的问题、不能回答什么类型的问题。不要追求「万能」,追求「在明确边界内的高可靠性」。
这比一个「什么都能答但经常出错」的系统有价值得多。
你遇到过 AI 幻觉的问题吗?是怎么处理的?