面向LLM的RAG技术:综述

论文地址:Retrieval-Augmented Generation for Large Language Models: A Survey

修订于2024 年 1 月 5 日

在这篇综述中,我们关注的是面向大语言模型(Large Language Model)的检索增强生成技术。这项技术通过结合检索机制,增强了大语言模型在处理复杂查询和生成更准确信息方面的能力。我们从同济大学和复旦大学的相关研究团队出发,综合分析了该领域的最新进展和未来趋势。

摘要

大语言模型 (大语言模型,LLMs) 虽展现出强大能力,但在实际应用中,例如在准确性、知识更新速度和答案透明度方面,仍存在挑战。检索增强生成 (Retrieval-Augmented Generation, RAG) 是指在利用大语言模型回答问题之前,先从外部知识库检索相关信息。

RAG 被证明能显著提升答案的准确性,并特别是在知识密集型任务上减少模型的错误输出。通过引用信息来源,用户可以核实答案的准确性,从而增强对模型输出的信任。

此外,RAG 有助于快速更新知识并引入特定领域的专业知识。

RAG 有效结合了大语言模型的参数化知识和非参数化的外部知识库,成为实施大语言模型的关键方法之一。本文概述了 RAG 在大语言模型时代的发展模式,总结了三种模式:初级 RAG、高级 RAG 和模块化 RAG。接着,本文梳理了 RAG 的三个主要组成部分:检索器、生成器和增强方法,以及每个部分的关键技术。同时,本文讨论了如何评估 RAG 模型的有效性,介绍了两种评估方法,强调了关键的评估指标和能力,并展示了最新的自动评估框架。最后,文章从垂直优化、水平扩展性和 RAG 的技术堆栈及生态系统三个方面,介绍了未来可能的研究方向。

1 引言

大语言模型 (LLMs) 在自然语言处理 (NLP) 领域的表现远超以往任何模型。

GPT 系列模型[Brown et al., 2020, OpenAI, 2023]、LLama 系列模型[Touvron et al., 2023]、Gemini[Google, 2023] 等大语言模型,在多个评估基准上展现了卓越的语言掌握和知识理解能力,甚至超越了多项人类评估基准[Wang et al., 2019, Hendrycks et al., 2020, Srivastava et al., 2022]。

然而,大语言模型也存在许多不足。

例如,它们可能产生不准确的信息[Zhang et al., 2023b],并在处理特定领域或高度专业化的查询时表现出知识缺失[Kandpal et al., 2023]。当所需信息超出模型训练数据范围或需要最新数据时,大语言模型可能无法提供准确答案。这一限制在将生成式人工智能部署到真实世界生产环境中尤其成为挑战,因为仅依赖于黑盒式的大语言模型可能不够。

神经网络通常通过对模型进行微调来适应特定领域或专有信息,从而将知识参数化。尽管这种方法取得了显著成效,但它需要消耗大量计算资源,成本高昂,且需要专业技术知识,因此难以适应不断变化的信息环境。在这个过程中,参数化知识和非参数化知识各司其职。参数化知识是通过训练大语言模型(LLM)获得的,存储在神经网络的权重中,代表模型对训练数据的理解和泛化能力,是生成回应的基础。而非参数化知识则存储在外部的知识源,如向量数据库中,不直接编入模型,而是作为一种可更新的补充信息。非参数化知识使大语言模型能够访问和利用最新或特定领域的信息,提高回应的准确性和相关性。

纯参数化的语言模型(LLM)将其从大量语料库中学习到的世界知识储存在模型参数中。但这种模型存在局限性。首先,它难以保留训练语料库中的所有知识,特别是对于那些不太常见且具体的知识。其次,由于模型参数无法动态更新,参数化知识可能会随时间过时。最后,参数的增加会导致训练和推理的计算成本增加。为了解决纯参数化模型的局限,语言模型可以采取半参数化方法,将非参数化的语料库数据库与参数化模型相结合。这种方法被称为检索增强生成(Retrieval-Augmented Generation, RAG)。

“检索增强生成”(Retrieval-Augmented Generation, RAG)一词最早由 [Lewis et al., 2020] 提出。它结合了一个预训练的检索器和一个预训练的序列到序列模型(生成器),通过端到端微调来以更可解释和模块化的方式捕获知识。在大型模型出现之前,RAG 主要专注于直接优化端到端模型。例如,在检索方面使用基于向量的密集通道检索(Dense Passage Retrieval, DPR)[Karpukhin et al., 2020],以及在生成方面训练较小的模型是常见的做法。

由于总体参数较少,检索器和生成器通常会进行同步的端到端训练或微调[Izacard et al., 2022]。

随着像 ChatGPT 这样的大语言模型的出现,生成式语言模型在各种语言任务中展现出卓越的性能,得到了越来越多的关注和应用[Bai et al., 2022, OpenAI, 2023, Touvron et al., 2023, Google, 2023]。

然而,大语言模型 (LLMs) 仍面临诸如幻觉式错误 [Yao et al., 2023, Bang et al., 2023]、知识更新以及数据相关问题的挑战。

这些问题影响了大语言模型的可靠性,在一些严肃的任务场景中,尤其是在需要广泛知识的知识密集型任务,例如开放领域问题回答 [Chen and Yih, 2020, Reddy et al., 2019, Kwiatkowski et al., 2019] 和常识推理 [Clark et al., 2019, Bisk et al., 2020],它们表现出了挑战。

模型参数中的隐含知识可能不够完整或不足。

后续研究发现,将 RAG 引入大模型的上下文学习 (In-Context Learning, ICL) 中,可以有效减轻上述问题,这种方法具有明显且易于实施的效果。在推理过程中,RAG 动态地从外部知识源中检索信息,并利用这些检索到的数据作为组织答案的参考。这极大地提高了答案的准确性和相关性,有效地解决了大语言模型中的幻觉式错误问题。这项技术自大语言模型出现以来迅速受到关注,已成为提升聊天机器人效能和增强大语言模型实用性的前沿技术之一。RAG 通过将事实知识与大语言模型的训练参数分离,巧妙地结合了生成模型的强大功能和检索模块的灵活性,为纯参数化模型中固有的知识不完整和不充分问题提供了有效的解决方案。

本论文系统地审视并分析了检索增强生成(RAG)的现有研究方法和未来发展道路,把它们归纳为三大范式:初级 RAG、高级 RAG 和模块化 RAG。接着,论文提供了关于三个核心组成部分的综合概述:检索(Retrieval)、增强(Augmented)、生成(Generation),强调了 RAG 的改进方向和目前的技术特色。在论述增强方法的章节中,将现有工作分为三个方面:RAG 的增强阶段、增强数据源以及增强过程。此外,论文还概述了与 RAG 相关的评估体系、适用场景等内容。通过阅读这篇文章,读者可以更全面、系统地理解大语言模型和检索增强生成的概念,深入了解知识检索增强的发展历程和关键技术,从而能够辨析不同技术的优缺点,找出适用的场景,并在实际中探索典型的应用案例。值得一提的是,Feng 等人[2023b] 在他们的研究中系统回顾了结合大语言模型与知识的方法、应用和未来趋势,特别关注了知识编辑和检索增强方法。Zhu 等人[2023] 则介绍了针对大语言模型的检索系统增强方面的最新进展,尤其关注检索系统本身。

同时,Asai 等人[2023a] 针对“什么”、“何时”、“如何”等问题,分析并阐释了基于检索的语言模型的关键步骤。与之相比,本文的目的是系统性地概述检索增强生成(RAG)的整个流程,并特别关注通过知识检索来增强大语言模型生成的研究。

图 1:现有 RAG 研究的时间表。时间表主要根据发布日期确定。

图 1:现有 RAG 研究的时间表。时间表主要根据发布日期确定。

图 1 展示了 RAG 算法和模型的发展。在时间线上,大部分与 RAG 相关的研究出现在 2020 年之后,尤其是在 2022 年 12 月 ChatGPT 发布之后,这一事件成为了一个重要的转折点。ChatGPT 发布后,自然语言处理领域的研究进入了大模型时代。初级 RAG 技术迅速受到重视,相关研究的数量也随之激增。在增强策略方面,自 RAG 概念提出以来,预训练和监督微调阶段的强化研究一直在进行。然而,在大语言模型时代,推理阶段的强化研究开始增多。这主要是因为高性能大模型的训练成本很高。研究者们试图在推理阶段通过加入 RAG 模块,以成本效益的方式将外部知识整合进模型生成中。

在探讨增强数据的使用方面,早期的 RAG 主要致力于非结构化数据的应用,特别是在开放域问答环境中。随着时间的推移,RAG 检索的知识来源变得更加广泛,其中包括高质量数据。这些数据作为知识源,有效避免了如大模型误采纳错误信息和产生错误假设(即“幻觉”)的问题。值得一提的是,RAG 也开始利用结构化知识,如知识图谱。近期,自我检索成为热点,这指的是利用大语言模型自身的知识库来提升其性能。

本论文的接下来章节安排如下:第 2 章介绍 RAG 的背景知识。第 3 章探讨 RAG 的主流模式。第 4 章分析 RAG 中的检索器功能。第 5 章着重讲述 RAG 中的生成器如何工作。第 6 章强调介绍 RAG 中的数据增强方法。第 7 章讲解 RAG 的评估体系。第 8 章展望了 RAG 未来的发展方向。最后,在第 9 章中,我们总结了本次调研的主要内容。

2 背景

本章节我们将介绍 RAG(一种模型优化技术)的定义,并将其与其他优化技术,如微调,进行对比。

2.1 定义

在技术进步的背景下,RAG 的概念也随之拓展。在大语言模型 (Large Language Models) 的领域中,RAG 特指一种模式:模型在回答问题或生成文本时,首先从广阔的文档库中寻找相关信息。然后,模型使用这些找到的信息来生成回答或文本,从而提高其预测的准确度。RAG 的方法使得开发人员无需为每一个特定任务重新训练整个庞大的模型。他们可以简单地给模型加上一个知识库,通过这种方式增加模型的信息输入,从而提高回答的精确性。RAG 特别适用于那些需要大量知识的任务。简而言之,RAG 系统包括两个主要阶段:

  1. 使用编码模型(如 BM25、DPR、ColBERT 等)根据问题找到相关的文档[Robertson et al., 2009, Karpukhin et al., 2020, Khattab and Zaharia, 2020]。
  2. 生成阶段:以找到的上下文作为基础,系统生成文本。

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

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

2.2 RAG 与微调

在大语言模型的优化过程中,除了 RAG,微调也是一种重要的技术。

可以把 RAG 想象成给模型提供一本教科书,让它根据特定的问题去查找信息。这种方法适用于模型需要解答具体问题或执行特定信息检索任务的情况。但 RAG 并不适合于教会模型理解广泛的领域或学习新的语言、格式或风格。

而微调更像是让学生通过广泛学习来吸收知识。

当模型需要模仿特定的结构、风格或格式时,微调就显得非常有用。它可以提高未经微调的模型的表现,使交互更加高效。

微调特别适用于强化模型已有的知识、调整或定制模型的输出,以及给模型下达复杂的指令。然而,微调并不适合于向模型中添加新的知识,或者在需要快速迭代新场景的情况下使用。

微调 (Fine-tuning) 的过程就像是让学生通过深入持久的学习来吸收知识。这种方法适用于在模型需要精确模仿特殊的结构、艺术风格或者格式时。微调能够使模型的表现超越未经微调的模型,并提升交互效率。它尤其适合于突出模型基础知识库中已有的知识,调整或定制模型输出,并以复杂的指引来训练模型。然而,微调并不适合于向模型中增加全新的知识,或应对那些需要快速迭代新场景的情况。RAG (Retrieval-Augmented Generation) 和微调 (Fine-tuning) 的具体比较可以参见表 1。

RAG 和微调可以相互补充,而非相互排斥,从而在不同层次上增强模型的能力。在特定情况下,结合这两种方法可以达到模型性能的最佳状态。整个利用 RAG 和微调进行优化的过程可能需要多轮迭代才能获得满意的成果。

目前的研究已经表明,检索增强生成 (Retrieval-Augmented Generation, RAG) 在优化大语言模型 (Large Language Model) 方面,相较于其他方法具有显著的优势【Shuster et al., 2021; Yasunaga et al., 2022; Wang et al., 2023c; Borgeaud et al., 2022】:

  • RAG 通过关联外部知识来提高答案的准确性,有效减少了语言模型中出现的虚假信息,使得生成的回答更加准确可信。
  • 使用检索技术能够识别到最新的信息,这使得 RAG 在保持回答的及时性和准确性方面,相较于只依赖训练数据的传统语言模型有明显优势。
  • RAG 的透明度是其一大优点。通过引用信息来源,用户可以核实答案的准确性,这增强了人们对模型输出结果的信任。
  • RAG 具备高度的定制化能力。通过索引与特定领域相关的文本语料库,RAG 能够为不同领域提供专业的知识支持。
  • 在安全性和隐私管理方面,RAG 通过数据库中设置的角色和安全控制,实现了对数据使用的更好控制。相比之下,经过微调的模型在管理数据访问权限方面可能不够明确。
  • RAG 在处理大规模数据集方面更具有扩展性。它无需更新所有参数和创建新的训练集,因此在经济效率方面更具优势。
  • 最后,RAG 提供的结果更加值得信赖。RAG 从最新数据中提取确定性的结果,而经过微调的模型在处理动态数据时可能会产生错误信息和不准确之处,缺乏透明度和可信度。

3 RAG 框架

RAG 研究范式在不断演变。本章重点介绍 RAG 研究范式的发展历程。我们将其分为三种类型:初级 RAG、高级 RAG 和模块化 RAG。虽然早期的 RAG 在成本效益上表现良好,并且性能优于传统的大语言模型 (LLM),但它仍面临着诸多挑战。高级 RAG 和模块化 RAG 的设计是为了解决原始 RAG (Naive RAG) 的特定不足。

特征比较 RAG 微调 (Fine-tuning)
知识更新 直接更新检索知识库,确保信息持续更新,无需频繁重新训练,非常适合动态变化的数据环境。 存储静态数据,需要重新训练用于知识和数据的更新。
外部知识 擅长利用外部资源,特别适合处理文档或其他结构化/非结构化数据库。 可用于将预训练中外部学习到的知识与大语言模型保持一致,但对于频繁变化的数据源可能不太实用。
数据处理 对数据的处理和操作要求极低。 依赖于构建高质量的数据集,有限的数据集可能无法显著提高性能。
模型定制 侧重于信息检索和融合外部知识,但可能无法充分定制模型行为或写作风格。 允许根据特定风格或术语调整 LLM 行为、写作风格或特定领域知识。
可解释性 答案能够追溯到具体的数据来源,提供更高的可解释性和可追踪性。 就像一个黑盒子,并不总是清楚模型为什么会做出某种反应,可解释性相对较低。
计算资源 需要计算资源来支持检索策略和数据库相关技术。外部数据源的整合和更新需保持维护。 有必要准备和整理高质量的训练数据集,确定微调目标,并提供相应的计算资源。
延迟要求 因涉及数据检索,可能带来较高的延迟。 经过微调的大语言模型 (LLM) 可以不通过检索直接回应,降低延迟。
降低幻觉 由于每个回答都基于检索到的实际证据,因此本质上更不容易产生错误或虚构的回答。 根据特定领域的数据训练模型,有助于减少幻觉,但面对未训练过的输入时仍可能出现幻觉。
伦理和隐私问题 从外部数据库存储和检索文本可能引起伦理和隐私方面的担忧。 训练数据中的敏感内容可能会引起伦理和隐私方面的问题。

表 1: RAG 与微调之间的对比

3.1 原始 RAG (Naive RAG)

原始 RAG (Naive RAG) 代表了早期研究方法,在 ChatGPT 广泛应用后迅速崭露头角。原始 RAG 的流程包括传统的索引、检索和生成步骤。原始 RAG 也被概括为一个“检索” - “阅读”框架 [Ma et al., 2023a]。<

  • 17
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值