为什么用了 RAG 仍会产生幻觉,如何治理?
先用自己的话答,再看参考说法
60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。
别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。
参考内容当前已显示;开始口述后会暂时隐藏。
面试时怎么答
回答最好按故障来源拆开:没检索到、检索到了但上下文有噪声、证据彼此冲突、模型没有遵循证据,以及问题本身不可回答。这样比笼统说“优化 Prompt”更像做过排障。
治理措施要一一对应来源,包括召回与重排、证据去重和冲突标记、引用约束、可回答性判断与拒答。被追问指标时,区分答案正确率、Faithfulness、引用支持率和拒答质量。
可以这样答:
使用 RAG 仍会幻觉,因为问题可能出在多层:相关证据没被召回,召回内容含噪或冲突,上下文超预算,或者模型忽略证据继续凭参数记忆作答。治理要分层做,先提高召回和重排,再清理并标注冲突证据,要求结论绑定引用,对证据不足的问题允许拒答。评测也要拆成检索 Recall、答案正确率、Faithfulness、引用支持率和误拒率。
核心回答
RAG 只能降低部分事实错误,不能消除幻觉。证据可能没有召回、已过期、相互冲突或夹带噪声;即使上下文正确,生成器也可能忽略证据、错误推理,或把参数知识混入答案。治理要同时覆盖检索质量、上下文选择、基于证据的生成、无证据时拒答,以及逐陈述的引用和支持度评估。
展开说明
可以按故障层次归因:
- Retrieval Miss:所需证据未进入候选集,优先修复解析、切块、Query 和召回。
- Ranking / Context Noise:证据被无关或冲突片段挤出最终上下文,需要过滤、重排、去重和版本控制。
- Context Misuse:证据已进入上下文但模型没有正确利用,应检查指令、上下文位置和生成模型能力。
- Unsupported Generation:答案包含上下文没有支持的陈述,需要 Claim 级引用、支持度检查和拒答策略。
相似度阈值只能说明检索空间中的接近程度,不能单独证明“有足够证据”。“只根据上下文回答”的 Prompt 也不是安全保证;自动 Faithfulness 或 LLM Judge 是代理指标,应与人工标注校准。
工程实践
为答案拆出原子 Claim,检查每个 Claim 是否有明确证据 ID 支持;引用应由实际上下文元数据生成,而不是让模型自由编造链接。建立“无答案、冲突证据、过期文档、恶意文档”测试集,分别跟踪 Context Recall、Context Precision、答案正确率、Faithfulness、拒答精确率和拒答召回率。
常见追问
- Faithfulness 与答案正确性有什么区别? Faithfulness 判断陈述是否受到给定证据支持;答案正确性判断它是否符合真实事实,证据本身错误时两者可能一高一低。
- 为什么设置向量相似度阈值不能保证有答案? 相似度衡量表示空间接近程度,不等同于文档包含充分答案;不同查询的分数分布也不同,固定阈值难以统一校准。
- 如何区分检索失败和生成器没有利用证据? 先人工或用标注检查 Top-K 是否包含充分证据;有证据却回答错属于上下文利用问题,没有则继续查索引、查询和召回。
一句话复习
RAG 的幻觉治理要把“找到证据、选对证据、用好证据、逐条验证”分开处理。
参考资料
- 面经主题:公开 Agent 面经中的 RAG 幻觉问题
- 技术依据:RAGAS、Self-RAG
评论与补充
评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。
正在连接站内评论服务…
正在加载评论…
还没有评论,你可以先写下自己的理解或追问。