【检索增强】Retrieval-Augmented Generation for Large Language Models:A Survey

简述

本文将RAG搜索范式分成了三类:朴素RAG、高级RAG和模块化RAG

在这里插入图片描述
从模块化RAG来看,朴素RAG是只有读取和检索模块,高级RAG除了朴素RAG中的读取和检索模块外,还具有重写和重排模块。

从某种程度上来说,朴素RAG是高级RAG的一个特例,而高级RAG又是模块化RAG的一个特例。三种范式之间是一种继承与发展的关系。

朴素RAG

朴素RAG是传统的RAG过程,包括:索引、检索和生成。

索引:索引过程是离线数据准备的关键,涉及三个阶段。
(1)数据预处理:数据清洗、提取、格式转换为标准纯文本、切割分块等。
(2)嵌入表示:将分块后的数据用嵌入模型将其用向量表示。
(3)创建索引:创建索引以键值对的形式存储这些文本块及其向量嵌入,从而实现高效且可扩展的搜索功能。

检索:受到用户查询后,将会去索引库中匹配向量。
(1)用户查询向量化:系统使用索引阶段使用的相同编码模型将输入转码为向量表示。
(2)计算相似度分数:计算查询向量和索引语料库中向量的相似度分数。
(3)优先级排序并检索:系统对与查询最相关的前K个块进行优先级排序,检索出来对应的文本块,这些文本块将作为结果会返回给用户。

生成:查询与选择出的文档将会被拼接在一起,作为一个连贯的prompt输入给LLM。

传统RAG的缺陷
低精度、检索快不对齐、幻觉、低回忆率
在这里插入图片描述

高级RAG

高级RAG有针对性地解决朴素RAG的潜在问题,实现了检索前策略和检索后策略。还是用了滑动窗口技术、细粒度分割和元数据等技术改进索引方法,引入了各种方法来优化检索过程。

检索前过程:优化数据索引。优化数据索引的目标是提高被检索内容的质量。这涉及五种主要策略:增强数据粒度、优化索引结构、添加元数据、对齐优化和混合检索。
(1)增强数据粒度:旨在提高文本的标准化、一致性、事实准确性和丰富的上下文,从而提高RAG系统的性能。这包括删除不相关的信息,消除实体和术语中的歧义,确认事实的准确性,维护上下文和更新过时的文件。
(2)优化索引结构:调整块的大小以捕获相关上下文、跨多个索引路径进行查询,以及通过利用图数据索引中的节点之间的关系来合并图结构中的信息以捕获相关上下文。
(3)添加元数据:将引用的元数据(日期和用途等)集成到块中进行过滤,以及将引用的章节和小节等元数据集成到块中以提高检索效率。
(4)对齐优化:通过在文档中引入“假设问题”来纠正对齐问题和差异,从而解决文档之间的对齐问题和差异。

检索:通过计算查询和块之间的相似性识别合适的上下文,Embedding模型是这个过程的核心。
(1)微调Embedding模型:微调Embedding模型会显著影响RAG系统中检索内容的相关性。该过程包括:自定义Embedding模型、增强特定领域上下文中的检索相关性。可以适应ChatGPT等语言模型来生成用于微调的预训练数据,以制定基于文档块的数据。
(2)动态Embedding:适应单词使用的上下文,不像静态嵌入,它为每个单词使用单个向量。例如,在向BERT这样的Transformer模型中,相同的单词可以根据周围的单词具有不同的嵌入。OpenAI的embeddings-ada-02模型建立在LLM的原理之上,是一个复杂的动态嵌入模型,可以捕获上下文理解。然而,它可能不会像最新的大规模语言模型(如GPT-4)那样对上席文同样表现出敏感性。

检索后过程:在从数据库中检索有价值的上下文之后,必须将其与查询合并,作为llm的输入,同时解决上下文窗口限制带来的挑战。简单地将所有相关文件一次性呈现给法学硕士可能会超出上下文窗口限制引入噪音,并阻碍对关键信息的关注。为了解决这些问题,需要对检索到的内容进行额外处理。
(1)重排:对检索到的信息重新排序,将最相关的内容重新定位到提示的边缘(开头或结尾)是一个关键策略。
(2)prompt压缩:检索文档中的噪声会对RAG性能产生不利影响。在后处理中,重点在于压缩不相关的上下文,突出关键段落,减少整体上下文长度。包括:利用小语言模型来计算提示互信息或困惑,估计元素的重要性;在不同粒度上训练压缩器来解决这个问题;计了总结技术来增强LLM的关键信息感知,特别是在处理广泛的上下文时。

模块化RAG

模块化RAG提供了一个更为灵活和通用的框架,集成了多种增强功能模块的方法,例如在检索器中加入相似检索的搜索模块和应用微调方法。模块化RAG允许序列化的管道和跨多个模块端到端的方法。

模块化RAG的结构:

1、搜索模块·:从多源异构数据来源中获取数据。

针对特定场景进行了定制,并结合了对其他语料库的直接搜索。这种集成是使用LLM生成的代码查询语言(如SQL或Cypher)以及其他自定义工具来实现的。这些搜索的数据源可以包括搜索引擎文本数据表格数据知识图谱

2、记忆模块:通过利用LLM的记忆信息来指导检索。

包括:识别与当前输入最相似的记忆;利用检索增强生成器迭代创建无界内存池,将“原始问题”和“双重问题”结合起来。通过使用检索增强的生成模型,使用自己的输出来改进自己,文本在推理过程中与数据分布更加一致。利用模型本身的输出来代替训练数据。

3、融合模块:使用LLM将查询扩展到多个不同的角度,多个不同的方法来查询。

这种方法不仅捕获了用户所寻求的明确信息,而且还揭示了更深层次的、具有变革性的知识。融合过程包括对原始查询和扩展查询进行并行向量搜索智能重新排序以优化结果,并将最佳结果与新查询配对。这种复杂的方法确保搜索结果与用户的显性和隐性意图紧密结合,从而导致更有洞察力和相关的信息发现。

4、路由模块:查询路由决定用户查询的后续操作。

RAG系统的检索过程利用了多种来源,这些来源在领域、语言和格式上都有所不同,可以根据情况进行交替或合并。查询路由决定用户查询的后续操作,包括:汇总搜索特定数据库将不同的路径合并到单个响应中。查询路由器还为查询选择适当的数据存储,其中可能包括各种来源,如矢量存储、图形数据库或关系数据库,或者索引层次结构——例如,用于多文档存储的摘要索引和文档块向量索引。查询路由器的决策是预定义的,并通过llm调用执行,llm调用将查询定向到所选的索引。

5、预测模块:解决检索内容中冗余和噪声等常见问题,该模块不是直接从数据源中检索,而是利用LLM生成必要的上下文。

与通过直接检索获得的内容相比,LLM产生的内容更有可能包含相关信息

6、任务适配:侧重于使RAG适配各种下游任务。

包括:自动从预构建的数据池中检索零shot任务输入的提示,从而增强了任务和模型之间的通用性;利用LLM作为少量查询生成器,并基于生成的数据创建特定于任务的检索器。通过利用LLM的泛化能力,它可以用最少的示例开发特定于任务的端到端检索器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/576443.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes(K8S)学习(三):K8S实战案例

K8S实战案例 一、部署wordpressmysql(NodePort方式)(1)创建命名空间:wordpress(2)创建wordpress-db.yaml文件(mysql)(3)创建pod:mysql…

2024/03/28(C++·day4)

一、思维导图 二、练习题 1、写出三种构造函数&#xff0c;算术运算符、关系运算符、逻辑运算符重载尝试实现自增、自减运算符的重载 #include <iostream>using namespace std;// 构造函数示例 class MyClass { private:int data; public:// 默认构造函数MyClass() {da…

企微侧边栏开发(内部应用内嵌H5)

一、背景 公司的业务需要用企业微信和客户进行沟通&#xff0c;而客户的个人信息基本都存储在内部CRM系统中&#xff0c;对于销售来说需要一边看企微&#xff0c;一边去内部CRM系统查询&#xff0c;比较麻烦&#xff0c;希望能在企微增加一个侧边栏展示客户的详细信息&#xf…

Autodesk Maya 2025---智能建模与动画创新,重塑创意工作流程

Autodesk Maya 2025是一款顶尖的三维动画软件&#xff0c;广泛应用于影视广告、角色动画、电影特技等领域。新版本在功能上进行了全面升级&#xff0c;新增了对Apple芯片的支持&#xff0c;建模、绑定和角色动画等方面的功能也更加出色。 在功能特色方面&#xff0c;Maya 2025…

263:vue+openlayers 高德地图坐标转换 WGS84-GCJ02

第263个 点击查看专栏目录 本示例演示如何在vue+openlayers中将 WGS84坐标转化为GCJ02坐标,从而使得高德地图能正确的显示物体的坐标点。 84坐标系可以理解为是真实坐标系,是一个地点的实际坐标值。02坐标系是加密后的坐标系,是为了国家安全考虑。对应的不是实际的坐标值,…

单片机之串口通信

目录 串口介绍 通信的基本概念 并行通信和串行通信 同步通信和异步通信 串行异步通信方式 串行同步通信方式 通信协议 单片机常见通信接口 串行通信三种模式 串口参数 传输速度 ​串口的连接 电平标准 串行口的组成 串口数据缓冲寄存器 串行口控制寄存器 串口…

产品数据管理系统​技术方案

产品数据管理系统&#xff08;Product Data Management&#xff0c;简称PDM&#xff09;的技术方案旨在为企业提供高效、系统化的产品数据管理方法。以下是关于产品数据管理系统技术方案的一些关键内容&#xff1a; 产品数据管理系统概述&#xff1a; PDM系统是一个综合性的平台…

C#开发者必备!快速掌握onnxruntime实现YOWOv2视频动作检测技术!

C#开发者必备&#xff01;快速掌握onnxruntime实现YOWOv2视频动作检测技术&#xff01; 目录 介绍 效果 模型信息 项目 代码 Form1.cs YOWOv2.cs 下载 介绍 YOWOv2: A Stronger yet Efficient Multi-level Detection Framework for Real-time Spatio-temporal Action…

2024.3.28学习笔记

今日学习韩顺平java0200_韩顺平Java_对象机制练习_哔哩哔哩_bilibili 今日学习p286-p294 继承 继承可以解决代码复用&#xff0c;让我们的编程更加靠近人类思维&#xff0c;当多个类存在相同的属性和方法时&#xff0c;可以从这些类中抽象出父类&#xff0c;在父类中定义这些…

SQL Server 实验二:数据库视图的创建和使用

目录 第一关 相关知识 什么是表 操作数据表 创建数据表 插入数据 修改表结构 删除数据表 编程要求 第一关实验代码&#xff1a; 第二关 相关知识 视图是什么 视图的优缺点 视图的优点 视图的缺点 操作视图 创建视图 通过视图向基本表中插入数据 通过视图修改基本表的…

骗子查询系统源码

源码简介 小权云黑管理系统 V1.0 功能如下&#xff1a; 1.添加骗子&#xff0c;查询骗子 2.可添加团队后台方便审核用 3.在线反馈留言系统 4.前台提交骗子&#xff0c;后台需要审核才能过 5.后台使用光年UI界面 6.新增导航列表&#xff0c;可给网站添加导航友链 7.可添加云黑类…

某某消消乐增加步数漏洞分析

一、漏洞简介 1&#xff09; 漏洞所属游戏名及基本介绍&#xff1a;某某消消乐&#xff0c;三消游戏&#xff0c;类似爱消除。 2&#xff09; 漏洞对应游戏版本及平台&#xff1a;某某消消乐Android 1.22.22。 3&#xff09; 漏洞功能&#xff1a;增加游戏步数。 4&#xf…