先这样答
RAG 幻觉有两类来源:检索层幻觉和生成层幻觉。检索层幻觉指系统没有召回相关内容,模型只好依赖旧知识作答。比如知识库规定退款期限是 7 天,检索失败后,模型可能答成 30 天。生成层幻觉指系统已经召回相关内容,但模型没有按召回内容回答,而是加入了自己的推断。
防控要分四层做。第一层是提示词强约束,明确要求模型没有依据就说不知道。第二层是检索质量门控,检查 Rerank 分数。分数低时直接拒答,不把低质量结果交给模型继续编。
第三层做生成后引用核查,检查答案是否被召回内容支持。第四层要求结构化输出,并带上来源编号。上线前,提示词强约束和检索质量门控是必须守住的底线。它们约束模型的回答边界,并在证据不足时阻断回答。
面试官会怎么追问
-
「你怎么判断一次回答属于检索层还是生成层幻觉?」 先看相关内容是否被召回。如果没有召回,模型却给出答案,属于检索层幻觉。如果已经召回,答案仍然加入召回内容没有支持的推断,属于生成层幻觉。
-
「为什么检索失败后不能让模型用自己的知识补全?」 因为模型可能使用旧知识,旧知识和知识库中的内容不一致。比如知识库规定退款期限是 7 天,模型可能根据旧知识答成 30 天。没有相关召回内容时,提示词应要求模型直接说不知道。
-
「四层防控里,为什么前两层是上线前底线?」 提示词强约束可以限制模型在没有依据时继续作答。检索质量门控可以在 Rerank 分数低时直接拒答。两层都能在答案生成前阻断一部分幻觉。
回答的坑
- 把“召回了内容”当成“模型一定会照着回答”,忽略生成层仍可能加入推断。
- 只做生成后引用核查,却没有在提示词和检索质量门控上先拦截无依据回答。
同系列的题
—— 本题完 ——