本文全面回顾了当前最先进的RAG技术,包括朴素RAG、进阶RAG和模块RAG等范式,并置于LLM背景下。文章讨论了RAG过程中的核心技术,如“检索”、“生成”和“增强”,并深入探讨了它们的协同作用。

1.介绍

本文全面回顾了当前最先进的RAG技术,包括朴素RAG、进阶RAG和模块RAG等范式,并置于LLM背景下。文章讨论了RAG过程中的核心技术,如“检索”、“生成”和“增强”,并深入探讨了它们的协同作用。此外,文章还构建了一个全面的评估框架,概述了评估目标和度量标准,并进行了比较分析,阐明了RAG的优缺点。最后,文章预测了RAG的未来发展方向,强调了解决当前挑战的潜在增强、多模式设置的扩展以及其生态系统的发展。

图1 RAG技术发展科技树

 

2.定义

RAG是一种通过整合外部知识库来增强LLM的性能的模式,采用协同方法结合信息检索机制和上下文学习来提高LLM的性能。其工作流程包括三个关键步骤:将语料库划分为离散块,构建向量索引,并根据与查询和索引块的向量相似性来识别和检索块。这些步骤支持其信息检索和上下文感知生成能力。RAG已成为LLMs系统中最受欢迎的架构之一,许多对话产品几乎完全基于RAG构建。

图 2 RAG 技术在 QA 问题中的案例图 2 RAG 技术在 QA 问题中的案例

3.RAG框架

在RAG的技术演进历程中,基于技术范式的考量,我们将其划分为以下几个发展阶段:朴素RAG、进阶RAG和模块RAG。

3.1朴素RAG

朴素RAG研究范式是一种早期的方法学,用于处理自然语言生成任务。它包括索引、检索和生成三个阶段。索引阶段从原始数据中提取文本,并将其转化为向量表示,以便于检索和生成。检索阶段计算查询向量与索引语料库中向量化的块之间的相似度分数,并优先检索出最相似的块作为扩展上下文的基础。生成阶段将查询和选定的文档合成一个连贯的提示,并要求大型语言模型根据提示来制定响应。这种方法允许模型利用其内在的参数知识或将其响应限制在提供文档中所包含的信息。

Naive RAG在检索、生成和增强三个关键领域面临挑战,包括精度低、召回率低、幻觉挑战、难以结合上下文、重复冗余、平衡段落价值、协调写作风格和语气、过度依赖增强信息等。这些问题影响了模型性能和输出质量。

3.2进阶RAG

进阶RAG通过增强有针对性的检索策略和改进索引方法来弥补Naive RAG的缺点。它实施了预检索和后检索策略,并采用了滑动窗口、细粒度分割和元数据等技术来改进索引方法。此外,还引入了各种方法来优化检索过程,如ILIN。在检索阶段,通过计算查询和块之间的相似性来确定适当的上下文,并微调嵌入模型以增强特定领域上下文中的检索相关性。在后检索阶段,应对上下文窗口限制带来的挑战,并对检索到的内容进行重新排名和提示压缩。

3.3模块RAG

图3 RAG 范式对比图图3 RAG 范式对比图

模块RAG结构是新型框架,具大灵活性和适应性,可整合各种方法增强功能模块,解决特定问题。此范式渐成常态,支持多模块间串行流水线或端到端训练方法。进阶RAG是模块RAG的专门形式,Naive RAG是进阶RAG的特例。三者关系为继承和发展。

新模块搜索模块通过集成LLM生成的代码、查询语言和其他定制工具,实现了对特定场景的定制和额外的语料库的直接搜索。记忆模块利用LLM的记忆能力来引导检索,通过迭代创建无界的记忆池并结合“原始问题”和“双重问题”。RAG-Fusion通过采用多查询方法来增强传统搜索系统,并揭示更深层次的变革性知识。查询路由决定用户的查询的后续操作,选择适合查询的数据存储,并确保搜索结果与用户的显式和隐含意图紧密匹配。任务适配器专注于将RAG适应于各种下游任务,并增强了跨任务和模型的通用性。

新模式下的模块RAG具有高度的适应性,允许在RAG过程中替换或重新排列模块以适应特定问题情境。优化RAG管道可以提高信息效率和信息质量,通过整合各种搜索技术、改进检索步骤、融入认知回溯、实施多功能的查询策略和利用嵌入相似性,实现检索效率和上下文信息的深度之间的平衡。这些方法有助于生成对后退提示的响应和最终的答案生成过程。然而,这种方法可能不会始终产生令人满意的结果,特别是在语言模型对主题不熟悉时。

4.检索

在RAG中,精确语义表示、协调查询和文档语义空间、以及检索器输出与大型语言模型偏好的协调,是高效检索相关文档的核心问题。

4.1加强语义表示

RAG中的语义空间对于查询和文档的多维映射至关重要,建立准确语义空间的方法包括块优化和管理外部文档的微调嵌入模型。块优化需要考虑索引内容的性质、嵌入模型、用户查询的预期长度和复杂性以及应用程序的使用情况,而微调嵌入模型需要使用专门领域的数据集,以提高模型准确捕捉特定领域信息的能力。最近的研究引入了多样化的方法,如摘要嵌入技术、元数据筛选技术和图索引技术等,以提高检索结果和RAG的性能。

4.2对齐查询和文档

RAG应用中,检索器可以通过查询重写和嵌入变换两种基本技术实现查询和文档语义对齐。查询重写通过将原始查询与额外指导结合来创建伪文档或生成“假设”文档,而嵌入变换则通过优化查询嵌入的表示并将其映射到与预期任务更紧密对齐的潜在空间中。这两种技术都能提高检索器识别结构化信息的能力。

4.3对齐检索器和LLM

在RAG管道中,提高检索命中率不一定能改善最终结果,因为检索到的文档可能不满足LLMs的需求。为了改善检索性能和更准确地响应用户查询,提出了两种将检索器输出与LLMs偏好对齐的方法:微调检索器和适配器。微调检索器时,可以使用LLM反馈信号来完善检索模型,并使用监督信号进行训练。适配器则通过API集成功能或解决本地计算资源有限的问题来帮助对齐。此外,还介绍了四种监督微调嵌入模型的方法,以提高检索器和LLM之间的协同作用。这些方法有助于提高检索性能和更准确地响应用户查询。

5.生成

RAG的重要组件是生成器,负责将检索信息转换为连贯文本。它通过整合数据提高准确性,受检索文本指导确保一致性。这种全面输入让生成器深入了解问题上下文,提供更有信息和上下文相关的响应。生成器有助于提高大型模型对输入数据的适应能力。

5.1使用冷冻LLM进行后检索

使用大型语言模型进行后检索处理,可以优化检索结果质量,使其更符合用户需求或后续任务。信息压缩和重新排序是两种常见的操作,通过减少噪音、解决上下文长度限制和增强生成效应来提高模型回答的准确性。重新排序模型在优化检索器检索的文档集合方面起着重要作用,通过重新排列文档记录,优先考虑最相关的项目,从而限制文档总数,提高检索效率和响应速度。这种方法还纳入了上下文压缩,以提供更精确的检索信息。

5.2针对RAG的微调LLM

优化RAG模型的关键在于生成器的优化,生成器的作用是接收检索到的信息并生成相关文本。为了提高生成器的性能,需要对模型进行微调,并使用代表性工作进行数据和优化函数的探索。总体优化过程包括训练数据通常包括输入-输出对,旨在训练模型根据输入生成输出。利用对比学习和实施结构化数据训练方案也可以提高模型性能。

6.RAG的增强

RAG发展关键技术主要围绕增强阶段、增强数据来源和增强过程三个方面。图4展示了RAG核心组件的分类。

图4 RAG的核心组件的分类体系图4 RAG的核心组件的分类体系

6.1RAG的增强阶段

RAG的增强阶段包括预训练、微调和推理阶段。预训练阶段通过基于检索的策略加强开放域QA的PTMs,如REALM模型和RETRO模型。微调阶段,RAG与微调结合能更好地满足特定场景需求,微调检索器能优化语义表示,协调检索与生成模型,提升通用性和适应性。推理阶段,RAG模型的推理阶段十分重要,与LLM的集成广泛,如DSP框架、PKG方法、CREAICL、RECITE和ITRG等。这些增强阶段能利用预训练模型的能力而无需进一步训练。

6.2增强源

RAG模型通过增强数据源的选择和不同层次的知识处理技术来提高有效性。增强方法包括使用纯文本等非结构化数据、结构化数据,以及利用LLM自身生成的内容进行检索和增强。结合无结构数据时,模型生成低概率单词触发,创建临时句子,用检索到的上下文重新生成句子以预测后续句子。结合结构化数据时,模型使用知识图谱提供高质量的上下文信息,缓解模型幻觉。在RAG中利用LLMs生成的文本时,模型将问题分为已知或未知,选择性地应用检索增强,或将LLM生成器用于取代检索器,通过迭代创建与检索增强生成器无界的内存池,使用内存选择器来选择作为原始问题的双重问题的输出,从而自我增强生成模型。这些方法强调了RAG中创新数据源利用的广泛性,旨在提高模型性能和任务有效性。

6.3增强过程

在RAG领域,为了解决单一检索步骤和生成可能导致效率低下的问题,提出了改进检索过程的方法,包括迭代检索、递归检索和自适应检索。迭代检索通过多次迭代提供额外的上下文参考,增强后续答案生成的鲁棒性。递归检索通过反复改进搜索查询来提高搜索结果的深度和相关性。自适应检索通过使LLM主动确定检索的最佳时间和内容来提高检索信息的效率和相关性。这些方法需要根据特定场景的要求和每个方法的固有属性进行选择。

图5 具有不同增强方面的代表性 RAG 研究的技术树图谱图5 具有不同增强方面的代表性 RAG 研究的技术树图谱

图6 RAG与其他模型优化方法的比较图6 RAG与其他模型优化方法的比较

表1 RAG与微调之间的比较

6.4RAG与微调的比较

RAG和FT是两种不同的方法,RAG适合特定查询,FT适合复制特定结构、样式或格式。FT可以提升模型性能和效率,但不适合整合新知识或快速迭代新用途。这两种方法可以相互补充,结合使用可能产生最优性能。优化过程可能需要多次迭代。

7.RAG评估

自然语言处理中的RAG模型评估在法律语言学社区中受到关注,评估主要目的是理解和优化模型在不同应用场景的性能。历史上,评估主要集中在特定下游任务中的表现,使用适合手头任务的既定指标。现在,评估的目标、方面、基准和工具已经转向基于RAG模型独特属性的研究,以提供一个全面的概述。

7.1评估目标

RAG模型的评价集中于检索和生成模块,评估检索质量可以使用命中率、MRR和NDCG等指标,评估生成质量包括真实性、相关性、非危害性和准确性,可以通过手动或自动评估方法进行。对于未标记的内容,评估还包括上下文相关的答案。评估方法可以用于检索和生成的质量评估。

7.2评估方面

RAG模型的评价主要关注三个关键质量分数(上下文相关性和答案准确性、相关性)和四种基本能力(噪声鲁棒性、负拒绝、信息整合、反事实鲁棒性)。这些因素共同影响着模型的检索和生成两大目标。质量分数从信息检索和生成过程中的不同角度评估模型的效率,而能力则对模型在各种挑战和复杂场景下的性能至关重要。表2总结了每个评估方面的具体指标。

表2 适用于评价方面RAG的指标摘要表

7.3评估基准和工具

RAG模型评估框架由基准测试和自动化评估工具组成,提供定量指标以衡量模型表现并加深对其能力的理解。基准测试评估模型基本能力,而自动化工具利用LLM裁定质量分数。这些工具和基准共同构成强大的RAG模型评估框架,如表3所示。

表3 评价框架摘要

8.未来展望

这一部分探讨了RAG的三个未来展望:未来的挑战、模式扩展和RAG生态系统。

8.1RAG的未来挑战

RAG技术虽然取得了显著进展,但仍面临一些挑战,如扩大LLM角色、规模定律和生产就绪的RAG等。RAG技术已经超越了基于文本的问答,接纳了图像、音频和视频等多种模态数据,催生了创新的多模态模型。在图像领域,RA-CM3和BLIP-2等模型实现了文本和图像的检索和生成,以及零样本图像到文本转换。在音频和视频领域,GSS方法、UEOP、基于KNN的注意力融合、Vid2Seq等也取得了进展。在代码领域,RBPS通过编码和频率分析检索与开发人员目标一致的代码示例,表现出色。RAG技术还有很大的发展空间。

8.2RAG生态系统

RAG生态系统是一种强大的语言模型,能够处理复杂的查询并产生详细的响应,在医学、法律和教育等领域表现出色。RAG生态系统的发展受到技术堆栈发展的影响,如关键工具的流行和新兴技术堆栈的独特贡献。RAG模型和技术堆栈的共同增长是显而易见的,技术进步不断为现有基础设施制定新标准。RAG工具包正在汇集成为一个基础技术堆栈,为高级企业应用程序奠定基础。然而,完全集成和全面的平台的概念仍然存在,有待进一步的创新和发展。

图 7 RAG 的生态系统概览图 7 RAG 的生态系统概览

Loading

作者 yinhua

发表回复