左右手互搏之术CK-PLUG:在RAG中如何更加精准调控LLM对于模型内部知识跟外部检索知识的依赖?
仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接
提纲
1简介
2CK-PLUG
2.1知识冲突检测
2.2知识依赖精准调控
2.3自适应知识调整
3实验
4讨论
参考文献
1简介
检索增强生成(RAG)技术,通过整合外部知识来减少模型的幻觉现象,让模型生成的内容更加准确,得到了很多人的关注。然而,在实际应用过程中,RAG面临着一个棘手的问题:模型内部参数知识与外部检索到的上下文知识之间常常会产生冲突。但当模型内部参数知识过时,或者检索到的上下文信息不可靠时,就会出现知识冲突。比如说,模型可能会在回答问题时,纠结是该相信自己“记忆”中的知识(参数知识),还是最新检索到的、但可能不准确的信息(上下文知识)。
基于此,有研究人员提出了CK-PLUG,设计了一种新的检测知识冲突的指标ConfidenceGain,并通过调整输出token的概率分布来精准调控LLM对于模型内部知识跟外部检索知识的偏好。
2CK-PLUG
CK-PLUG(ControllableKnowledgePlug-in),这是一种即插即用的方法,可以在不修改模型参数和架构的前提下,实现对大语言模型知识依赖的精准控制。
2.1基于ConfidenceGain的知识冲突检测
ConfidenceGain(CG)是一个全新的知识一致性度量指标,通过测量插入上下文后输出token概率分布的熵变化,可以用于检测RAG中的知识冲突。具体来说,它会对比模型仅基于输入问题X_q的预测(反映模型的内部参数知识)和结合检索上下文后X_r+X_q的预测,通过计算两者熵的差值,来判断是否存在知识冲突。如果CG小于0或某个预设的阈值,就表明该token可能存在知识冲突,需要后续进行处理。换言之,如果x在结合检索上下文后的更加不明确后,概率分布更加无序,熵值增加,就会被认为知识冲突。
2.2精准调控知识依赖
在检测到知识冲突后,CK-PLUG会对存在冲突的令牌概率分布进行调整,实现对知识依赖的精细控制。它定义了仅使用模型参数知识和同时使用模型参数知识跟检索上下文的对数概率分布,然后通过一个可调超参数α来平衡两者的权重。当α增大时,模型更依赖内部知识;α减小时,模型则更倾向于检索到的上下文知识。这种机制可以根据不同的场景需求,灵活地调整模型对参数知识和上下文知识的依赖程度。
仅使用模型参数知识的对数概率分布
同时使用模型参数知识跟检索上下文的对数概率分布
CK-PLUG对模型参数知识跟检索上下文的精准控制
2.3自适应知识调整
除了手动调节α,CK-PLUG还提供了一种自动化模式。在这种模式下,它会基于熵的困惑度来自动平衡参数和上下文的依赖关系。通过将α重新定义为上下文困惑度与参数困惑度之和的归一化比率,模型可以根据自身对内部和外部知识的置信度,自动调整知识依赖,提高生成内容的可靠性和可解释性。本质上就是如果模型对于检索上下文越置信,α就越小,修正后的概率分布就越看重使用模型参数知识跟检索上下文的对数概率分布。
3实验
实验选用了LLAMA2-7B、LLAMA3-8B、MISTRALV0.3-7B和QWEN2.5-7B这四种流行的开源大语言模型。在知识依赖控制实验中,使用了包含事实错误的NQ数据集、用于评估上下文忠实度的ConFiQA数据集以及涉及多跳知识问题的MQuAKE数据集;在自适应增强实验中,从KILT基准测试中选取了六个不同的RAG任务,包括开放域问答、多跳问答、事实验证等。
为了评估模型的知识依赖控制能力,研究人员选择了3个包含跟模型参数知识冲突的检索上下文知识的数据集,通过MR去定量评估对模型参数知识跟检索上下文的依赖程度。MR越大表明模型更依赖于模型参数知识,反之则更依赖于检索上下文。
ParR:therecallofparametersConR:therecallofcontextMR=ParR/(ParR+ConR)
在四个不同基底模型上,当α不断提升时,MR也有显著的提升,说明了α参数对于模型的知识依赖能力的精准调控。
在自适应增强实验中,CK-PLUG在所有六个RAG任务上都取得了性能提升。与没有使用CK-PLUG的基线模型相比,它能够更好地平衡参数知识和上下文知识,从而提高了模型在不同任务中的准确性和可靠性。
4讨论
CK-PLUG为解决大语言模型在RAG场景中的知识依赖问题提供了一种创新的解决方案。它通过引入CG指标检测知识冲突,利用单一参数实现对知识依赖的精细调节,并提供自适应调整模式,在多个实验中都展现出了卓越的性能。这一研究成果加深了我们对大语言模型知识依赖机制的理解,在实际的RAG场景下给我提供了即插即用的快速验证工具。
做过RAG其实都面临类似的问题,所以论文的想法我觉得很ok的,同时我还想到了一下几点。
其一是关于知识冲突检测的标准是不是略显粗糙?在模型参数知识跟外部检索上下文一致的前提下,CG会明显提升。但是如果是模型参数知识跟外部检索上下文不一致的情况下,CG一定会降低吗?这里就很难一概而论了,不同情况下的CG看起来会有不同的变化,这取决于模型对哪部分的知识更加置信。
其二是文中提及的自定义知识依赖参数,本质只是对概率分布做了一个修正,依旧还是一个强者恒强的逻辑,但是在有的情形下,我们是希望模型能够以模型参数知识为准,而不被检索上下文所欺骗,例如常见的政治,宗教或者历史类的内容,所以是否存在一种可以在模型内部就能实现的方案,对不同类型的问题以不同的方式处理,对于那些需要坚定维护的观点,坚持模型参数知识,反正,则沿用文中方案。还是说需要一个额外的路由模块才能实现这种设计。
其三是如果针对检索的不同知识源之间的冲突,看起来也是能有沿用这种方式,同时我们可以为不同知识源设置对应权重参数,将其加入修正后的概率分布计算中。
参考文献
1.Parametersvs.Context:Fine-GrainedControlofKnowledgeRelianceinLanguageModels
https ://arxiv.org/pdf/2503.15888