即使是一个高性能的检索器,也可能导致大型语言模型 (LLM) 产生幻觉答案,因为 LLM 的输出不仅取决于检索到的上下文,还取决于它如何解释和优先处理这些信息。即使检索是准确的,如果 LLM 错误地权重、忽略或误解了提供的上下文,它也可能生成不正确或捏造的答案。这种行为源于 LLM 被训练来预测看似合理的文本,而不是严格遵循检索到的数据,这可能导致对不正确的假设过于自信,或者依赖于其训练数据中的过时模式。
一个关键问题是,LLM 通常优先考虑连贯性和流畅性,而不是严格的事实准确性。例如,如果检索到的上下文包含模糊或冲突的细节,LLM 可能会通过生成一个听起来合理的答案来“填补空白”,该答案与其内部偏差相符。假设一个检索器提供了一份文件,声明“产品 X 的平均寿命为 5-7 年”,但 LLM 的训练数据包含过时的说法,如“产品 X 的寿命为 10 年”。该模型可能会忽略检索到的上下文,而默认使用其训练数据,从而产生一个确信无疑的错误答案。同样,如果检索到的信息很复杂(例如,专业术语),LLM 可能会过度简化或误解它,特别是当查询措辞没有明确要求严格遵守上下文时。
另一个因素是检索器和 LLM 的输入处理之间的相互作用。例如,如果检索器返回多个包含细微矛盾的段落,LLM 可能会选择与其固有倾向相符的细节。想象一个医疗查询,检索器同时获取了一项近期研究和一篇较旧的、已被驳斥的论文。LLM 可能会无意中将两者混合在一起,从而创建一个误导性的综合信息。此外,缺乏明确说明的提示(例如,“解释这是如何工作的”而不是“仅使用提供的来源”)可能导致 LLM 减少对上下文的依赖,而更多地依赖其先前的知识。为了缓解这种情况,开发人员必须设计明确约束 LLM 使用检索到的内容的提示,并实施验证步骤来检查答案与源材料之间的一致性。