
搜索引擎
上图源自ACL2023教程,由普林斯顿NLP和华盛顿大学NLP提供。他们将检索增强生成(RAG)的过程拆解为三个关键问题:检索内容(如何处理检索源)、利用方式(将检索结果融入输入、中间层还是输出层),以及检索时机(在哪个阶段进行检索)。本文重点探讨其中的两个方面,即检索的最佳时机,以及如何有效利用检索到的信息,结合到模型的不同部分以提升生成效果。先提出几个观点:为了更新知识,我们可以采用两种方法:一是通过持续预训练或微调,将知识融入大语言模型的参数记忆中;二是利用检索技术,结合示例学习,让模型基于外部信息进行回答,即采用检索增强生成的方式。那为什么选择使用RAG?与微调的不确定性相比,RAG方案更简单、成本更低且可解释性更强。
先说结论,需要。

华为
RAG模型无需过分关注极细粒度的切分。未来,我们更重视文档召回的全面性(recall),而非精确性(precision)。也就是说,关键在于是否能召回有助于回答问题的内容,而不是过于纠结于召回的10个文档中有几个真正有用。这两个问题其实聚焦于同一个核心:如何协调模型的内部知识与外部知识之间的平衡。也就是说,模型的内部知识有正确也有错误,若进行检索,结果同样可能对错参半,甚至存在危害。最理想的情况是:当模型内部知识准确时,优先使用内部知识;而当外部知识正确时,我们也能够选用那些准确的外部信息。内外部知识都正确时,自然无碍,可随意选用。但若仅一个正确,或两者皆不全面需互补?外部知识未必能提升模型精度:我们在简单设置下进行实验:Mistral-7B结合BGE(数据源为Wikipedia)与TriviaQA,效果显著。约10%的问题,原本仅依靠内部知识能够正确回答,但在引入外部检索知识后却出现了错误。在此设定中,检索文档的质量与大语言模型的能力均有一定保障(高效的稠密检索器、清洁的数据源、简单问题及性能较强模型),但即便如此,引用外部知识对许多问题仍产生了负面影响。而在实际情况中,这种影响可能更为严重,因为检索器效果难以保证、数据源质量参差不齐、问题复杂度更高,且模型能力波动较大,这些因素都会进一步加剧外部知识带来的潜在风险。关于内外部知识冲突与融合的文章(How to use retrieval)探讨了这一问题,旨在分析模型在持续检索的设定中,如何实现内部知识与外部知识之间的平衡。当模型答案与情境答案不同时,如何解决冲突?模型需优先确保输出的准确性,结合情境信息调整结果。
这篇综述进行了较为全面的分析与总结。想了解更多,可以参考作者@莫驚蟄对这篇文章的解读。关于大模型检索增强生成(RAG)的实用技巧,不妨前往网络相关页面探索。回答问题需整合多源信息,当关键内容部分来自内部知识、部分源于外部资料时,模型应如何有效融合并生成完整答案?首次对知识融合问题进行系统分析,文章将其分解为四个场景,并评估了大语言模型在各场景中的表现。内部知识足以应对问题解答。外部知识充足,足以回答问题。需结合内部与外部知识方可完整回答问题,单独依赖其中任一方都无法充分作答。内外部知识均无法协助解答问题。然而,相关研究尚处于初步阶段,仍未得出明确结论。此外,通过直观控制模型是否进行检索,能够实现内外部知识的平衡(不检索时仅使用内部知识)。这实际上是关于何时检索这一课题的探索研究。
上图源自CtrlA。从直观角度看,ARAG类方法的核心目标在于探索模型的知识边界,即明确模型已知与未知的范围。如果我们能够清晰掌握这一边界,就能让模型在有把握时直接作答,而在不确定时借助检索来补充信息。然而,确定模型的知识边界是一项极具挑战性的任务。因此,当前的ARAG研究通常采用间接方式,试图找到一种有效的策略来判断何时需要启动检索功能,从而平衡模型回答的准确性和效率。仅凭模型的表面表现来判断其知识边界、置信度或是否需要搜索存在局限性。在不借助外部知识时,大型语言模型 若要正确回答一个有明确答案的问题,需满足哪些条件?这值得我们先探讨一下。模型的内在认知等同于事实真相。
大型语言模型的内部认知源于预训练数据,但因数据中存在噪声,且客观事实可能随时间改变,因此其内部认知未必始终与真实情况保持一致。这种偏差需要引起注意并在应用中加以考量。条件2:模型内部认知等于其实际输出的答案。
为何要条件2?模型的认知未必等同于预期输出。一个典型例子是狭义上的撒谎。比如,我们告知某人他在考试中得了C,但他害怕回家被责骂。于是,我们问他将如何应对。他可能为了逃避惩罚,声称自己考了A。这时,他的回答与其实际认知出现了偏差。以TruthfulQA为例,模型可能出现无意识撒谎的情况。这意味着,当受到提示影响时,大型语言模型可能偏离正轨,难以准确表达自身实际认知,输出内容未必可靠。条件3:模型解码时输出自身意图
即使大型语言模型有明确的输出目标,也不一定能准确生成预期结果。例如,多次采样可能会得到完全不同的结果。RAG通过将外部知识融入LLM,使其答案更接近真实情况,从而有效提升准确性。
RAG引入外部知识,使模型认知对齐真实情况,从而输出准确答案。这种方法提升模型准确性,尤其在复杂任务中表现优异。
目前的ARAG方法均未考虑LLM输出与内部认知不一致的问题,此情形下,各类模型信心判断方式均会失效。其次,显式模型的响应反馈存在一些明显缺陷:仅适用于小规模模型,且难以准确评估。基于模型输出一致性的方法:首先,大型语言模型的输出一致性缺乏有效的界定方法。此外,这类方法因需模型多次输出答案,导致效率大幅降低。在实际RAG应用中,检索耗时极少(毫秒级),主要延迟源于LLM解码过程。基于概率反馈的方法:这种方法最初假设大语言模型是校准良好的(输出层的Logits反映了其置信度),然而实际并非如此。也就是说,模型生成的token概率并不完全等同于其对预测结果的确信程度。这种偏差可能导致对模型信心的误判。此外,该方法难以区分认知不确定性和偶然不确定性。通过微调模型或训练额外分类器的方式实现。这种方法对数据质量要求很高,Fine-tune成本大,还可能削弱模型自身能力。比如,Repoformer作者指出,Self-RAG在某些情况下选择检索时机的策略效果与随机选择相当。相关论文地址:论文相关代码:我们从模型的内部表征出发,设计了两种探针:诚实探针(Honesty Probe)和自信探针(Confidence Probe),分别用于捕捉模型对诚实和自信的理解。首先,通过诚实探针对模型的内部认知进行调控,使其意图输出与外部期望保持一致。接着,利用自信探针评估模型在生成回答时的信心水平。值得一提的是,我们的方法并非基于模型对答案不确定性的传统分析,而是直接探测其对信心这一概念的整体认知。如果模型表现出低信心,则引入检索机制以辅助决策。实验结果显示,在不需对检索文档进行额外处理的情况下,该方法显著提升了基于检索的生成模型(RAG)的精度。此外,与微调(Finetune)带来的高昂成本相比,我们的探针训练仅需不到一分钟,并展现出强大的泛化能力。这种方法不仅高效,还能有效平衡性能与计算资源消耗之间的关系,为提升大语言模型的可靠性和准确性提供了新思路。我们期望找到一种方式,使大语言模型的内部思维与输出结果保持一致,然后评估其通用性信心水平。这样,在模型有信心时可直接作答,无需搜索;而在信心不足时,则借助搜索补充信息,提升回答的准确性与可靠性。
采用RepE方法,先从大语言模型的内部表征中提取出代表诚实性和自信度的方向。然后,调整模型内部表征,强制其生成更诚实的输出。同时,通过检测内部表征在自信方向上的强度(点积值),判断模型对自己输出内容的确定性。如果模型表现得不够自信,则引入搜索功能以补充信息。我们在五个数据集上超越了部分现有ARAG方法。
我们在TruthfulQA上,用Honesty探针进行无检索实验,结果表明,Honesty能够有效提升大语言模型在该数据集上的表现,使其回答更准确、可靠。
我们将诚实相关的提示加入prompt中,与使用honesty探针控制相比,虽然能提升效果,但提升幅度不如后者显著。
我们在自建数据集上设计了让模型表现自信或不自信的问题,并通过置信度探测器评估模型的自信程度。结果显示,无法回答的问题会使模型缺乏信心,而简单、明确且无争议的问题则让大语言模型表现出高度自信。置信度探测器在区分这两类问题时展现了极高的准确性,有效验证了模型的判断能力。
TriviaQA中,confidence探针识别问题的正确率超过80%,确实无需搜索。
我们采用的骨干模型为Mistral-7B v0.1,其发布早于小米SU7和华为问界M9,故不具备相关知识。 Confidence探针检测到模型对这两款车的信息不了解。
诚实探针用于减轻模型狭义撒谎的不诚实情况。
自信探针检测到了多种情境下的缺乏信心现象。
Confidence探针可用于引导模型生成,其效果表明我们成功提取出LLM表征空间中代表自信方向的特征。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号