01
引言
人工智能和自然语言处理正以惊人的速度发展,我们现在比以往任何时候都需要更好、更可靠的方式来查找和使用信息。正如我们都经历过的那样,传统系统往往难以以最相关、上下文最丰富的方式来回答我们的问题。就拿谷歌来说,你通常需要进行多次搜索才能找到你想知道的信息。
这就是检索增强生成(RAG)及其更高级版本 RAG Fusion所发挥作用的地方。希望在接下来的几分钟里,您能了解到有关 RAG Fusion 的一切信息--它的工作原理、优点、实际用途以及挑战。
02
什么是RAG ?
RAG 又称检索增强生成(Retrieval Augmented Generation),是一种人工智能框架,它通过将大型语言模型(LLM)与外部知识源相结合来提高其生成回复的质量和准确性,这也是 RAG 被称为检索增强生成的原因。
03
RAG工作原理
简要介绍RAG处理的个不同阶段:
首先,我们根据用户的查询,从外部知识库或数据源检索相关信息。 然后,我们将检索到的信息添加到原始查询中,创建一个 "增强提示"。 最后,我们将增强后的提示传递给 LLM,以生成更准确、更新颖、更可验证的最终的答案。
让我们来详细了解每个阶段:
在第一阶段,系统根据用户的查询从外部知识库或数据源中检索相关信息。这分为几个步骤:
Query Transformation:将用户的输入转换成适合搜索外部知识库的格式。这通常意味着我们要将查询转换成能捕捉其语义的向量表示,从而实现更有效的检索。 Vector Search: 系统利用矢量嵌入等技术,在包含预处理数据的矢量数据库中进行搜索。然后,用代表系统可用知识的文档或数据点的嵌入填充该数据库。将检索模型想象成图书管理员,根据转换后的查询检索最相关的信息。 Relevance Ranking: 找到潜在匹配后,我们会根据它们与查询的相关性进行排序。我们还会考虑查询的上下文和检索文档的质量等因素,这些因素都会影响排名。
在获取检索的相关信息后,第二阶段是将这些数据附加到原始用户查询中,形成 "增强提示"。这一阶段主要包括:
Contextual Integration: 将检索到的信息整合到原始查询中;在此,我们会选择最能补充用户请求的特定信息,确保上下文相关且信息丰富 Prompt Structuring: 增强提示描述了上下文和用户的请求。在此,我们会对提示进行格式化,以突出对话的历史、检索到的上下文和用户的具体问题。例如,格式化提示可能是这样的:
Token Limit Considerations: 我们需要确保增强型提示不超出 LLM 的令牌限制,因为如果超出这些限制,就会导致响应不完整或处理错误。
在第三阶段,经过扩充的提示信息将传递给 LLM,以生成一个连贯且与上下文相关的答案。我们现在该怎么办?
Inference Process: LLM 利用其预先训练的知识和新提供的上下文来处理增强提示,从而生成响应。为什么这个阶段很重要?因为它将生成模型的优势与检索信息的特殊性相结合,从而帮助您获得更准确、更及时的答案。 Response Generation: 正如大家可能已经看到的那样,LLM 的输出结果是量身定制的,内容翔实、相关性强,而且还包括信息检索来源的引文。这样,用户就可以验证所提供信息的准确性,从而提高回复的可信度。 Continuous Feedback Loop: 然后,系统可以将用户反馈和新数据纳入其知识库,并不断提高未来响应的准确性和相关性。这正是 RAG 架构令人兴奋和有趣的地方,因为它就像人脑一样,能够根据信息瞬息万变的情况和环境进行更新和调整。
04
RAG的限制
Single Query Dependency
RAG 系统通常依靠单个用户查询来检索相关文档。这可能会造成限制,主要有以下原因:
Narrow Focus: 模型可能会遗漏一些相关信息,而这些信息只有通过多重提示、提示替代或对同一主题的不同观点才能捕捉到。单个查询可能无法涵盖全部用户意图或上下文范围。我相信每一位读者都有过这样的经历。
Lack of Exploration: 由于 RAG 不会生成多种不同的查询,它可能只会检索与查询的特定措辞相匹配的文档,这可能会排除使用不同术语或措辞的其他相关重要的文档。
Low Recall and Precision
RAG 在召回率(检索所有相关文件)和精确率(仅检索相关文件)方面都很吃力:
Incomplete Information: 如果检索过程没有获取所有相关文件,生成的回复可能会缺少关键细节,从而给出不完整的答案。
Irrelevant Results: 另一方面,RAG 也可能检索到与查询不相关的文档,从而降低了回复的质量,使您更加困惑。
Inability to Contextualize Queries
RAG 系统通常无法完全理解用户查询背后的上下文;这是 RAG 的最大缺点之一:
Misalignment with User Intent: 如果系统不能准确解释用户想要表达的意思,就可能检索到与用户所寻求的内容不一致的文档。这可能导致回复不相关或偏离主题。
Generic Queries Handling: 如果您提出的是通用查询,RAG 将无法有效确定是否需要外部信息,这可能导致回复不充分,无法完全满足用户的需求:即您的需求。
Hallucination of Information
RAG 系统有时会生成包含不准确信息或幻觉信息的答案:
Inaccurate Responses: 当检索到的文件没有提供足够的上下文或模型误解了信息时,可能会导致与事实不符或误导性的答案。
Dependence on Document Quality: 如果文档包含错误或已经过时,生成的答复很可能会反映出这些问题,因为检索文档的质量和相关性对最终答复的准确性非常重要。
05
RAG Fusion
RAG Fusion 的起点是 RAG 的终点。RAG Fusion 在 4 个关键方面做得更好,因此我才会有这样的看法:
Multi-Query Generation: RAG-Fusion 会生成用户原始查询的多个版本。如上所述,这不同于传统 RAG 的单一查询生成。这允许系统探索不同的解释和观点,从而大大拓宽了搜索范围,提高了检索信息的相关性。 Reciprocal Rank Fusion: 在这项技术中,我们根据相关性对搜索结果进行合并和重新排序。通过合并各种检索策略的得分,RAG-Fusion 可确保一直出现在最前位置的文档得到优先处理,从而使响应更加准确。 Improved Contextual Relevance: 由于我们考虑了用户查询的多种解释并对结果进行了重新排序,因此 RAG-Fusion 生成的回复更贴近用户的意图,从而使答案更准确,与上下文更相关。 Enhanced User Experience: 整合这些技术可提高答案质量,加快信息检索速度,从而使与人工智能系统的交互更直观、更高效。
06
RAG Fusion如何处理用户查询歧义?
你并不总是知道自己想问什么,而大多数时候,我们也不知道如何提出这些问题,导致我们责怪模型或产品给出了不相关或不正确的答案。RAG Fusion 如何解决这个问题?
它很简单,就是对原始查询生成多种解释!这样,系统就能涵盖更广泛的潜在含义和语境,从而帮助检索到更多相关文档。重排过程进一步完善了结果,使最终输出更符合用户的意图,即使查询是模糊的或多方面的,而作为人类,我们的查询也是如此。
这让我想起 iPhone 手机拍摄照片(我指的是夜拍)的方式:拍摄多张照片,然后将它们融合,为您呈现最佳版本。在这里也可以进行类似的类比。
07
RAG Fusion的工作机制
参考上述流程图,我们对整个过程进行讲解:
User Query (top right)
Generate Similar Queries (center)
Vector Search Queries (bottom left):
Reciprocal Rank Fusion (center bottom):
在每个矢量搜索查询都检索到自己的结果后,一个被称为RRF的融合过程会将所有搜索结果合并在一起。
然后,这种融合方法会根据所有不同查询的相关性对结果进行排序,从而大大提高检索信息的整体质量。
Re-ranked Results (below Reciprocal Rank Fusion):
然后,对融合步骤得出的结果进行重新排序,优先考虑最相关的结果。
Generative Output (final bottom stage):
最后,根据这些重新排序的结果,系统会生成最终的输出结果,可能是用户的回复、或其他所需的输出结果。
08
Reciprocal Rank Fusion
ranki(d):文档 d在第 i 个输入列表中的排名 k:常数,用于控制较低等级的影响。通常设置为 60,但可根据具体应用或数据集进行调整。
评分说明:
排名越低得分越高:对等排序给排序较高的文档(即排序数字较低)更高的分数。
09
RRF中参数K的影响
低排名文件的减弱效应:由于排名靠后的文件权重明显较低,因此在倒数排名的分母中将 k 设为常数会有一些帮助。也就是说,排名不靠前的文档总体上也会对得分做出积极贡献,但其贡献力度不如排名靠前的文档。因此,可以利用 k 来查看分配给这些低排名文档的权重百分比。 微调灵敏度:k 值通常设置为 60,以减少排名较低文档的贡献,从而提高对排名靠前文档的敏感度。如果 k 值较小,则排名较低的文档贡献的权重会很大,因此它们对最终得分的贡献也会很大。控制灵敏度的高度灵活性使得这种向量空间模型非常适合根据特定检索任务甚至数据集的需要进行微调。 平衡得分:k 值有助于平衡从一组文档中获得的分数。如果 k 太小,排名靠后的文档会对得分产生过多影响。如果 k 值过大,系统就会倾向于排名靠前的文档,以至于错过了排名靠后的非常有用的文档。在试图进行最佳检索时,找到一个最佳的 k 非常重要。 经验结果:实验发现,虽然默认情况下可以成功使用 k = 60,但 k 的最佳值取决于数据的性质以及要组合的方法。在实践中,这意味着虽然 k 通常提供了一个有用的起点,但有时必须根据经验对该值进行调整,才能真正获得最佳结果。
10
RRF的好处
Combining Multiple Sources: RRF 能有效结合不同排名算法或系统的结果,是提高检索性能的有力工具。 Flexibility: 参数 k可以调整排名较低文档的影响力,使用户能够根据自己的具体需求调整评分 Simplicity: RRF 方法易于实施和理解,因此可用于各种信息检索应用。
11
RAG Fusion的应用
Customer Support: RAG Fusion 可以为客户咨询提供更准确、更贴近上下文的答案,从而增强聊天机器人在客户服务环境中的能力。这将提高客户满意度并缩短响应时间。 Content Creation: 撰稿人和内容创建者可以从 RAG Fusion 中获益,获取大量信息并生成高质量、信息丰富且引人入胜的内容。从多个来源快速收集相关数据可简化写作流程。 Research and Academia: 研究人员可以利用 RAG Fusion 快速检索和综合多种来源的信息,从而提高文献审查和数据分析的效率。这在快节奏的研究环境中尤为重要,因为及时获取信息至关重要。 Healthcare: 在医疗领域,RAG Fusion 可以帮助医疗专业人员检索最新的研究和治疗指南,为他们提供最相关的信息,为他们的临床决策提供依据。
12
RAG Fusion的优势与挑战
增强语境理解:通过生成多个查询,RAG Fusion 可以捕捉到原始查询的不同视角,从而做出更细致入微、更符合上下文的响应。 提高相关性和精确度:集成 RRF 后,可以对检索到的文档进行更复杂的评估,从而降低不相关或低质量输出的可能性。这对于需要深入了解上下文的复杂查询尤其有益。 克服局限性:RAG Fusion 可利用单个检索系统的优势来缓解其局限性。这将使信息检索过程更加全面可靠,最终提高用户满意度。
复杂性增加:整合多种检索方法和生成多个查询会增加系统的复杂性。这会导致处理时间延长和计算需求增加。
数据质量和相关性:RAG 融合技术的有效性在很大程度上取决于检索数据的质量。如果基础数据不准确或过时,就会对生成回复的相关性和准确性产生负面影响。
延迟问题:多查询生成和重排过程会带来延迟,使系统速度低于传统模型。在需要实时响应的应用中,这是一个重要的考虑因素。
13
总结
多查询生成:生成原始查询的多个版本,以探索不同的视角并检索更多相关信息。 RRF技术:根据相关性对搜索结果进行组合和重新排序,确保搜索结果最准确、最相关。 提高上下文相关性:生成更贴近用户意图的回复,从而提供更准确、与上下文更相关的答案。 增强用户体验:提高回答质量,加快信息检索速度,使与人工智能系统的交互更直观、更高效。
点击上方小卡片关注我
添加个人微信,进专属粉丝群!