检索增强型生成(Retrieval-Augmented Generation, RAG) 将检索方法与深度学习的进展结合起来,旨在解决大型语言模型(LLMs)的静态限制,通过动态整合最新的外部信息。这种方法主要关注文本领域,提供了一个成本效益高的解决方案,用以改进LLMs生成的可能正确但实际错误的回答,从而通过使用真实世界数据提高其输出的准确性和可靠性。随着RAG在复杂性上的增长,并融入多个可能影响其性能的概念,本文将RAG范式组织为四个类别:预检索(pre-retrieval)、检索(retrieval)、后检索(post-retrieval)和生成(generation),从检索的视角提供了详细的观点。文中概述了RAG的发展,并通过分析重要研究讨论了该领域的进展。此外,本文还介绍了对RAG的评估方法,讨论了所面临的挑战,并提出了未来的研究方向。通过提供一个有组织的框架和分类,该研究旨在整合现有关于RAG的研究,阐明其技术基础,并强调其扩展LLMs的适应性和应用潜力。
https://www.zhuanzhi.ai/paper/64e819fddc014c8a615b8e9beb7c5deb
ChatGPT的出现因其交互能力和广泛的应用而显著影响了学术界和工业界,已成为领先的人工智能工具(Laskar等人,2023年;Jahan等人,2023年;Huang与Huang,2024年)。ChatGPT的核心是大型语言模型(LLM)GPT-4,正如(OpenAI等人,2023年)所详述,它在其前身的基础上进行了多项增强,展示了在各种自然语言处理(NLP)任务中的卓越能力(Laskar等人,2020年)。尽管有这些进步,LLMs的采用突显了几个关键问题,主要是由于它们依赖于大量数据集。这种依赖限制了它们在训练后纳入新信息的能力,导致三个主要挑战。首先,侧重于广泛和通用数据以最大化可访问性和适用性,结果在专业领域的性能不佳。其次,网络数据的快速创建,加上数据注释和模型训练所需的大量资源,阻碍了LLMs的更新能力。第三,LLMs易于生成令人信服但不准确的回答,这种情况被称为“幻觉”,可能会误导用户。 解决这些挑战对于LLMs在各个领域的有效利用至关重要。一个有前景的解决方案是整合检索增强型生成(Retrieval-Augmented Generation,RAG)技术,该技术通过在回应查询时获取外部数据来补充模型,从而确保输出更准确、更及时。图1演示了RAG如何使ChatGPT能够提供超出其初始训练数据的精确答案。自从Lewis等人(Lewis等人,2020b)在2020年引入RAG技术以来,特别是受到ChatGPT成功的影响,RAG技术已经取得了重大进展。然而,在文献中关于RAG机制的彻底分析以及后续研究所取得的进展方面存在明显的差距。此外,该领域的研究重点多样,对类似方法使用的术语含糊其辞,导致混淆。本文旨在通过提供RAG的结构化概述、分类各种方法,并对这一研究领域提供深入理解,以阐明这些方面。本综述主要关注RAG的文本应用,反映了当前这一领域研究工作的重点. RAG结合检索方法和先进的深度学习来解决两个主要问题:有效检索相关信息和生成准确的回应。RAG的工作流程在第2节中概述,将方法分类为预检索、检索、后检索和生成阶段。从第3节到第6节,对这些阶段内的技术进行了深入分析。第7节提供了所审查研究的总结,以及使用的检索器和生成器。第8节详述了RAG的评估方法。第9节探讨未来研究方向,专注于基于文本的研究,并扩展到图像和多模态数据的考虑。结论在第10节提出。 本文的贡献有三个方面:本文为理解RAG领域提供了一个全面的框架,确定了改进的领域和未来研究的挑战。它对RAG的核心技术进行了详细分析,考察了它们在解决检索和生成问题上的优势。此外,它介绍了RAG研究中使用的评估方法,突出了当前的挑战,并提出了未来研究的有希望的方向。 2 RAG框架
幻觉问题主要归因于LLMs无法获取最新信息的问题。这一限制源自模型依赖其训练数据集。RAG通过利用检索模型补充LLM的训练数据与外部来源的当前信息,提出了解决这一问题的方案,从而使生成的回答更准确。RAG提供了一个成本效率更高的选择,相比通常需要的大量训练和微调过程而言。它允许通过传统的检索方法或预训练的语言模型(LMs),动态地合并新鲜信息,无需直接将这些新数据整合到LLM中。这一特性使RAG具有灵活性和可扩展性,便于在不同的LLM上针对各种目的进行应用。通过RAG检索的信息来自实际的人类编写的数据,这不仅简化了生成过程,还提高了生成回答的可靠性。图2展示了统一的RAG框架以及基本工作流程和范式。 Khandelwal等人的研究(Khandelwal等人,2020年)表明,从训练数据集本身获取相关信息可以显著提高LLM的性能,凸显了RAG的有效性。随着时间的推移,RAG已从提供补充信息的手段发展成为使检索和生成组件之间进行多次交互的工具。这涉及进行多轮检索以提炼检索信息的准确性,并迭代提高生成输出的质量。如LangChain1和LlamaIndex2等平台已将RAG方法模块化,增强了其适应性并扩展了应用范围。尽管这些平台采用多种方法解决RAG的不同方面——从多次搜索迭代到迭代生成——它们保持对基本RAG工作流程的遵守。这种一致性对于理解它们的操作和指明进一步发展的机会至关重要。
2.1 基本RAG工作流程RAG的基本工作流程从创建一个包含外部资源的索引开始。这个索引是基于特定查询通过检索模型检索相关信息的基础。最终步骤涉及一个生成模型,该模型将检索到的信息与查询结合,以产生所需的输出。 2.1.1 索引高效的检索始于全面的索引,其中数据准备是关键。这一阶段涉及文本规范化过程,如分词、词干提取和停用词移除,以增强文本的索引适用性(Manning等人,2008年)。然后,文本段落被组织成句子或段落,以便进行更有针对性的搜索,允许精确定位包含相关关键词的段落。深度学习的整合通过使用预训练的语言模型为文本生成语义向量表示,彻底革新了索引技术。这些向量被存储,使从庞大的数据集中快速且精确地检索成为可能,显著提高了检索效率。
2.1.2 检索传统的检索方法,如BM25算法(Hancock-Beaulieu等人,1996年),侧重于文档排名的术语频率和存在性,但通常忽视了查询的语义信息。当前策略利用像BERT(Devlin等人,2019年)这样的预训练语言模型,更有效地捕捉查询的语义本质。这些模型通过考虑同义词和短语结构,提高搜索精度,通过检测语义相似性来精细化文档排名。这通常是通过测量文档和查询之间的向量距离实现的,将传统检索指标与语义理解结合,以产生既相关又符合用户意图的搜索结果。
2.1.3 生成生成阶段的任务是产生既与查询相关又反映检索文档中信息的文本。常用方法包括将查询与检索信息连接起来,然后输入到一个LLM中进行文本生成(Li等人,2022年)。尽管确保生成文本的一致性和准确性面临挑战,但在严格遵循源材料和注入输出创造性之间找到平衡也是必要的。生成的文本应准确传达检索文档的信息并与查询意图一致,同时也提供引入未在检索数据中明确包含的新见解或视角的灵活性。 2.2 RAG范式RAG范式在领域内组织研究,提供一个简单而强大的框架以增强LLM的性能。RAG的核心是其搜索机制,对生成高质量结果至关重要。因此,从检索角度看,这一范式被结构化为四个主要阶段:预检索、检索、后检索和生成。单跳和多跳检索方法,包括迭代检索-生成周期,遵循这四个阶段的结构。图3是RAG核心技术的分类树。
2.2.1 预检索检索增强生成的预检索阶段为成功的数据和查询准备奠定基础,确保信息检索的效率。这一阶段包括准备有效数据访问的必要任务。索引:过程从索引开始,建立一个有组织的系统,以实现信息的快速和准确检索。索引的具体性取决于任务和数据类型。例如,针对问答系统,句子级索引有助于精确定位答案,而文档级索引更适合于总结文档以理解其主要概念和思想。查询操作:索引后,进行查询操作以更好地匹配索引数据。这涉及查询重构(Jansen等人,2009年;Yu等人,2020年),它重写查询以更紧密地符合用户意图;查询扩展(Huang等人,2013年),通过同义词或相关术语扩展查询以捕获更相关的结果;以及查询规范化,解决拼写或术语上的差异以实现一致的查询匹配。数据修改:数据修改在提高检索效率方面也至关重要。这一步包括预处理技术,如移除无关或冗余信息以提高结果质量,并通过如元数据等附加信息丰富数据,以增强检索内容的相关性和多样性(Bevilacqua等人,2022a)。
2.2.2 检索搜索与排名:检索阶段是搜索与排名的结合。它专注于从数据集中选择和优先考虑文档,以提高生成模型输出的质量。这一阶段使用搜索算法来导航索引数据,查找与用户查询匹配的文档。识别相关文档后,开始对这些文档进行初步排名,按其与查询的相关性进行排序。
2.2.3 后检索后检索阶段旨在完善最初检索的文档,提高文本生成的质量。这一阶段包括重新排序和过滤,每项都旨在优化文档选择以完成最终的生成任务。重新排序:在重新排序步骤中,之前检索的文档被重新评估、评分并重新组织。其目标是更准确地突出与查询最相关的文档,并降低不太相关文档的重要性。这一步涉及结合额外的度量和外部知识源以提高精确性。在这种情况下,可以有效地使用精确度更高但效率较低的预训练模型,因为可用的候选文档集有限(Huang和Hu,2009年)。过滤:过滤旨在移除未达到特定质量或相关性标准的文档。这可以通过几种方法完成,例如设定最低相关性分数阈值以排除低于某一相关性级别的文档。此外,使用用户或先前相关性评估的反馈有助于调整过滤过程,确保只保留用于文本生成的最相关文档(Khattab和Zaharia,2020年;Huang和Huang,2023年)。
2.2.4 生成生成阶段是RAG流程的关键组成部分,负责利用检索到的信息增强生成响应的质量。这一阶段包括几个旨在产生可读、吸引人及富有信息量的内容的子步骤。增强:生成阶段的核心是增强步骤,其目标是将检索到的信息与用户的查询合并,创建一个连贯且相关的响应。这包括阐述过程,向检索内容添加额外的细节以丰富它。努力专注于通过重述和重组等方法提高输出的质量,增加其清晰度、连贯性和风格吸引力。将来自各种来源的信息结合在一起,提供全面的视角,并进行验证,以确保内容的准确性和相关性。定制:定制是一个可选步骤,涉及调整内容以符合用户的特定偏好或请求的上下文。这种调整包括根据目标观众的需求或内容呈现的格式调整内容,并压缩信息以简洁地传达内容的本质。这个过程还包括创建强调关键点或论点的摘要或概要,确保输出既信息丰富又简洁。