Interview: 当检索到的内容与模型参数化知识矛盾时,LLM如何决策?你怎么解决这个问题?


题目解析

这是RAG系统中最棘手的问题之一。例如:模型预训练数据中某公司CEO是A,但检索到的最新文档说CEO已更换为B。模型会倾向于哪个答案?研究表明LLM在知识冲突时的行为高度不可预测,受提示方式、冲突程度、模型大小等多种因素影响。

解答思路

LLM的决策倾向:1)对于事实性强的知识(日期、数字),模型更倾向于参数化知识(约60-70%的时间);2)当检索内容置于prompt的后半部分时,模型更倾向于检索内容(recency bias);3)当检索内容包含更多细节和证据时,模型更倾向于检索内容。解决方案:1)Prompt工程——明确指令”基于以下提供的上下文回答,如果上下文与你的知识矛盾,以上下文为准”;2)置信度标注——让模型判断检索内容的可靠性;3)多源验证——用多个检索结果交叉验证。

关键要点

  1. 知识冲突有两种:检索结果之间的冲突(inter-context)和检索结果与参数知识的冲突(context-memory)
  2. 更大的模型更倾向于坚持自己的参数化知识——这是一把双刃剑
  3. 指令微调可以训练模型优先信任context,但可能导致模型被恶意注入的内容操控
  4. 让模型同时输出答案来源和置信度,便于下游判断

加分回答

可以讨论对抗性知识冲突的安全问题:攻击者可能故意在文档中植入错误信息,诱导RAG系统生成错误答案(knowledge poisoning)。防御手段包括:文档来源可信度评分、多源交叉验证、敏感信息检测。还可以分析CRAG(Corrective RAG)如何通过自我评估检索质量来缓解这个问题。

常见踩坑

  1. 天真地指示模型”始终信任检索结果”——可能被恶意文档利用
  2. 忽略了冲突检测——模型经常在不提示用户的情况下悄悄选择一个答案
  3. 没有为用户提供溯源能力——用户无法判断答案来自哪个信息源