一篇模块化RAG之最新片面系统性综述

RAG访问外部常识库增强了LLMs处置常识密集型义务的才干,随着运行场景需求的参与,RAG系统变得愈加复杂。传统的RAG依赖于便捷的相似性检索,面对复杂查问和变动无常的文本块时体现不佳:对查问的浅层了解、检索冗余和噪声。

豪华RAG和初级RAG的案例。面对复杂疑问时,两者都遇到了限度,难以提供令人满意的答案。虽然初级RAG经过火层索引、检索前和检索后的环节提高了检索精度,但这些相关文档并没有被正确经常使用。

提出了一种新的模块化RAG框架,经过将复杂的RAG系统合成为三层架构设计(模块、子模块和操作符)以一致和结构化的方式定义RAG系统,增强了系统的灵敏性和可裁减性,这种框架逾越了传统的线性架构,驳回了集成路由、调度和融合机制的更先进设计。

模块化RAG的案例。该系统整合了多样化的数据和更多性能性组件。环节不再局限于线性,而是由多个控制组件控制检索和生成,使整个系统愈加灵敏和复杂。

模块化RAG框架与符号

L1 模块(Module):RAG系统的外围环节。

L2 子模块(Sub-module):模块内的性能模块。

L3 操作符(Operator):模块或子模块中详细的性能成功。

模块化RAG模块和操作符

详细引见了模块化RAG框架下的六个关键模块以及所经常使用的的详细技术:索引、检索前处置、检索、检索后处置、生成和编排。

三种RAG范式的比拟。模块化RAG从之前的范式中开展而来,并与RAG系统的实践需求相分歧。

将文档宰割成易于治理的块,是系统组织的关键步骤。

面临的应战包括内容示意不完整、块相似度搜查不准确和援用轨迹不明晰。

处置打算包括块优化(如调整块大小和堆叠)、元数据附加和结构化组织。

技术包括:

查问裁减(Query Expansion):经过裁减查问来丰盛高低文,提高检索的相关性。

查问转换(Query Transformation):对原始查问启动改写或转换以提高检索的准确性。

查问构建(Query Construction):依据须要将查问转换为不同的查问言语,如SQL或Cypher,以访问结构化数据。

检索器选用(Retriever Selection):依据义务需求选用适合的检索器,包括稠密检索器、密集检索器和混合检索器。

检索器微调(Retriever Fine-tuning):对检索器启动微调以顺应特定畛域的数据和术语。

重排(Rerank):依据相关性对检索到的文档块启动从新排序。

紧缩(Compression):紧缩检索到的内容,以缩小噪声并提高LLM对关键消息的识别。

选用(Selection):间接移除不相关或冗余的文档块。

生成器微调(Generator Fine-tuning):依据特定畛域或数据特性对生成器启动微调,以提高生成答案的品质。

验证(Verification):经过常识库或模型基础的方法对生成的答案启动验证,以缩小失误消息。

路由(Routing):依据查问的类型或内容将查问定向到不同的处置流程。

调度(Scheduling):治理RAG流程中的决策点,如何时启动检索或生成。

融合(Fusion):整合来自多个分支的消息,以构成一个片面且分歧的照应。

模块化RAG流程及其形式

详细讨论了模块化RAG系统中的上班流形式,即RAG流程(RAG Flow)及其形式(Flow Pattern)。

RAG Flow的定义:

RAG Flow是模块和操作符之间的单干,构成模块化RAG系统中的上班流程。

经过控制逻辑,操作符可以依照预约的管道口头,也可以在必要时口头条件、分支或循环操作。

RAG Flow Pattern:

识别并定义了一组经常出现的RAG流程形式,这些形式逾越不同的运行畛域,展现出高度的分歧性和可重用性。

RAG流程形式可以定义为一系列模块的有序衔接,每个模块蕴含一组操作符。

最便捷且最罕用的形式,模块依照固定的顺序口头。

线性RAG流程形式。每个模块按固定的顺序依次处置。

技术包括查问转换(Query Transform Module)、检索(Retrieval)、重排(Rerank)、生成(Generation)。

例如,RRR(RewriteRetrieve-Read)模型,它在检索前引入了一个可学习的查问改写模块。

RRR是一种典型的线性流程,它在检索之前引入了一个可学习的查问重写模块。该模块基于大型言语模型(LLM)的输入结果启动强化学习。

依据不同的条件选用不同的RAG管道。

经过路由模块选择流程的下一个模块。

条件流程形式。存在一个路由模块,它控制查问被导向哪个 RAG 流程。通常,不同的流程用于不同的性能,以满足 RAG 系统的普通要求。

RAG流程或者有多个并行运转的分支,通常是为了参与生成结果的多样性。

分为检索前分支(Pre-retrieval Branching)和检索后分支(Post-retrieval Branching)。

检索前分支形式(Pre-retrieval Branching Pattern):

技术包括查问裁减(Query Expansion)、并行检索(Parallel Retrieval)、生成(Generation)、兼并(Merge)。

检索前分主流程形式。每个分支区分口头检索和生成,而后在最后启动聚合。

检索后分支形式(Post-retrieval Branching Pattern):

技术包括繁多查问检索(Single Query Retrieval)、并行生成(Parallel Generation)、兼并(Merge)。

检索后分主流程形式。只口头一次性检索,而后对每个检索到的文档块区分启动生成,随后启动聚合。

REPLUG中的 RAG 流程,遵照典型的检索后分支形式。每个检索到的块都阅历并行生成,而后经常使用加权概率汇合启动聚合。

触及检索和生成步骤的相互依赖,通常包括一个调度模块来控制流程。

包括迭代检索(Iterative Retrieval)、递归检索(Recursive Retrieval)、自顺应检索(Adaptive Retrieval)。

循环流程形式。通常,RAG 系统口头多轮检索和生成。它可以被分类为三种方式:迭代、递归和自顺应。

ITER-RETGEN是一种典型的迭代结构。在最大迭代次数的限度外口头多轮检索和生成。

ToC的 RAG 流程。这个环节的一个典型特点是,每次递归检索都经常使用前一步生成的新查问,从而逐渐深化对原始复杂查问的剖析。

自顺应检索:FLARE的RAG流程。生成的暂时答案将启动置信度评价。假设它未到达所需的置信度水平,流程将前往到检索阶段偏重重生成。评价规范是经过提醒成功的。

自顺应检索:SELF-RAG的RAG流程。首先,它提醒 GPT-4 失掉一个适合的指令微调数据集,以微调部署的开源大型言语模型(LLM)。这准许模型在生成环节中输入四个特定的令牌,这些令牌用于控制 RAG 流程。

RAG始终整合更多的LLM相关技术,其中许多组件由可训练的言语模型组成。

经过微调,可以进一步优化组件的性能和与全体流程的兼容性。

包括检索器微调(Retriever Fine-tuning)、生成器微调(Generator Fine-tuning)、双重微调(Dual Fine-tuning)。

检索器微调形式,关键包括间接的间接微调(SFT)、参与可训练的适配器、受言语模型监视的检索和基于大型言语模型(LLM)鼓励的强化学习(RL)。

生成器微调形式,关键方法包括间接微调(SFT)、蒸馏以及来自大型言语模型(LLM)/人类反应的强化学习(RL)。

双重微调形式。在这种形式下,检索器和生成器都介入微调,它们的偏好将被对齐。

最后,PaperAgent团队也依据在RAG方面的通常阅历,梳理了一张模块化RAG全景框架图,合计8个模块,36种技术:

PaperAgent-RAG专栏试看:

RAG: Transforming RAG Systems into LEGO-like Reconfigurable Frameworks

本文转载自​​,作者:​​

您可能还会对下面的文章感兴趣: