Advertisement

面向LLM的RAG技术:综述

阅读量:

论文链接:Retrieval-enhanced generation of large-scale language models: a comprehensive review

修订于2024 年 1 月 5 日

在本文综述中, 我们重点分析了与大型语言模型相关的检索增强生成技术。该技术通过整合检索机制, 在处理复杂查询及输出更为精确的信息方面展现出显著优势。基于同济大学与复旦大学的研究团队, 我们系统梳理并深入探讨了当前研究动态及其发展趋势。

摘要

虽然展现了强大的能力(LLMs),但在实际应用场景中仍面临诸多挑战。例如,在准确性、知识更新速度以及答案透明度等方面均存在明显不足。检索增强生成(Retrieval-Augmented Generation, RAG)旨在,在使用大语言模型进行问题求解之前,通过外部知识库获取相关信息以辅助生成结果。

RAG 显示出显著提升答案准确性的能力,并特别地,在涉及大量知识的任务中减少了模型的错误输出。通过引用相关的信息来源,
从而让用户能够验证答案的真实性,
以增强对模型输出结果的信心。

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

RAG 在大语言模型实现中发挥着关键作用的方法,在过去几十年里逐渐成熟和完善。本文系统地阐述了 RAG 在大语言模型时代的发展脉络与主要路线选择过程,并归纳出三种主要类型:初级 RAG 模式、高级 RAG 模式以及模块化 RAG 模式等基本分类方式。研究者还对 RAG 的核心组件进行了深入解析与技术拆解,在具体讨论中分别阐述了检索模块、生成模块以及增强技术三大部分的内容构成,并重点解析了每种模块的关键技术和技术创新点。此外,在模型性能评价方面展开深入探讨,在现有研究基础上详细介绍了两种主要的性能评估策略:精确率-召回率曲线分析法以及BLEU分数综合评价法等基本指标体系,并着重强调了关键性能指标的设计标准与理论支撑能力,并重点展示了当前最先进的自动生成性性能评估框架的技术架构与实现原理。最后从垂直优化方向、水平扩展路径以及 RAG 技术架构生态系统的构建等多个维度出发,在理论层面提出了若干值得深入探索的研究课题与技术方向

1 引言

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

GPT 主要基于 Brown 等人于 2020 年的研究成果及 OpenAI 的开发(发布于 2023 年),LLama 系列模型则结合 Touvron 等人的创新研究(发表于 2023 年),而 Gemini 则由 Google 集成(发布于同一年)。这些主要的大语言模型结合上述研究,在多项人类评估基准测试中表现出色,并展示了卓越的语言理解和深度知识掌握能力。(Wang 等人于 2019 年、Hendrycks 等人于 2018 年以及 Srivastava 等人于 14 年的相关研究)

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

例如,在某些情况下(Zhang et al. , 2023b)可能输出不准确的信息,并且在处理特定领域或高度专业化的查询时可能会表现出知识缺失(Kandpal et al. , 2023)。当所需信息超出了模型训练数据的覆盖范围或者需要最新的数据支持时,大语言模型可能无法提供准确的答案。这种限制使得在将生成式人工智能部署到真实世界生产环境中的时候显得尤为突出,因为仅仅依赖于单一的大语言模型可能无法满足实际需求。

神经网络通常通过微调来适应特定领域或专有信息,并使知识得以参数化处理。尽管该方法表现出显著的效果, 但其背后伴随的是巨大的计算资源消耗, 需要专业背景支撑以实现, 因此难以应对瞬息万变的信息环境变化。在这一过程中, 参数化与非参数化的知识各自承担不同的功能角色。其中, 参数化的知识基于训练的大语言模型(LLM)获取并嵌入到神经网络的权重中, 作为生成回应的基础单元; 而非参数化的知识则以外部的知识源(如向量数据库)为基础, 以可更新的形式补充模型能力, 使大语言模型能够接入最新的领域信息,并提升响应的相关性和准确性。

基于纯参数化的语言模型(LLM)通过大量语料库的学习而将世界知识储存在其参数之中。然而这种模型存在显著局限性首先它无法有效存储训练语料库中的核心知识尤其是那些不常见且具有特定性的信息其次由于其参数固定无法实现动态更新导致所学知识可能随着时间逐渐过时最后随着参数数量增加训练与推理所需计算资源也随之显著增加为应对上述问题语言模型可采用半参数化方法将非结构化的索引数据库与传统参数化模型相结合这种方法被称为检索增强生成机制(Retrieval-Augmented Generation RAG)。

该术语'检索增强生成'(Retrieval-Augmented Generation, RAG)最早由 Lewis et al., (2020)提出。该方法整合了一个经过预先训练的检索组件与一个经过预先训练的生成器,在统一框架下进行联合优化以实现知识捕获的一种更加可解释且模块化的方式。在大规模模型出现之前,RAG的主要关注点在于直接优化端到端系统的性能。例如,在信息获取阶段采用了基于向量空间的大规模密集通道检索方法(简称DPR)。(Karpukhin et al., 2020);而在生成阶段则倾向于对较小规模的小型模型进行训练以达到最佳效果

由于总体参数数量较少的事实存在,在实际应用中检索器与生成器倾向于选择协同的并行学习与逐步优化策略,并结合统一的目标函数进行微调[Izacard et al. , 2022].

伴随着一系列具有里程碑意义的大规模语言模型(如ChatGPT)的问世

尽管大语言模型 (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),均展现了显著挑战性

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

后续研究发现,在大模型上下文学习(In-Context Learning, ICL)中引入RAG(Reasoning-Augmented Generation)能够显著缓解上述问题,并展现出显着且易于实现的优势。在推理阶段,RAG动态调用外部知识库的数据资源,并以此作为辅助生成答案的基础信息来源。这种机制极大地提升了回答的质量与相关度,并有效降低了大语言模型产生的幻觉式错误现象的发生概率。这项创新技术自大语言模型问世以来迅速引起关注,并被广泛应用于提升聊天机器人性能以及增强大语言模型的实际应用效果等前沿领域之中。通过将事实知识与大语言模型的训练参数成功分离,并结合生成模型的强大逻辑推理能力和检索模块的灵活运用机制,在纯参数化模型中固有的知识完整性缺陷上实现了有效突破。

本文全面探讨了检索增强生成(RAG)领域的已有研究成果及其未来发展路径,并将其划分为主要模式:基础型RAG、提升型RAG以及模块化设计三类。文章系统梳理了RAG的关键组成要素——检索机制(Retrieval)、强化内容(Augmented)与生成能力(Generation),重点阐述了该技术的特点与发展趋势。在专门探讨提升策略部分中,文章将现有研究划分为三个维度:RAG的具体强化阶段、支撑强化过程的数据来源及强化流程等维度,并深入分析了相关评价框架及其应用场景。此外,在具体实施路径方面提出了若干实践建议,并结合实例说明其应用价值与局限性。特别值得注意的是,在知识密集型任务领域中,Feng 等人[2023b]的研究着重于知识编辑与检索融合的方法体系构建及其未来趋势预测部分,而Zhu 等人[2023]则聚焦于提升检索效率与模型性能的技术创新成果。

与此同时

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

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

图1呈现了RAG算法和模型的发展过程。从时间线来看,在2020年之后出现的大部分与RAG相关的研究工作集中在该领域,并且在2023年1月ChatGPT推出的背景下成为转折点。自ChatGPT发布后不久起,在自然语言处理领域就开启了大模型时代的先河。初级RAG技术迅速引起了广泛关注,并带动了一系列相关研究数量呈现显著增长趋势。“预训练+监督微调”阶段的研究也取得了突破性进展。“推理阶段”的强化研究才逐渐增多起来这主要是因为高性能大模型的训练成本非常高难以满足实时推理的需求因此研究者们试图通过优化设计在推理过程中实现对外部知识库的有效整合从而在保证性能的同时提升整体效率

在研究增强数据的应用模式时发现,在早期阶段 RAG 方法主要侧重于非结构化数据的应用场景尤其是开放域问答系统中。随着时间发展 RAG 检索的知识来源逐渐扩展至包含更多高质量的数据这些数据被视为构建知识库的重要资源能够有效规避大模型因误采信错误信息而导致的错误假设问题(即所谓的"幻觉")。值得注意的是 在知识表示方面也取得了一些进展 最近的研究重点转向自我检索机制即通过大语言模型自身的知识库来提升其推理与检索能力。

本论文随后将依次展开各章内容介绍:首先介绍RAG的背景知识(第2章),接着深入分析RAG的主要模式发展现状(第3章)。随后系统阐述检索器在RAG中的功能特点(第4章)。重点解析生成器在RAG系统中的运作机制(第5章)。详细探讨数据增强技术在RAG优化中的重要性(第6章)。全面阐述评估体系在RAG性能测定中的应用价值(第7章)。展望未来发展方向时指出其潜力(第8章)。最后部分通过第九章总结了本次研究的核心成果与收获

2 背景

在本章节中, 我们将阐述 RAG(一种模型优化技术)的概念, 并将其与其它优化方法进行比较。

2.1 定义

伴随着技术的飞速发展,在大语言模型领域中,RAG的概念也逐渐扩展。
在大语言模型领域,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)是一种系统深入的学习方式,在这一过程中学生可以通过持续不断的训练来不断积累知识经验。这种手段特别适用于要求模型精确模仿特殊结构、艺术风格或格式的情景下。通过微调处理后,模型的性能显著提升,并且交互体验更加顺畅。它特别适用于强化模型已有的知识基础,并根据特定需求调整输出方式。此外,在复杂任务中进行指导性的训练也是一个重要特征。需要注意的是,在某些情况下无法直接应用此方法来拓展模型的知识面或快速应对新场景的问题。表1详细列出了RAG与微调的具体对比情况。

RAG与微调之间并非此消彼长的关系,在不同层次上能够实现优势互补;这种互补性不仅体现在协同作用上,并非仅仅局限于简单叠加的关系;而是能够在多层次架构中形成协同效应,并非仅仅局限于简单叠加的效果;这种互补关系不仅能够提升模型性能的潜力,并非仅仅停留在表面效果层面;而是能够在多层次架构中形成协同效应并实现质的飞跃;整合这两种技术策略能够在特定场景下实现最优效果;通过系统性地整合RAG与微调技术策略,在多轮迭代的过程中能够逐步优化出令人满意的解决方案

Shuster et al. , 2021; Yasunaga et al. , 2022; Wang et al. , 2023c; Borgeaud et al. , 2022

Shuster et al., 2021; Yasunaga et al., 2022; Wang et al., 2023c; Borgeaud et al., 2022

  • RAG 借助外部知识网络来提升回答的准确性,并显著降低了语言模型中出现虚假信息的概率。这一改进使生成的回答更加准确可信。
  • 采用检索技术能够快速识别最新信息资源,在保持回答及时性的同时也确保了结果的准确性。相较于仅依赖训练数据的传统语言模型而言,
  • RAG 在透明度方面具有明显优势。通过引用信息来源渠道用户可以更好地验证答案结果的真实性与可靠性。
  • 该系统展现出强大的定制适应能力。基于特定领域的大规模语料库索引系统能够为其提供专业的知识支持服务
  • 在安全性和隐私保护层面RAG 通过精确定位角色权限实现了更为精细的数据使用管控相比经过微调优化后的模型在保障数据访问安全方面表现更为突出
  • 针对超大规模数据集处理问题RAG 可以无需重新配置所有模型参数即可实现高效的批量处理这使其在经济效率方面具有显著优势
  • 最终系统输出的结果更具参考价值由于采用了最新的数据提取方法确保了结果的一致性和稳定性经过微调优化后的模型虽然可能带来更好的即时响应但在动态数据处理方面的可靠性仍有待提高

3 RAG 框架

研究范式呈现出多样化的发展态势

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

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

3.1 原始 RAG (Naive RAG)

原始 Naive RAG 被视为早期研究方法的象征,在 ChatGPT 广泛部署后迅速崛起。其工作流程主要包含传统的索引机制、检索流程以及生成过程。该方法也被总结为一个以检索为基础的阅读框架 [Ma et al. , 2023a]。

索引

特指在离线状态下从数据源获取数据后进行索引的构建过程

数据索引:数据索引主要包括对原始数据进行清洗和提取,并将多种格式的数据文件(如PDF、HTML、Word及Markdown等)转换为纯文本形式。

在处理时需将加载文本进行分块划分

嵌入和创建索引: 该阶段主要依赖语言模型将文本转换为向量的过程。 这些生成的向量随后将在检索过程中用于计算它们与查询向量之间的相似度。 因为要处理大量文本并实时处理用户的查询问题, 所以要求嵌入模型具备高效的推理能力, 同时确保模型参数规模不过于庞大。 编码完成后, 下一步则是构建索引系统, **以便实现快速且频繁的数据检索功能。

检索:

基于用户的输入请求,系统会调用与前期一致的编码框架将查询文本转换为向量表示,并通过计算问题向量与文档块集合之间的相似度,在一定阈值下筛选出与当前问题高度相关的前K个文档片段作为补充背景资料。

生成:

将指定问题与相关文档整合形成新的提示语。随后, 大语言模型(LLM)被赋予根据提供的信息来执行任务. 根据具体任务需求, 可以选择让模型依据自身知识库运行或仅基于当前信息执行操作. 如果存在历史对话记录, 则可将其整合到提示语中以支持多轮交互过程.

朴素 RAG 的挑战:

朴素 RAG 主要在三个方面面临挑战:检索质量、回应生成质量和增强过程。

检索质量: 此方面的诸多问题较为复杂。其中最显著的问题是检索精度不高,在实际应用中表现为大部分文档块与查询主题关联性不足,并可能造成检索结果的信息失真或逻辑脱节;此外还有低召回率的问题存在,在具体应用中表现为未能全面捕捉所有相关文档内容因而影响大语言模型生成回答所需的信息完整性;而数据冗余或发生时态变化也会导致检索结果出现偏差

回应生成质量: 此类问题具有多样性。其中最显著的问题在于模型因缺乏足够的上下文而编造出错误的信息。此外,在回答时存在不相关的现象。进一步而言,在生成回应时出现有害或有偏见的情况也是一个不容忽视的问题。

增强过程:在最终阶段, 增强过程面临着一系列关键挑战. 其中, 最为重要的是 如何将检索到的文段及其上下文有效地纳入当前生成任务. 若处理不当, 生成内容可能会显得零散无序. 当多个检索结果包含相似信息时, 冗余与重复的问题会愈发突出, 这可能导致内容出现大量冗余与重复. 此外, 如何准确评估每个文段对生成任务的重要性和相关性同样充满难度, 增强过程需要采取恰当的方法来衡量其价值. 由于检索到的信息来源多样且风格各异, 增强过程还需努力调和这些差异, 以确保输出结果的一致性和连贯性. 最终, 生成模型若过度依赖增强信息源, 可能会导致内容仅局限于已提取的信息片段而不具备创新价值

3.2 高级 RAG

为了针对Naive RAG的局限性进行改进, 高级RAG采用了专门的设计方案. 在提升检索生成质量方面, 高级RAG引入了预检索与后检索方法的基础上. 它采用滑动窗口技术、细粒度分割策略以及元数据辅助等手段来优化索引结构, 从而有效地解决了Naive RAG在索引构建过程中存在的不足. 同时, 高级RAG还开发出多种优化搜索流程的技术. 在具体实施时, 则可以选择流水线架构或者端到端架构两种不同的设计路径来进行优化配置.

预检索处理

优化数据索引 该系统采用多策略进行设计与实现以确保数据库性能的持续提升。具体而言包括:细化查询处理流程以减少资源消耗、构建高效的数据访问接口以及通过智能算法管理事务冲突等关键操作

系统性能评估指标设计研究 研究团队开发了一套完整的评估指标体系用于衡量系统的性能表现包括计算效率存储效率网络带宽以及系统的扩展性与容错能力等核心要素

大规模并行计算框架构建 该框架基于分布式计算模型实现了大规模并行任务的高效调度与执行支持了从单机到分布式集群环境下的高性能计算需求

分布式存储与计算技术研究 研究重点包括分布式存储协议的设计与实现分布式计算模型的构建以及相关的性能保障措施如负载均衡动态资源分配等关键技术和方法

复制代码
1. 

提升数据粒度: 优化索引前的内容旨在通过提高文本的一致性和标准化程度来增强系统性能。通过去除无关细节和特殊符号以保证事实的准确性以及内容的丰富性。在消除术语歧义及实体不明确问题的同时简化检索流程以提高效率并减少冗余信息处理工作。通过持续更新过时文档来维护系统的及时性进而提升整体表现效果并确保所有信息均经过验证以减少不确定性因素对结果的影响

复制代码
2. 

提升索引组织效率:

复制代码
3. 

添加元数据信息: 该策略的主要目标是将引用的相关信息以日期和用途(主要用于筛选)的形式嵌入到数据块中。引入诸如章节标记和引用小节等辅助信息有助于提升检索效率。在索引被划分成多个独立块的情况下,在确保高效检索的同时需要考虑如何优化查询处理逻辑以提高准确性和响应速度。通过利用这些元数据进行初步筛选可以显著提升整体搜索性能

复制代码
4. 

对齐优化: 以核心目标为中心的策略主要聚焦于解决不同文档间的技术挑战。其核心理念在于构建"假设性问题"框架,通过这种方法能够有效整合多源数据的一致性问题。

复制代码
5. 

混合检索: 混合检索的主要优势在于它灵活地综合运用了不同检索技术的独特优势。该方法通过智能集成关键词搜索、语义搜索和向量搜索等多种技术手段,在满足各种类型用户查询需求的同时系统性、全面性地获取到最相关且内容丰富的信息资源。该策略作为提升RAG流程性能的关键组件,在整体效能优化方面发挥了不可替代的作用

嵌入 (Embedding)

微调嵌入: 调整后的micro-tuning model对其有效性的提升具有显著影响。micro-tuning的主要目标在于增强检索内容与查询之间的相关性。其作用类似于在语音生成前对"听觉"系统的优化,在此过程中改善最终输出的质量和准确性。通常采用的方法包括针对特定领域上下文进行micro-tuning以及优化检索步骤以提高相关性。尤其是在涉及不断变化的专业领域或处理罕见术语的情况下,这些定制化的micro-tuning方法能够显著提升检索的相关性.BGE[BAAI, 2023]是一个经过micro-tuning优化后的高性能embed model,例如由BAAI-3开发的BGE-large-EN版本.为了实现这一目标,首先利用诸如gpt-3.5-turbo等大型语言模型(LLM)根据文档块生成问题,其中问题与答案(文档块)构成了训练pair.

动态嵌入(Dynamic Embedding) 是一种根据所处位置进行调整的向量表示方法。与传统的静态嵌入不同的是,动态嵌入赋予每个单词 根据其所在的上下文环境获得独特的向量表达。以Transformer架构为例,在BERT等这类模型中,同一个词在不同的上下文中会有不同的嵌入表现.研究表明,在使用OpenAI's text-embeddingada-002模型时,当文本长度低于5个Token时,会出现异常高的余弦相似性,这表明该方法难以充分捕捉短文本的信息特征.因此,理想的状态应该是能够提供足够的语境信息以保证良好的性能. OpenAI's embeddings-ada-02系列模型正是基于类似GPT的大语言架构开发而成,相较于传统静态嵌入方法,它在一定程度上增强了对语境的理解能力.尽管如此,该方法仍然无法完全匹配近年来一些更先进的大语言模型(如GPT-4)在复杂语境理解方面的能力.

检索后处理流程

在数据库中检索到有价值的信息片段后,将其与查询语句整合输入给大语言模型可能会遇到困难。当一次性将所有相关文档传递给大语言模型时,可能会超过其处理能力。将多份文档连贯地拼接成一个长长的提示不仅效率低下而且容易引入干扰,影响其专注于关键信息点。因此有必要对获取的信息进行进一步优化处理

ReRanking Algorithm(重新排序算法)

Prompt 压缩 :研究表明,在大规模语言模型中进行提示检索可能会显著降低 RAG 的性能水平。在后续处理阶段,我们重点在于去除冗余背景信息,并突出核心段落的同时精简整体的背景信息长度。例如 Selective Context[Litman et al. , 2020] 和 LLMLingua [Anderson et al. , 2022]等方法通过使用小型语言模型计算提示之间的互信息值或困惑度指标来评估各个提示的重要性并实现去噪功能。

不过,在 RAG 或者长篇上下文的情境中,这些方法可能会遗失关键信息。

Recomp [Xu et al. , 2023a]通过训练不同精细程度的压缩器来应对这一问题。

对于包含大量复杂上下文的文本段落 [Xu et al. , 2023b] ,该方法通过拆解与精简信息实现对复杂文本的高效解析 。与此同时 ,' 在记忆迷宫中漫步 ' [Chen et al. , 2023a] 则构建了一种多层次的信息归纳系统 ,以提升大语言模型(LLM)识别关键信息的能力 。

RAG管道优化:
检索过程的改进旨在提高RAG系统的工作效率和信息质量。当前研究主要聚焦于通过整合多种搜索技术来改善检索流程,并引入认知回溯机制以灵活应用多样的查询策略。同时,在嵌入式的相似度评估基础上进行调整以确保高效与丰富语义信息之间的平衡。

混合搜索的探索: 该系统巧妙融合运用了基于关键词的核心检索技术、深层含义的信息匹配机制以及高维空间中的向量匹配方法。通过这种综合运用策略, 使得该系统能够适应多种查询模式和信息检索需求, 最大限度地提供最相关且内容丰富的检索结果。作为提升整体流程的关键辅助手段, 深入应用这种混合搜索策略显著提高了整个流程的表现水平

递归检索与查询引擎: 在 RAG 系统中应用了递归检索与高级查询引擎作为提高其有效性的关键手段之一。首先,在初始阶段获取小型文档块以抓住关键语义信息。随后的过程则会提供更多较大的文档块以丰富大语言模型(LM)的上下文信息来源。通过这一双重策略,在保证高效的同时也能够提供更加深入的信息支持。

StepBack-Prompt Method:该方法被嵌入到 RAG 流程中(Zheng et al. , 2023),旨在推动大语言模型 (LLM) 在处理具体案例时能够后退一步,并转而思考其中的普遍概念和基本原理。研究表明,在应对各种复杂的推理密集型任务时,默认情况下该结合后的双向提示机制表现出卓越的效果,并充分体现了其与 RAG 的良好兼容性特点。这种结合不仅有助于生成符合要求的回答,在最终的问答环节同样发挥着关键作用

子查询: 基于不同的应用场景, 可采取多种可供选择的检索策略, 包括但不限于LlamaIndex框架提供的多种检索引擎, 层次化的检索方式, 矢量检索技术以及基础级的线性扫描检索方法。

HyDE 方法: 该方法建立在以下假设基础之上:与直接查询相比,在嵌入空间中通过大语言模型(LLM)生成的答案可能更为接近。HyDE 首先通过响应查询产出一个假设性文档(答案),随后计算其嵌入,并利用此嵌入去检索与假设性文档最相似的真实文档。这种方法主要关注的是答案间的嵌入相似性问题,并非单纯依据查询本身的嵌入特性来实现检索效果。然而,在某些特定场景下——尤其是当语言模型对所涉及的话题知识储备不足时——这种做法可能会导致错误实例数量上升。

图 3:三种 RAG 范式的比较

图 3:三种 RAG 范式的比较

模块化 RAG

传统的"原始RAG"框架被模块化重新设计,并打破了原有的架构束缚

新模块

搜索模块: 与基于简单/高级 RAG 的常规相似性检索不同的是,在此特定场景下使用的搜索模块整合了直接在附加语料库中执行搜索的方法。这类方法不仅包括利用大语言模型(LLM)生成的代码以及 SQL 和 Cypher 等专业查询语言进行操作的技术方案,并且也涵盖了采用一些自定义工具的应用场景。该系统对可寻址的数据资源具有多样化支持能力,在搜索引擎的基础上还包括对文本文件、表格数据库以及知识图谱等多种类型的数据资源的支持[Wang et al., 2023c]

记忆模块: 记忆模块主要依赖于大语言模型本身所具有的记忆功能,并以此为核心来辅助信息检索过程。其核心策略在于识别与当前输入最相匹配的记忆内容。例如,在Cheng et al. (2023b)的研究中提出了一种名为Self-mem的方法论框架, 其通过反复运用强化检索机制的生成模型, 构建了一个既能包含原始查询又能包含双层问题分析的无限制的记忆数据库。该强化检索机制能够通过自身输出不断优化自身性能, 在推理过程中使得处理的信息更加贴近数据的真实分布情况, 而非仅依赖训练数据(Wang et al., 2022a)的支持

额外生成模块: 针对检索过程中产生的冗余信息及噪声干扰,该模块利用大型语言模型构建必要背景知识,而非仅依赖于单纯的数据查询[Yu et al. , 2022]. 这种方法从而使得由大型语言模型所生成的内容更具与检索任务相关的关联性

任务适应模块:
该模块旨在通过调整 RAG 方法来使其适应多种下游任务需求。
例如, 如UPRISE[Cheng et al., 2023a]这类方法能够从预先构建的数据池中自动提取适合零样本任务输入的提示信息。
而PROMPTAGATOR[Dai et al., 2022]则利用大型语言模型作为少样本查询生成器, 基于生成的数据创建针对特定任务的检索器。
借助大型语言模型的强大泛化能力,PROMPTAGATOR得以仅基于少数示例就能开发出专门针对特定任务的应用级检索系统。

对齐模块: 在 RAG 应用过程中,确保查询与文本之间的精确匹配始终是提升系统性能的关键要素之一。随着模块化设计的兴起,在RAG架构中集成一个可训练的Adapter组件能够显著改善系统对齐性能。例如基于强化学习方法的研究表明(Yang等人提出)构建了一个依赖于大语言模型奖励机制的上下文适配器。该适配器位于检索器与生成器之间,在基于标注的数据下进行自回归优化的过程中不断进化完善其功能特性。具体而言,在注释数据集上进行实验验证表明(具体结果)该改进方案能够在保持原有性能基础上实现显著提升。

AAR, Yu et al. (2023b) 开发了一款通用插件工具,该工具能够从现有大语言模型中提取偏好信息,进而利用这些信息来支持那些未曾联合微调或未知背景的大语言模型

RRR[Ma et al., 2023a] 开发了一个强化学习驱动的系统来优化信息检索。

验证模块的设计: 在实际应用中, 我们无法总是确保检索到的数据是可靠的. 这可能会影响大语言模型输出的质量. 因此, 在完成信息检索后立即建立一个辅助检验机制(即验证模块), 以便系统能够评估所检索文档与查询之间的关联程度. 这样做有助于提高算法抗干扰能力[Ru et al., 2023a].

新模式 Modular

RAG 的组织架构极具灵活性,在特定语境下可对 RAG 过程中的功能单元进行增删改替或全面重构。基础 Naive RAG 主要包含检索与生成两大核心功能(部分文献将其归类为阅读或合成类型),由此形成了极强的适应能力和多样化的能力。当前研究主要集中在两类主要模式上:一类是增减或更换功能组件;另一类则是优化各环节之间的协作流程。

在增强特定功能策略下进行增模或换模时,我们沿用原有的检索-阅读架构,并在必要时引入新模块以拓展功能边界.RRR[Ma et al. , 2023a]提出了一种基于LLM驱动的重写-检索-阅读流程,其中强化学习框架中的重写模块作为奖励函数指导改进,从而优化后续任务性能.类似地,我们也可以根据需求选择性更换组件:在[Yu et al. , 2022]中采用生成模块替代检索模块;而[Sun et al. , 2022]则将外部知识检索转化为基于模型权重的知识检索机制,即首先由LLM自主记忆与任务相关的知识信息,然后生成适用于知识密集型自然语言处理的任务输出.

优化模块间的工作流 在优化领域中加强语言模型与检索模型之间的协同作用是关键。DSP[Khattab et al., 2022] 提出了展示-搜索-预测架构,并将其视为一个明确的操作系统而非简单的任务提示机制来应对知识密集型的任务需求。随后提出的ITER-RETGEN[Shao et al., 2023] 则通过生成内容辅助检索过程,并通过迭代执行"检索增强生成"与"生成增强检索"动作形成循环往复的检索与阅读机制。而Self-RAG[Asai et al., 2023b] 则新增了一个负责主动判断的核心组件从而使得Modular RAG框架能够灵活配置各种功能组件

4 检索器

在RAG(检索增强生成)技术体系中,“R”代表检索功能,其主要功能是从海量知识库中筛选并提取出与查询相关的前k条信息.尽管这一技术路径在信息处理效率上具有显著优势,但构建一个高效精准的检索系统仍然面临诸多技术难题.本章将深入探讨以下三个核心议题:第一,如何建立精确且一致的知识表示模型?第二,如何实现查询与文档语义特征的有效匹配?第三,如何优化检索结果以适应大型语言模型的需求?

4.1 如何获得准确的语义表示?

在 RAG 中,语义空间指的是查询和文档被映射的多维空间。

在该语义空间范围内进行检索操作。若语义表达不够精准,则可能导致严重后果。本节将进一步介绍构建精确且可靠的语义空间的两种方法。

块优化

将外部文档划分为块以便提取更为精细的特征,并接着使这些块被嵌入

插入过大或过小的文本块可能会影响效果。从而确定最适合语料库文档的理想尺寸至关重要,以便保证搜索结果的准确性和相关性

在选择分块策略时需考虑的因素包括:被索引内容的特性、所使用的嵌入模型及其最佳块尺寸、用户查询的预期长度及复杂性以及检索结果在特定应用场景中的使用情况。例如,在处理不同大小的内容时应选用相应的分块模型。不同的嵌入模型如Sentence-Transformer和text-embedding-ada-002在处理不同大小的文本片段时表现出各自的优势;具体而言,Sentence-Transformer最适合单句处理,而text embedding - Ada - 002则最适合处理包含 256 或 512 Token 的文本片段.这可能与其所使用的大型语言模型(LLM)中的 Token 限制直接相关,因此可能需要相应地调整分块尺寸.实际上,准确的结果可以通过灵活应用多种分块策略来实现,但不存在最佳策略,只有最适合当前需求的最佳策略.

当前的 RAG 研究主要应用了多样化的块优化策略,在提升搜索效率与精确度方面取得了显著成效。具体而言,在现有技术中滑动窗口技术表现尤为突出。例如滑动窗口技术通过反复检索过程整合了全局范围内的相关信息资源,并实现了层次化的信息检索机制。

Small2big 技术在搜索过程中采用小文本块,并帮助语言模型获取更大的相关文本块进行处理。摘要嵌入技术通过Top K检索对文档摘要进行提取。元数据过滤技术利用文档的元数据信息进行筛选。图索引技术将实体和关系转换为节点与连接,在处理多跳路径时显著提高了检索的相关性。综合运用这些方法后显著提升了RAG系统的检索效果和性能水平。

微调嵌入模型

在确定了Chunk的合适大小后,我们需要利用一个嵌入模型(Embedding model)将Chunk与查询映射至语义空间中。这也就意味着,在整个语料库中如何有效地表示这一概念变得至关重要。如今,一些出色的嵌入模型已经问世现已成为各个领域的研究热点之一:例如UAE[AngIE, 2023]、Voyage[VoyageAI, 2023]以及BGE[BAAI, 2023]等都已在大规模语料库上进行了预训练工作。然而,在具体领域时应用这些模型可能会遇到局限性:例如在某些专业领域内可能无法准确捕捉到领域的独特信息特征。此外为了使这些模型能够更好地理解用户查询与内容的相关性我们需要对其进行任务特定的微调处理而未经此类处理则可能会影响其在特定任务中的性能表现由此可见微调对于提高模型的实际应用效果具有不可替代的作用。

领域知识微调

嵌入模型微调的主要模式涵盖领域知识指导型和数据增强型两种主要方式。为了使嵌入模型深入掌握领域特定信息的本质特征, 我们将开发用于该任务领域的专用数据集, 通过系统性的方式对该类模型进行针对性训练, 达成最佳的效果提升目标。

然而,在训练方法上存在显著差异的是它们采用的数据类型。当前主流的做法采用了包含查询信息、语料库内容以及相关文档信息这三类核心数据的技术路线。该系统利用查询信息从语料库中提取相关信息,并通过检查这些相关信息是否满足需求来评估系统的性能。

在构建数据集、进行模型微调以及评估这三个环节中(段落1),每个环节都可能面临诸多挑战(段落1)。该系统基于[Liu, 2023]的研究成果特别针对嵌入模型的微调流程设计了一套关键分类体系与功能模块(段落2)。通过建立领域知识语料库并采用其中提供的相关技术手段(段落3),从而能够便捷地获取专门针对不同领域需求的专业化嵌入技术方案(段落4)。

对下游任务的微调

根据下游任务优化嵌入模型同样具有重要意义。在处理特定任务时,已有研究利用大语言模型的功能进行嵌入模型的微调工作。比如,PROMPTAGATOR[Dai et al. , 2022]通过将大语言模型作为少样本查询生成器,生成了专门针对特定任务的数据集,并构建了相应的检索器,从而解决了某些领域因数据不足而难以实施常规监督微调的问题。LLM-Embedder[Zhang et al. , 2023a]则采取了一种不同的策略,即利用大语言模型为多个特定任务中的数据输出奖励值,并通过结合硬性标记数据集以及LLM提供的软性奖励信息对检索器进行了双重优化。

这种做法在一定程度上融合了领域知识并基于特定任务的优化提升了语义表达能力。然而,在大多数情况下这种训练方式得到的检索器通常不直接有益于大语言模型相关研究发现可以利用LLM反馈机制通过监督微调提升了嵌入模型性能。(更多细节将在第 4.4 节介绍)

4.2 如何协调查询和文档的语义空间

在 RAG 应用环境中存在一些检索器采用相同的嵌入模型同时进行查询与文档的处理 相反地 则有一些检索器采用了不同的模型分别处理这两个任务 用户提供的原始查询可能不够清晰或缺乏必要的语义信息 因此 协调用户输入与文档间的语义关联显得至关重要 本节将详细介绍两种关键技术 旨在帮助实现这一目标

查询重写

一种直接的方式是对查询进行重写。

据Query2Doc[Wang et al., 2023b]及ITER-RETGEN[Shao et al., 2023]所报告的, 基于大语言模型的能力能够生成一个具有指导性的伪文档, 然后将原始查询与该伪文档整合, 形成一个新的查询.

在HyDE[Gao et al. , 2022]中,则是通过文本标识符构建查询向量,并利用这些标识符生成一个假设的相关文档。

由Ma团队于2023年提出的RRR框架开创了一项创新的方法,在检索与阅读顺序上进行了颠倒,并专注于优化查询重写过程。该方法首先通过大型语言模型自动生成搜索查询;随后通过网络搜索引擎获取相关信息;最后利用小型语言模型协助大模型进行"训练重写"过程以提升效果。与此同时,在同一年郑团队提出的STEP-BACKPROMPTING方法增强了大语言模型进行深度抽象思考的能力,并抽取出关键的概念和原则,并基于这些进行信息检索。

除了传统的单一检索方法外,采用多样化的多查询检索策略能够让大语言模型高效地生成多个并行的搜索项。这些生成的搜索项能够同时被启动并行处理,并且其综合结果能够快速汇总和分析。特别适用于那些由多个小规模的问题组成的复杂系统或任务。

嵌入变换

对于嵌入变换而言,在除了像查询重写这样的大类别的技术手段之外,在Liu在其2023年的研究项目LlamaIndex中提出了一种更为细致的操作流程。该研究团队在此基础上增加了特定辅助组件,并对其进行了精细调节以优化查询结果的表现效果使其更加契合特定应用场景的需求

在应对结构类型差异的问题时(如非结构化查询与结构化文档间的匹配问题),SANTA方法于2023年由Li团队提出。该方法旨在通过对比学习实现检索系统对各类信息的理解与处理能力。具体而言,在预训练过程中(方案一),他们基于结构化与非结构化数据间的内在关联性展开对比学习;而方案二则提出了一个更为系统的框架(方案二),即通过一种基于实体遮蔽机制的设计方案来指导模型识别并填充这些隐藏的信息内容。

4.3 调整检索器结果以适应大语言模型的需求

在RAG流程里尽管我们运用多种技术手段来提高检索效果 但最终对RAG系统的整体性能却未必会有显著提升这主要归因于检索到的相关文档可能与大型语言模型所需的内容并不完全匹配本节将阐述两种方法以使检索器输出结果更加契合大型语言模型的需求

LLM 监督下的嵌入模型训练 众多研究均采用从大语言模型中获取反馈信号的方式对嵌入模型进行优化调整。AAR[20] 提出了一种基于编解码器架构的语言模型(LM)来指导预训练检索器的学习过程。该系统通过对交叉注意力机制评估出最优文档后应用硬负样本采样策略与经典的交叉熵损失函数结合的方式实现了对检索系统的优化。经过这一系列优化后训练完成的检索系统可以直接应用于目标 LLM 并在多项测试中展现出显著性能提升。

\mathcal{L}_{\text{train}} = -\sum_{i=1}^{N} \sum_{j=1}^{M} y_{i,j} \log p(\mathbf{x}_i|\mathbf{x}_{-i})

在本研究中,在这里我们定义了一些关键变量用于信息提取。具体来说,在文本处理阶段,D 被定义为输入的上下文数据集合;PR 则代表每个文档与其相关文本的检索相关性;而 QLM 代表每份文档基于语言模型 LM 的生成概率。

UPRISE[Cheng et al., 2023a] 同样通过预训练的大型语言模型对 Prompt Retrieval 进行微调。

在这些研究中,在探讨的语言模型以及检索器中(即它们),其中包含两种主要组件:一种是基于提示输入对的语言模型(即大语言模型),另一种是专门用于检索的任务型检索器。这些系统通过生成相应的评分来指导检索器的学习过程(即训练过程)。这等同于利用大语言模型为数据集生成标注信息的过程。

Atlas[Izacard et al. , 2022] 开发了四套微调监督嵌入模型的方法。其中一套称为注意力蒸馏(Attention Distillation),该方法通过分析语言模型在生成输出时所产生的一系列跨注意力权重分布来实现学习过程。另一种方法命名为EMDR2(Expectation-Maximization Retrieval),它采用了期望最大化算法,在检索到的相关文档中构建概率分布,并以此为基础进行建模训练。此外还有一种称为困惑度蒸馏(Perplexity Distillation)的技术,则直接以生成Token序列的困惑度作为优化目标来进行参数调整。最后一种方法名为LOOP(Loss Optimization via Omission of Unwanted Patterns),它提出了一种基于文档删除机制的新损失函数,在计算大语言模型预测结果变化程度的同时也为提升特定任务性能提供了有效的训练策略

插入适配器

在微调嵌入模型的过程中可能会遇到一些挑战,在开发API以实现嵌入功能的同时也需考虑本地计算资源受限的问题。由于这一限制因素的存在许多研究选择了采用外部适配器方案来进行模型对齐工作 PRCA[Yang et al. , 2023b] 分别在上下文提取阶段和奖励驱动阶段进行适配器训练 并利用基于Token的自回归 (autoregressive) 策略来优化检索器的输出效果

该TokenFiltering方法基于跨注意力分数计算机制,在选出最高得分的Token后实现了有效的Token过滤。该RECOMP框架引入了压缩器概念,并可依据相关句子或整合文档信息自动生成摘要。此外,在白盒模型中采用指令性微调策略注入知识后直接取代了检索模块的该PKG方法则可实现根据查询直接输出相关文档。

5 生成组件

在 RAG 系统中,生成组件扮演着核心角色。它负责将检索到的信息转化为流畅自然的文字内容。这一设计理念受到传统语言模型的影响,并与一般的生成式模型不同的是,在 RAG 体系中生成组件通过利用检索到的具体信息来显著提升文本质量和相关性。其输入不仅包含传统的上下文信息,并且通过检索器获取的相关文本片段作为补充素材。这使得生成组件能够更加深入地理解问题所处的背景和相关上下文,并能产出更为丰富详实的回答内容。此外,在处理检索到的内容时,生成组件会主动进行内容引导工作以确保输出质量与检索结果高度一致。正是由于这种多样的输入数据类型的存在,在生成环节进行了针对性优化工作以更好地应对来自查询和文档的各种输入数据类型

5.1 如何通过后检索处理提升检索结果?

对于未经微调的大语言模型来说,在多数研究中都依赖像 GPT-4[OpenAI, 2023] 这样的知名大语言模型,并通过其强大的内置于库来进行广泛的信息检索。然而,这些大型模型仍然存在一些固有的局限性,例如在上下文长度方面有一定限制,并对冗余信息较为敏感。针对这些问题的研究者们逐渐转向关注后续的信息处理流程。这一过程指的是,在利用检索器从大规模文档数据库中提取相关信息之后进行进一步的处理、过滤或优化工作。其主要目标是提升检索结果的质量,并以更好地满足用户需求或为后续的任务提供支持为目标。这种处理方法可被视为对初始阶段获取的文档材料进行二次优化与精炼的过程。通常情况下,后检索处理包括信息压缩以及结果排序优化两个主要环节

信息压缩

在信息压缩领域中

文档重排

当进行文档重排时,重排模型作为主要工具发挥作用,其主要任务是优化通过检索器获取到的文档集合

当大语言模型 (LLM) 遭遇新增外部上下文需求时

重排序过程中所引入的上下文压缩功能是一种关键的技术手段,在特定查询语境下直接提取与之相关的搜索结果。该方法的独特之处在于其通过精简每个文档的内容并有效剔除与当前查询无关的信息片段,在检索结果中突出显示核心内容的能力显著提升。因此,在整个信息检索系统中该重排序模型发挥着优化数据质量并提升后续处理效率的重要作用,在大型语言模型训练过程中提供了更为优质可靠的数据输入支持

5.2 如何优化生成器应对输入数据?

在 RAG 模型中,优化生成器扮演着核心组件的角色,并发挥着关键作用。生成器的主要职责是接收并处理检索到的信息,并将其转化为与模型输出相关的文本内容。通过优化机制使生成内容不仅具有连贯性,并且能够充分利用检索到的相关文档来提升用户体验

在普遍的大语言模型 (LLM) 生成过程中, 输入通常被视为一个查询行为. RAG 的主要区别在于, 输入不仅包含查询信息, 还整合了检索系统所发现的各种文档, 包括结构化的文档以及非结构化的资料. 额外信息的加入会对模型的理解能力产生重要影响, 因此, 对于查询与检索结果文档的综合处理显得尤为重要. 通常情况下, 在将输入传递给经过微调的模型之前, 需要对检索系统所发现的相关文档进行后续处理. 值得注意的是, 在 RAG 框架下对生成器的微调方式与传统大语言模型的通用微调方法基本一致. 本文旨在简要探讨基于格式化数据以及非格式化数据等不同场景下的优化函数研究.

通用优化过程

普遍的优化流程涵盖训练数据中的输入-输出配对,并旨在使模型能够基于输入x生成相应的输出y。

在 Self-mem[Cheng et al. , 2023b] 的研究中采用了基于传统训练的方法。对于输入 x 来说,在线检索出与输入相关的文档 z,并选择其中最相关的一份;接着将输入 x 和文档 z 结合起来进行分析后生成输出 y

论文对主要的两种微调方法进行了深入分析,并系统性地总结了他们的研究进展(Arora et al., 2023;Wang et al., 2022b;Lewis et al., 2020)。其中一种是基于Arora等人的研究(Arora et al., 2019),另一种则由Xia等团队开发(Xia et al., 1999),他们分别从不同角度探索了改进策略并取得了显著成果

运用对比学习

在训练数据准备过程中, 一般会生成输入与输出之间的互动样本, 并通过这些样本实现对比学习.

在这一特定情况下,该模型只能接触到了一个实际的输出结果,在这种情况下可能会产生所谓的"暴露偏差"问题[Ranzato 等人, 2015]:即认为在训练过程中该模型仅仅接触到了单一正确的反馈信息而无法全面掌握其他潜在的可能性所生成的具体Token。

该模型可能会影响其在实际应用中的性能表现,并非仅仅局限于对训练数据中特定反馈的学习效果。SURGE [Kang 等人, 2023] 提出了一种基于图文的对比学习方法。对于输入与输出之间的每一对交互而言,该对比学习方法的目标可作如下阐述:通过最大化输入与目标输出间的相似度,同时尽量最小化输入与预期错误输出间的相似度。

在这一段文本中,符号 'h' 和 'z' 被用作标记负样本。通过对比学习方法的应用,在模型中可以实现生成多样化且合理的回复的能力,并非仅局限于训练数据中的特定实例。这种设计有助于减少模型过度拟合的风险,在实际应用中使模型展现出更强的适应性和泛化能力

在处理涉及结构化数据的检索任务时

6 RAG 技术的增强手段

本章主要围绕三个关键方面展开介绍:强化阶段、数据来源以及强化过程。

图 4:RAG 核心技术的分类。

图 4:RAG 核心技术的分类。

6.1 RAG 在各个增强阶段的应用

RAG 涉及其中的知识密集型领域,并涵盖其中的技术策略,在三个主要阶段:预训练、微调以及推理过程中应用了多项技术手段。

预训练阶段

在预训练阶段, 研究人员致力于利用检索技术优化预训练语言模型在开放领域问答中的性能表现。其中, 认识与扩展隐含知识是一项难题。2023年, Arora等提出了REALM, 这是一种更为模块化且易于理解的知识嵌入方法。该方法基于掩蔽语言模型(MLM)框架设计, 其核心策略是将预训练与微调任务视为一个先进行信息检索再进行预测的流程, 即语言模型根据掩蔽的句子 x 预测掩蔽的 Token y, 建模 P(x|y)

在2022年时,《研究》(Borgeaud et al.)首次提出RETRO。该研究借助检索增强技术实现自回归语言模型的预训练。该系统通过大规模标记数据集上的信息检索功能实现零样本预训练过程,并成功实现了大规模预训练任务的同时显著减少了模型参数数量。

RETRO 除了与 GPT 模型共享主体架构外,并增添了一个 RETRO 编码器来提取相关实体的特征信息。

进一步而言,在 RETRO 的解码器架构中引入了一种分块交叉注意力机制,并成功整合了编码器端检索信息的作用域限制特性。这使得 RETRO 在处理复杂问题时相比标准 GPT 模型显示出较低的困惑度,并且在更新语言模型存储的知识方面具有更高的灵活性特点——通过更新检索数据库即可实现这一功能,并不需要重新训练整个模型 [Petroni et al. ,2019]。

该研究团队借鉴了T5架构([Raffel et al., 2020])的方法,在预训练与微调阶段均集成了一种检索机制。研究团队会在初始化时将已有的T5架构设置为编码器与解码器的大语言模型基础,并采用已有的Contriever设置为密集检索器。

在预训练过程中,相较于传统预训练方法而言,这种方法通过减少对参数的依赖从而提升了效率水平。它特别适合处理那些需要大量知识积累的任务,并且可以通过在特定领域内进行针对性的数据训练来构建专门化的模型。然而,在某些方面存在一定的局限性:如需大量预训练数据支持这一方法的应用;同时可能需要更多计算资源以满足需求;此外,在更新速度上也有待改进。特别是当模型规模扩大时,在检索机制上的计算成本会相应提高。尽管如此,在增强模型对复杂场景适应能力方面却表现出了显著优势:一旦完成微调过程,则无需依赖外部存储库即可运行检索增强型模型,在提升生成速度和操作效率方面表现尤为突出。

微调阶段

在下游微调任务中

该种检索器具备用于零样本任务的自动完成检索提示的能力,并且该系统展示了其在各种任务与模型中的普遍能力和卓越性能。

研究人员在微调生成器方面也进行了相关努力。例如, Self-Mem[Cheng et al. , 2023b] 基于示例池对生成器进行微调,另一方面, Self-RAG[Asai et al. , 2023b] 则通过使用 (Reflection tokens) 来实现主动检索功能。

基于检索增强指令下正确答案的概率优化协同微调生成器和检索器;而该方法则通过降低文档与查询间的语义相似度来有效利用相关背景知识

此外,在Kang et al. , 2023年的研究中提出了对比学习 (contrastive learning) 的新框架SUGRE。该框架通过将检索器和生成器分别进行端到端微调的方式,在文本生成方面实现了高度精准性与子图细节度的同时提升。

该系统采用基于图神经网络(Graph Neural Networks)的上下文感知子图检索器,在知识库中抽取与正在进行中的对话相关的知识,并以确保生成的回答真实地反映了检索到的知识。为此,该系统采用了高效的且稳定的图编码器,并结合图像-文本对比学习目标进行优化。

总的来说,微调阶段的增强方法有几个显著特征。

此外,在经过对大语言模型(LLM)以及检索系统进行微调训练后,则能够使这些工具能够更好地适应特定的任务需求;这种做法不仅提供了同时或单独微调任一者的灵活性;例如RePlug[Shi et al., 2023]与RA-DIT[Lin et al., 2023]方法都证实了这一观点;通过这种方式;模型不仅能够提升其在多样化下游应用场景中的适用能力;而且还能在不同数据结构的语料库集合中展现出更为卓越的表现能力;特别是在处理图状数据方面的优势更为显著;SUGRE方法正是这一领域中的典型代表

然而,在微调阶段也存在一定的限制。例如,在微调阶段需要专门针对RAG微调的数据集,并且相比推理阶段而言,在计算资源方面则有更高的需求。总体而言,在进行模型微调时,研究人员可以根据具体需求和数据格式来定制模型参数设置,从而在降低资源消耗的同时也能根据具体情况调整模型输出风格。

推理阶段

在推理过程中,在当前机器学习领域中,RAG 方法与大语言模型的结合聚焦成为研究重点领域. 例如,典型的Naive-RAG架构就是在推理过程中融入检索内容的一种典型的研究范式.

为了克服 Naive RAG 的局限性,研究者在推理阶段的 RAG 结构中增加了更多的背景信息。DSP[Khattab et al. , 2022] 框架通过一个复杂的流程,在固定的语言模型(LM)和检索模型(RM)之间传递自然语言文本内容,并为系统提供了更丰富的上下文资源以提升生成质量。PKG 方法则使大语言模型能够在不修改参数的情况下访问相关知识库,并支持执行更为复杂的任务。此外,CREA-ICL[Li et al. , 2023b] 利用同步检索跨语言的知识库来获取额外的信息支持;而 RECITE 方法则通过从大语言模型中提取一个或多个段落来构建背景信息。

在推理阶段,对 RAG 进程的优化有助于模型适应更复杂的任务。

具体而言,在这项研究中

ITER-RETGEN[Shao et al., 2023]引入了一种新型迭代机制,并成功实现了信息检索与内容生成两大模块的有机融合。该方法通过交替执行两个关键环节——"以搜索助力生成"以及"以生成反哺搜索"——从而显著提高了准确性;而IRCOT[Trivedi et al., 2022]则是一种集成了RAG技术和CoT理论框架的新方法;它通过上述方法的应用,在各类问答任务中展现了显著提升的效果

总结来说,在推理阶段的增强技术因其简洁高效且无需额外微调以及能够充分借助现有的强大预训练语言模型而广受欢迎。其核心优势在于,在大语言模型微调过程中保持LLM参数不变的同时,默认提供较为贴合任务背景的信息,并且具有快速且成本较低的特点。然而这些方法并非没有局限性:例如需要进行额外的数据预处理以及流程优化;受现有基础模型性能限制。为了更好地适应多样化的应用场景这些方法通常会与逐步推理迭代推理自适应检索等优化方案相结合。

6.2 数据增强来源

在RAG系统中,数据来源的质量具有决定性的作用。这些来源提供的知识具有不同的粒度与维度特征,在应用时需要根据这些差异性特征采取相应的处理策略。具体来说可分为三种类型:非结构化信息、规范化的结构化数据以及大型语言模型自动生成的内容。

非结构化数据增强

在非结构化数据方面,这类数据主要以文本形式存在,通常来源于纯粹的文本存储库。此外,其他可用于检索的文本数据包括用于大模型微调的Prompt 数据[Cheng et al. , 2023a] 和跨语言数据[Li et al. , 2023b]。

在文本粒度处理上,除了传统的句子块之外,在信息检索中还引入了更加灵活的划分方式。这些划分方式包括Token表示(如kNN-LM[Khandelwal et al., 2019])、短语表示(则采用NPM方法如Lee et al., 2020)以及基于段落级别的描述方法如COG模型Vaze et al., 2021)。对于需要更高精度匹配的应用场景而言,在这种层次下进行检索能够获得更好的效果;但这种做法会相应地增加计算开销并带来更高的资源消耗。

在词汇层面上,FLARE 采用了主动检索策略,在大语言模型输出低概率词时触发了检索。该方法通过先生成一个临时后续句子来辅助检索相关文档,并基于检索结果再生成下一个句子以预测后续内容。

在文本层面上, RETRO 通过前一个文本层面对比其最邻近的一个文本层面对比, 并将这些对比结果整合到前一个层面上的内容环境中. 具体来说, RETRO 检索数据库中获取前一个层面对应最近邻的一个文本层面对比对象 N(Ci−1), 并结合之前所有层面对比结果 (C1*, ..., C*i−1) 与其对应的检索结果. 通过交叉关注机制, 将这些对比关系进一步优化. 进而指导下一个层次的对象 Ci 的生成. 为了保证逻辑连贯性, 当生成第 i 个层次的对象 Ci 时, 只能基于前一阶段的内容 Ci−1 的对比对象 N(Ci−1), 而无法利用当前阶段的内容 N(Ci).

结构化数据增强

在增强结构化数据方面

该研究由RET-LLM团队(Modarressi及其合著者, 2023年)开发出一种定制化的语义网络存储结构。该系统能够基于关系三元组进行抽取,并以支持后续对话交互。

该研究由RET-LLM团队(Modarressi及其合著者, 2023年)开发出一种定制化的语义网络存储结构。该系统能够基于关系三元组进行抽取,并以支持后续对话交互。

SUGRE[Kang et al. , 2023] 采用了图神经网络 (GNN) 的嵌入方法来提取知识图谱中的相关子图,并通过这种方式防止模型输出与讨论主题无关的内容。

SUGRE[Kang et al. , 2023] 基于一种图像编码方案,该方案将图结构整合到预训练模型 (PTMs) 的表征空间中,并通过多模态对比学习框架来实现检索结果与生成文本的一致性。

KnowledgeGPT[Wang et al., 2023c] 支持一种基于代码格式的搜索查询方法,并集成了一系列预定义的知识库操作函数。除了具备检索能力外,该系统还能够以一种更加灵活的方式存储个性化知识内容,以满足用户的需求差异。这些结构化数据资源不仅丰富了 RAG 模型的知识储备和上下文信息,在一定程度上也使得模型性能得到了显著提升。

LLM 生成的内容 RAG

考虑到 RAG 辅助记忆的效果有时不尽如人意,并可能带来负面影响,在这一背景下研究者们拓展了 RAG 的应用场景。他们深入探究了大型语言模型 (LLM) 内部的知识组织机制。该研究通过 LLM 自身生成的内容来实现检索功能,并旨在提升目标任务的表现。在现有研究领域中具有重要影响的关键性工作包括 SKR[Wang et al. , 2023d] 的开创性探索:该研究采用了一个经过标记的训练集体系,在此框架下可区分问题是否为 LLM 直接可解答的问题(标记为“已知类”),而需通过额外检索增强效果的问题则被归类为“未知类”。在此分类基础上仅对“未知类”问题实施检索增强策略,在此之外直接输出对应答案即可完成任务处理流程

该研究团队在2022年引入了GenRead系统,并采用LLM生成器取代原有的检索机制。通过实证分析发现,在处理相关查询时, 基于LLM构建的内容通常会更准确地涵盖所需信息, 并且呈现更高的准确性。研究者指出, 在这种设置下进行推理训练有助于提升模型对复杂知识库的理解能力

该研究团队基于检索增强型生成器实现了自记忆功能(Selfmem[Cheng et al., 2023b])。其中引入了一种智能记忆筛选机制(memory selection mechanism),能够从当前处理结果中提取关键信息作为长期记忆存储(long-term memory storage)。该结果既体现为正向解答又反映反向思考特征(both positive and inverse perspectives)。整合原问题与其矛盾体(original problem and its contradiction body),检索增强的生成模型得以利用自身输出实现持续优化(self-enhancement)能力。

多样化的策略在RAG检索优化领域展现了创新思路,在提升模型性能的同时也增强了检索能力

6.3 增强过程

在大多数 RAG 研究中,默认情况下仅进行一次检索与生成流程。但这种做法可能存在局限性:每次检索都可能引入冗余信息而导致输出结果偏离主题[1];这类冗余信息可能会遗漏关键数据并包含与标准答案不一致的内容[2];此外,在解决需要多步推理的问题时该方法的效果往往不够理想

目前优化检索过程的主要手段涉及迭代检索与自适应检索。这些手段使得模型在多轮循环中能够根据不同任务和场景灵活调整其检索策略。

迭代检索

为了提高大语言模型 (LLM) 的性能,在数据采集过程中应定期整合基于原始查询与生成文本的相关文档资料,并将其作为重要的参考资料引用(Borgeaud et al. , 2022, Arora et al. , 2023)。随着在多次迭代检索过程中积累的参考资料数量增加,后续问题的答案生成质量得到了显著提升。然而需要注意的是,在这种机制下可能存在语义理解上的断层,并且其局限性在于仅依赖连续Token序列来区分生成内容与检索来源文档。

递归方法与多级路径特别适用于特定的数据场景分析。采用递归方法时,则是先利用结构化索引来组织数据资料,并层层筛选最终结果。当处理层次丰富的文档时,则可以考虑将内容归纳总结成摘要形式——不论是整篇文档还是一份长篇PDF文件都需要如此做以简化后续操作流程。在此基础上完成相关查询后——一旦确定目标文档即可对该对象展开更深层次的细分分析工作以实现全面信息的深度挖掘研究[Li et al. , 2023c]。

一些方法结合了检索和生成步骤的迭代。

ITER-RETGEN [Shao et al. , 2023] 整合了"增强检索生成"与"增强生成检索"技术,在涉及信息复现的任务场景中表现出色。该方法用于利用完成任务所需的内容进行响应,并将这些内容作为后续检索更多信息的来源,在此过程中不断优化输出质量。

IRCoT[Trivedi et al., 2022] 研究团队深入研究了思维链的不同阶段,并提出了一种实时检索方法,在每次生成新句子时执行检索操作。该系统通过连续任务(CoT)来指导搜索过程,并根据搜索结果不断优化其内部机制以保持语义的一致性和完整性。

适应性检索

在适应性检索领域中

事实上,在大语言模型 (LLM) 领域中,有意识地利用工具并进行判断的行为并非仅仅源于 RAG技术的应用;而是这一行为模式已在当前众多大型AI智能体中得到了广泛实践与验证,并被系统性地应用到多个领域研究中[Yang et al., 2023c; Schick et al., 2023; Zhang, 2023]

以 Graph-Toolformer[Zhang, 2023] 为例研究其检索机制时发现 其主要包含三个阶段:首先 LLM依赖于特定的检索架构 运用少样本提示引导搜索过程 这种模式下 当系统识别到关键信息时 就会启动主动探索机制 收集相关信息数据 最终这一流程与人工智能主体调用工具的行为相似

WebGPT[Nakano et al. , 2021] 基于强化学习训练 GPT-3 模型以提升文本生成时对搜索引擎的利用程度。

Flare[Jiang et al., 2023b]则凭借自动判断机制确定最优的信息检索时机,并显著降低了文档检索的成本。上述方法通过追踪文本生成过程中各术语的概率变化,在其降至设定阈值以下时会主动启动信息检索系统,并补充所需的知识。

则开发了一种创新性"反思 Token"系统,将其划分为检索功能与批判性分析两部分.该系统使该模型得以通过预设标准自主调控信息检索的时间节点,从而实现对其所需段落的有效获取.

当涉及信息检索任务时,在这种情况下生成器会同时处理多个段落,并采用一种被称为"片段级 beam search"的技术来确定最优的内容组合。在这一过程中,在生成答案的过程中各个部分的重要性通过一种被称为"评审分数 (Critic scores)"的方法被评估和更新,并且这些分数可以根据需求进行调整,在这种情况下赋予大语言模型 (LLM) 自主权以决定是否回顾过去的信息。这使得 Self-RAG 框架相较于传统方法更加高效和灵活,在不需要额外训练分类器或依赖于自然语言推理 (NLI) 模型的情况下实现了更好的性能表现。这种方法不仅增强了模型对信息的理解能力,并且显著提高了其生成准确回答的能力。

7 RAG 评估

在探讨与提升 RAG(检索增强生成器)的能力过程中

7.1 评估方法

主要有两种方法来评估 RAG 的有效性:独立评估和端到端评估[Liu, 2023]。

独立评估

独立评估涉及对检索模块和生成模块(即阅读和合成信息)的评估。

检索模块:为了量化 RAG 检索模块的表现效果通常依赖一系列关键指标;这些指标旨在评估不同系统的排序能力;其中包括召回率(Hit Rate)、平均逆 ranks(MRR)、归一化折扣累计增益(NDCG)以及精确度(Precision)等技术参数;

生成功能块 :其主要职责是将搜索结果中的文档与用户查询进行结合,从而产生增强或合成后的输入内容。这一过程与其他输出结果(如最终答案或响应)有所不同,在此过程中通常采用端到端的评估方式。而生成模块的具体评估标准则聚焦于上下文相关性这一核心关注点:即检索到的相关文档与查询问题之间的关联程度。

端到端评估

全面评估过程是针对 RAG 模型在特定输入下产生的最终输出结果进行考察,并关注模型生成的答案与其对应的输入查询之间的关联性以及一致程度。

基于内容生成目标的角度

这些指标有助于理解 RAG 在各种特定应用场景中的表现。

7.2 关键指标和能力

现有研究往往存在对检索增强的大语言模型(LLM)生成效果进行系统性评估的问题。通常情况下,在不同下游任务或检索器的应用中,RAG的表现可能会因具体情况而有所差异。然而,已有研究开始探索RAG通用评价指标及其有效运用的技术路径。本节将重点阐述RAG评价有效性的重要指标以及实现其性能的关键能力。

关键指标

近期发布的 OpenAI 综述性报告 [Jarvis and Allard, 2023] 深入探讨了优化大语言模型(大语言模型)的一系列技术,并特别涉及 RAG 及其评估标准。

此外,在当前的研究领域中,包括 RAGAS [Es_ et al., 2023] 和 ARES [Saad-Falcon_ et al., 2023] 等在内的最新评估框架均采用了 RAG 的评价体系。回顾这些研究发现,则主要聚焦于三大核心维度:答案准确性、相关性及上下文关联性。

答案的一致性:该指标着重保证模型生成的答案与给定上下文的一致性,避免答案与上下文信息产生偏差或不一致。这一评价标准对于防止模型误导至关重要。

答案相关性:此指标强调生成的答案需要紧密联系问题本身。

此指标要求精确提炼出的相关上下文信息,并需具备高度针对性以避免冗余内容的存在。鉴于大语言模型处理长文本存在较高计算成本,在实际应用中若存在过多冗余信息可能会影响其有效利用上下文的能力。OpenAI 的研究报告也特别将'上下文提取'列为一项补充评估指标,旨在衡量模型在回答问题时所需的相关信息检索能力。该指标能够反映RAG检索模块搜索优化的实际效果,同时也为评估模型在具体任务中的表现提供了重要参考依据。通过优化搜索策略,例如引入更为精细的排序机制或调整嵌入算法,可以在一定程度上提升检索到相关的信息数量

关键能力

RGB [Chen et al., 2023b] 的系统性评估研究对不同大语言模型在处理 RAG 所需四大核心能力方面进行了详细分析与比较研究,并据此构建了检索增强型生成模型的技术基准框架。该研究具体聚焦于以下四个方面的能力指标:抗噪声能力、拒绝无效回答能力、信息综合能力和反事实稳健性等关键维度,并据此构建了检索增强型生成模型的技术基准框架。

抗干扰能力: 该模型能够衡量其在处理与问题相关但非关键信息的文档时的表现。

拒绝无效回答能力: 当模型无法从检索到的文档中提取解决问题所需的必要信息时, 模型应适当地终止响应行为. 在评估这一能力的过程中, 外部提供的参考资料仅包含无用信息. 大语言模型应在正常运作条件下输出'信息不足'提示或其他类似指示.

信息综合能力: 该评估系统能否具备整合多个文档信息的能力,并解答更为复杂的查询。

反事实鲁棒性测试: 该测试旨在考察模型在面对检索信息可能带来的风险时的能力,即其能否识别并修正文档中的错误信息。这一测试不仅涵盖大语言模型能够直接解答的问题,并且还涉及这些外部文档中存在的错误事实。

7.3 评估框架

近来, 大语言模型社群开始深入研究并探讨将大语言模型作为自动型评估者的方法. 许多研究机构都采用如 GPT-4 这样的先进模型来评价其大语言模型的实际应用效果. Databricks 研究团队曾采用 GPT-3.5 和 GPT-4 作为自动生成的评估者, 对其聊天机器人应用进行了系统性审视, 结果表明这种基于自动生成的自动型评估方法颇为高效且实用 [Leng et al., 2023]. 此外, 他们还认为该方法对于基于检索 - 生成 (RAG) 应用模式同样具有显著优势, 可以实现高效且低成本的性能评价. 在 RAG 评分框架领域, RAGAS 和 ARES 是较具代表性的新型评分体系. 这些评分体系主要关注三个关键指标:回答准确性、相关性和上下文相关性等. 同时, 开源社区中的一些工具, 如 TruLens, 已经采取了类似的方法来进行性能评价. 不论是哪种框架设计, 都采用了将大语言模型作为核心组件的方式来进行自动化评分. 因此, 由于 TruLens 的出现与 RAGAS 的相似性特点, 下文将重点介绍 RAGAS 和 ARES 的具体实现细节.

RAGAS

该系统旨在优化信息检索能力、提升大型语言模型对关键片段的运用效率以及增强生成内容的质量水平。RAGAS 作为一个基于基本手写指令构建的评价体系,在不需人工干预的情况下自动评估答案准确性、相关性和上下文关联度[Es et al., 2023]。

算法原理
  1. 答案忠实度评估:通过大型语言模型(LLM)将回答分解为多个独立断言,并对每个断言与其背景信息的一致性进行验证。最终依据支持断言的数量占总断言数量的比例计算出"忠实度得分"。
  2. 答案相关性评估:利用大型语言模型(LLM)生成一系列候选查询,并评估这些候选查询与原始查询的相关程度。"答案相关性得分"则基于所有候选查询与原始查询之间相关程度的平均值得出。
  3. 上下文相关性评估:借助大型语言模型(LLM)提取出直接关联于问题的关键信息片段,并以这些关键片段所占整体文本片段总数的比例来衡量"上下文相关性得分"。
ARES

ARES旨在通过自动化手段实现对RAG系统的性能评估,在上下文相关性、答案忠实度以及答案相关性三个方面展开评测工作;这些评测指标在某种程度上与现有方法类似;然而,作为基于简单手工提示的新颖评估框架,ARES在适应新型RAG评价场景方面存在一定的局限性,这也是ARES项目的重要意义所在;然而, ARES在性能上略逊于现有方法;为了减少计算资源消耗,采用少量人工标注数据和生成数据相结合的方式,ARES不仅降低了标签成本还借助预测驱动推理技术(PDR)实现了结果的有效验证并提供了可靠的置信区间估计

算法原理
  1. 构建人工合成数据集:ARES 首先通过语言模型从目标语料库中提取文档内容并生成模仿的问题及标准答案,并根据真实情况与干扰信息的比例分别创建真实样例与干扰样例两类样本。
  2. 对轻量级预训练语言模型进行微调训练:然后,在这一过程中,
  3. 通过人工合成的数据集对轻量级模型进行优化学习,并基于这三个关键指标(上下文关联度、回答准确性以及回答一致性)来验证其性能效果
  4. 最终阶段中,则是将经过优化后的裁判体系应用于RAG系统,
  5. 结合PPI方法计算出每个评估结果的置信区间范围,
  6. 进而实现对RAG系统的稳定性和准确性进行全面评测。

8 未来展望

本章主要探讨了RAG技术的三大核心发展路径:垂直优化作为首要方向、横向扩展作为第二条路径以及构建RAG生态系统作为第三种模式。

8.1 Rag 的垂直优化

虽然 RAG 技术近年来取得了明显的进步,在垂直领域仍然面临一些关键问题值得进一步研究探讨。

在 RAG 模型中处理长上下文的问题主要体现在其对大语言模型(LLM)所限定的信息获取范围上。正如文献 [Xu et al. , 2023c] 所述,在生成内容时受限于大语言模型(LLM)所限定的信息获取范围。短小的信息窗体可能无法完整捕捉到某些关键细节;而过长的信息窗体会导致冗余信息过多地进入生成结果中。目前研究正致力于通过逐步扩展大语言模型(LLM)所支持的信息获取范围来解决这一挑战;然而,在消除了现有系统中对信息窗体长度限制后,则需要重新评估 RAG 在这种新场景下的适应能力。

此外,在RAG的研究领域中,其抗噪声能力与抗矛盾能力也是一个关键的研究方向。在实际应用中,若检索结果中存在大量与目标信息无关的内容或出现自相矛盾的信息,则会严重削弱模型的效果。类似地,在面对"打开一本书就有可能遇到毒蘑菇"这样的极端情况时,在这种情况下如何优化模型使其能够更好地处理异常情况已成为当前研究者们关注的重点问题之一;相关研究工作包括[Yu et al., 2023a]、[Glass et al., 2021]以及[Baek et al., 2023]等

第三部分中,RAG 与微调(Fine-tuning)之间的协同作用也被视为研究的核心议题之一。例如,RA-DIT [Lin et al. , 2023] 等研究证实,混合方法已逐渐成为RAG领域的主要发展方向。如何实现既保持参数化与非参数化优势的同时又能有效协调两者之间的关系,则是一个亟待解决的关键问题。

最后,在RAG的工程应用方面也受到了广泛的关注。在RAG兴起的原因中,部分因素在于其实现操作简便且契合企业工程的应用需求。

然而在工程实践中诸如如何在大规模知识库场景中提升检索效能与文档召回率以及如何确保企业数据的安全性——即防止大语言模型被误导泄露其来源元数据或其他敏感信息——都是当前亟需解决的核心挑战 [Alon et al. , 2022]

解析

RAG 的水平扩展

在水平方向上,RAG的发展正在稳步推进. 基于最初的文本问答领域的基础,RAG的应用逐步延伸至各类模态数据,涵盖图像、代码、结构化知识以及音视频等多种类型的数据. 在这些领域,累积了许多相关研究成果.

在图像领域中,在文献[Li et al. , 2023a]中提出的BLIP-2方案采用了一种基于固定图像编码器与大型语言模型(LLM)的技术架构以实现视觉语义预训练任务,并显著降低了模型训练所需资源与时间成本。特别值得一提的是,在不依赖任何类别标记信息的情况下(即零样本学习Zero-shot Learning),该系统成功实现了对图像内容进行语义描述与生成的文字表示过程

在文本生成领域中,VBR[Zhu et al. , 2022] 方法通过利用生成图像来辅助语言模型进行文本创作, 这一方法在开放式的文本生成任务中展现出显著的优势.

在编码领域中,RBPS[Nashid_ et al., 2023]主要应用于与之相关的极小规模学习过程。该技术依赖于编码或频率分析,并自动生成与其开发者的当前任务相似的代码范例,在测试断言生成以及程序修复方面已经被实验证明是高度有效的。

基于结构化的知识领域研究中CoK[Li et al., 2023c]所提出的方法,首先从知识图谱中提取与问题相关的关键事实,随后从知识图谱中提取与问题相关的关键事实,接着以提示的方式将提取出的事实整合到输入信息中

在音频与视频处理领域中,GSS[Zhao et al., 2022]体系通过整合口语词库中的音频片段实现了高效地将机器翻译(MT)数据转化为语音翻译(ST)数据的能力。UEOP[Chan et al., 2023]则在端到端自动语音识别领域开创性地实现了基于外部离线策略的声音转文本技术的发展。

基于文本到语音方法生成的音频嵌入与语义文本嵌入的结合运用KNN注意力机制能够有效提升自动语音识别性能从而显著地减少了领域适应所需的时间

该Vid2Seq架构基于Yang et al. , 2023a的研究成果,在语言模型方面进行了创新性提升。通过采用了特殊的时间标记这一技术手段,在同一输出序列中实现了对事件边界及其文本描述的准确且连续的识别能力。

8.2 RAG 生态系统

下游任务和评估

基于对广泛知识库内相关信息的有效整合,在处理复杂查询以及生成信息丰富回应方面展现了其卓越的能力。经过多方面的研究表明,在多种下游任务场景中展现出卓越的表现。该模型不仅显著提升了 downstream applications in terms of information accuracy and relevance, 还增强了 response diversity and depth.

RAG 取得了显著成效,并为其在多个领域的适用性和普适性探索提供了理论基础与实践路径。未来的研究工作将进一步沿着这一方向深入展开。特别地,在医学、法律以及教育等多个专业领域的知识问答系统中运用 RAG 相较于微调(fine-tuning)方法可能带来更低的成本投入以及更为优异的表现效果。

同时,在构建RAG评估体系的过程中需注重系统化设计,在不同下游应用场景下实现更加全面的分析与优化工作,这对于提升模型在特定领域内的效能表现具有不可忽视的作用.具体而言,我们需要针对各类下游任务建立更为精准的评价标准体系,包括但不限于关注场景关联度、内容创新度以及安全性等方面的考量.

此外,在提升 RAG 模型的可解释性的同时,请用户能够更好地了解模型如何运作及其决策依据也成为一项重要任务。

技术栈

在 RAG 技术生态系统中,相关技术栈的发展起到了关键推动作用。例如,在 ChatGPT 流行的驱动下,LangChain 和 LLaMA Index 等等迅速崛起为 prominent technologies. 它们提供了丰富的 RAG 相关 API,并在大模型时代发挥着关键作用。尽管这些新技术不具备 LangChain 和 LLaMA Index 那么丰富的能力,在某些方面却展现出独特优势:例如, Flowise AI6 专注于无需代码操作, 用户可以通过直观拖拽的方式轻松构建和部署 RAG 应用. 其他新兴平台如 HayStack、Meltno 和 Cohere Coral 也在持续拓展其功能与应用场景.

除了基于AI的原生架构外,在云计算时代下传统软件开发商或云端服务提供商也在不断延伸其业务领域。例如,在向量数据库领域里有Weaviate推出的Verba7致力于成为个人助理工具,在另一个方向上则是亚马逊通过其智能企业搜索服务 Kendra利用RAG技术为用户提供跨内容存储库的检索解决方案。

该领域的发展与RAG技术的进步形成了良性互动关系。随着新标准的提出和技术创新不断深化,在技术创新基础上相关技术支持的优化也在不断促进RAG技术的进步。综上所述,在这一过程中初步形成了较为完善的技术架构体系,在这一背景下越来越多的企业级应用场景逐渐涌现出来。然而就目前而言,在统一化平台方面的整体构建仍处于不断完善阶段。

9 结论

本文对检索增强型生成(Retrieval-Augmented Generation, RAG)技术进行了系统分析。该方法通过整合内置于模型的显式知识以及通过外部语料库获取的隐式知识来丰富大语言模型(LLMs)的信息上下文,并以此为基础生成更加精准的答案。与传统方法相比,RAG显著降低输出信息的错误率和虚假性,并通过检索技术实时获取最新数据以提高准确性。此外,在保证透明度的前提下,该方法能够有效提升用户对结果的信任度。通过引入领域相关的文本数据进行定制化处理,RAG进一步增强了其适应性和实用性。

RAG的发展主要呈现出三种典型模式:包括基础类RAG、进阶类RAG以及模块化设计的RAG。每种模式都具有独特的模型架构、运算机制以及相应的局限性。基础类RAG主要执行基于知识库的检索与阅读操作。进阶类RAG在数据预处理阶段进行了更为细致的优化,并通过多轮迭代的方式提升了信息检索的效果。

在深入探索技术的过程中,在初步阶段RAG逐渐发展出了模块化设计的RAG系统,并开始逐步引入诸如微调之类的技术以增强其适应性能力。这一新的模式通过增添额外组件的方式,在整个系统架构上实现了更加灵活的整合效果,并且能够有效提升处理复杂问题的能力

在论文后续段落中, 我们将对RAG体系的关键要素进行深入探讨。第四段重点阐述了RAG检索机制的工作原理, 包括从文本数据中提取精确语义表示的过程, 减少查询与文档之间的语义差异, 并探讨优化检索系统的技术手段, 以便与生成系统协同工作。第五段详细说明了生成模块如何通过后处理技术改进内容质量, 防止信息处理过程中出现遗漏的情况, 同时研究优化生成系统的策略, 使之能更好地配合检索系统。第六段总结了提升搜索效果的主要方法, 包括从多个层面优化搜索流程: 在搜索阶段应用先进算法; 在数据来源上进行多样化布局; 在搜索流程上实施动态调整机制

第七部分阐述了现有RAG方法的评估方式及其关键指标,并探讨了当前采用的具体评估框架。我们对未来对RAG技术的研究方向展开了探讨。作为基于检索与生成相结合的技术,在未来的研发中拥有广阔的应用前景。随着技术的不断进步和发展以及应用范围的不断扩大,RAG系统的表现质量和实用性都将得到显著提升。

全部评论 (0)

还没有任何评论哟~