RAG技术综述

news2024/11/15 17:20:32

在这里插入图片描述
RAG的基本架构。,生成器和检索器。
参考paper:https://arxiv.org/html/2402.19473v4

文中将rag的内容从文本扩展至多模态,打开了思路。

生成器:transformer,LSTM,扩散模型,gan
检索器:稀疏检索(tf-idf,bm25),密集检索(余弦相似度,内积,l2距离),混合检索

一、RAG的类别

基于查询的 RAG、基于潜在表征的RAG、基于Logit的RAG,推测型RAG

1.基于查询的 RAG

基于查询的RAG无缝整合了用户的查询与检索到的信息见解,直接在语言模型输入的初始阶段使用。这种方法在RAG应用中很普遍。检索完成后,获取的内容与用户的原始查询合并形成一个复合输入序列,然后由生成器处理以创建响应。基于查询的RAG广泛应用于各种模式。

2.基于潜在表征的RAG

基于潜在表示的RAG框架的原理是通过将检索到的信息作为潜在表示(latent representations)直接纳入生成模型中,以增强模型的理解能力和生成内容的质量。其核心思想是将检索到的相关信息编码为潜在表示,然后在生成过程中将这些表示与原始输入信息相结合,提供更丰富的上下文和背景知识,从而生成更准确和相关的输出。

3.基于Logit的RAG

基于Logit的RAG(Retrieval-Augmented Generation)在生成模型的解码过程中通过Logit整合检索到的信息。具体来说,这种方法在生成每一步时,将语言模型生成的概率与检索到的相似前缀的概率进行组合,通常通过简单的求和或其他模型计算出每一步的生成概率。这样,模型能够在每一步生成过程中利用检索到的上下文信息,从而提高生成结果的质量和相关性。

4.推测型RAG

基于推测的RAG(Speculative
RAG)旨在寻找使用检索替代纯生成的机会,以节省资源并加快响应速度。这种方法通过在生成过程中更多地依赖检索信息,而不是完全依赖生成模型,从而提高效率。

基本原理
  1. 推测解码:传统推测解码中,使用较小的模型来生成草稿,然后由更大的模型进行精炼。REST [32] 提出了用检索替代小模型来生成草稿。
  2. 语义缓存:GPTCache [39] 通过建立一个语义缓存来存储LLM的响应,解决了使用LLM API时高延迟的问题。这意味着,当遇到类似的查询时,可以直接从缓存中检索结果,而不需要重新生成。
  3. 文本生成过程的分解:COG [122] 将文本生成过程分解为一系列的复制粘贴操作,从文档中检索单词或短语,而不是生成它们。这种方法通过减少生成步骤,提高了生成效率。
  4. 短语级内容检索:Cao等人[123] 提出了一个新范式,通过直接检索短语级内容来消除最终结果对第一阶段检索内容质量的依赖,从而替代生成。
优势
  • 资源节约:通过减少生成过程中的计算量,基于推测的RAG方法可以显著节省计算资源。
  • 加快响应速度:由于减少了依赖生成模型的次数,响应速度得以加快。
  • 利用预训练模型:这种方法可以直接利用预训练的生成模型和检索模型,使其更加灵活和高效。
挑战
  • 检索内容的质量:检索内容的质量直接影响最终生成结果的质量。因此,如何优化检索过程和结果是一个关键问题。
  • 融合策略:如何有效地将检索内容与生成内容融合也是一个需要解决的问题。

二、RAG的增强方向

在这里插入图片描述

1.输入增强

指的是用户的query。
方法:查询转换、数据增强。
查询转换:通过修改输入查询来增强检索结果。
数据增强:在检索前改善数据,包括去除无关信息、消除歧义、更新过时文档、合成新数据等技术。

2.检索器增强

检索内容的质量决定了生成器输入的信息质量。较低的内容质量会增加模型产生幻觉或其他性能下降的风险。
方法:
递归检索:进行多次搜索以获取更丰富和高质量内容的方法。如COT,蒙特卡洛树搜索。
块优化:是指调整块大小以改进检索结果。
检索器微调:检索器在RAG系统中起着核心作用,依赖于高效的嵌入模型来聚类相关内容并传递给生成器,从而提升系统性能。
混合检索:同时使用多种检索方法或从多个不同来源提取信息。
重排序技术:是指对检索内容进行重新排序,以实现更大的多样性和更好的结果。
检索转换:检索转换涉及重新措辞检索内容,以更好地激发生成器的潜力,从而改进输出。(内容过滤、向量压缩、模板重构)

3.生成器增强

在RAG系统中,生成器的质量通常决定了最终输出结果的质量。因此,生成器的能力决定了整个RAG系统的效果上限。

提示工程技术:旨在提高LLM输出的质量,这些技术包括提示压缩、Stepback Prompt、Active Prompt、链式思维提示等。
解码调整:通过调整超参数来增强生成器控制,以增加多样性和限制输出词汇表等方式进行。
微调生成器:可以增强模型对更精确领域知识的掌握或更好地与检索器配合。

4.结果增强

在许多情况下,RAG的结果可能未达到预期效果,一些结果增强技术可以帮助缓解这个问题。

输出重写:指在某些情况下重写生成器生成的内容,以满足下游任务的需求。
SARGAM、Ring、CBR-KBQA

5.RAG管道增强

RAG管道增强是指在系统层面优化RAG的处理流程,以实现更好的性能结果。

1.自适应检索
检索并不总是能增强最终结果。过度检索可能会导致资源浪费,并在模型固有的参数化知识足以回答相关问题时引起潜在的混乱。
确定检索必要性的方法:基于规则的方法和基于模型的方法。
基于规则的方法:(对于高频问题直接回答,低频问题应用RAG​ ;通过生成过程中的概率主动决定是否以及何时进行搜索)
基于模型的方法:使用“判断提示”确定LLM是否能回答相关问题以及其答案是否正确,从而辅助确定检索的必要性。

2.迭代RAG
通过多次循环检索和生成阶段逐步优化结果,而不是单轮操作。
如:使用零次链式思维提示由LLM初步生成内容,然后通过从外部知识库检索知识来修正每个思维步骤​ 。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么一键消除路人?教你三个消除方法

怎么一键消除路人?在数字时代,摄影已成为我们记录生活、表达情感的重要方式。然而,完美的照片背后往往隐藏着一些不那么完美的元素——比如那些不经意间闯入镜头的路人。他们或许只是匆匆过客,但却足以破坏你精心构图的美好瞬间。…

香农信息量/自信息、信息熵、相对熵/KL散度/信息散度、交叉熵

诸神缄默不语-个人CSDN博文目录 文章目录 1. 引言2. 什么是熵?3. 香农信息量/自信息香农信息量的定义香农信息量的含义香农信息量计算示例香农信息量与信息熵的关系 4. 信息熵信息熵的定义信息熵的计算公式信息熵计算示例 5. 衡量两个分布间的差异:相对熵…

Excel工作簿/表的合并/拆分全集(一文通关)

概述 在工作中,我们常会用到到Excel拆分/合并为多个工作表/簿,如全国的订单表,需要根据省份列拆分下发至对应的省、各省份数据需要汇总、...... 应该如何操作呢? 1. 传统方法(借助透视表、Power Query编辑器、VBA实现…

Alienware外星人笔记本m17 R3原厂OEM预装Win10系统包下载,恢复开箱状态电脑自带系统

适用型号:Alienware M17 R3 链接:https://pan.baidu.com/s/1m3RwLmIlih3iPn5AclpptQ?pwdmsef 提取码:msef 外星人原装W10系统自带所有驱动、出厂专用主题壁纸、系统属性专属联机支持标志、系统属性专属LOGO标志、Office办公软件、MyAlie…

k8s-helloword部署一个应用

k8s-helloword部署一个应用 快速部署一个pod命令 部署一个名为 test-nginx Pod 方式一:使用 kubectl run kubectl run test-nginx --imagenginx然后使用 kubectl get pod 查看,kubectl get pod 是查看默认名称空间下的Pod 如果想要跟详细的查看这个…

OpenAI模型GPT-4o、GPT-4、Gemini 1.5性能比较

大家好,OpenAI最新推出的GPT-4o,标志着人工智能语言模型和交互方式迈入了新纪元。最引人注目的是,GPT-4o支持实时互动和流畅的对话切换,让交流更加自然。 本文将对比分析GPT-4o、GPT 4以及谷歌的Gemini和Unicorn模型,…

java继承使用细节二

构造器 主类是无参构造器时会默认调用 public graduate() {// TODO Auto-generated constructor stub也就是说我这里要用构造器会直接调用父类。它是默认看不到的 ,System.out.println("graduate");} 但当主类是有参构造器如 public father_(int s,doubl…

2024最新私有化部署AI大模型,让每个人都有属于自己的AI助理

让每个人都拥有一个属于自己的本地大模型 下载Ollama 下载地址 ​ https://ollama.com/download ​ Ollama支持MacOS、Linux、Windows 解压 下载完成后,会得到一个Ollama-darwin.zip文件,解压后,以Mac为例是一个可运行文件:O…

鸿蒙HarmonyOS开发:tabs结合tabContent实现底部tabBar导航栏页面布局

文章目录 一、组件介绍1、Tabs参数属性事件TabsController 2、子组件属性说明 二、基础示例1、基础顶部导航2、效果3、可以滚动导航栏2、效果 三、扩展示例自定义导航栏1、代码2、效果 一、组件介绍 Tabs组件的页面组成包含两个部分,分别是TabContent和TabBar。Tab…

【CTF Web】NSSCTF 3868 [LitCTF 2023]这是什么?SQL !注一下 !Writeup(SQL注入+报错注入+括号闭合+DIOS)

[LitCTF 2023]这是什么?SQL !注一下 ! 为了安全起见多带了几个套罢了o(▽)q 出题人 探姬 解法 先试试这个: )))))) or 11 -- 有结果了,但是这个 flag 是假的。 flag 可能在其他表里。用 hackbar 上 DIOS payload。 …

2024-2030数据集成成熟度曲线(一)

作者 | 郭炜 导读:最新发布的《技术成熟度曲线2024》全面评估数据集成技术架构的7个维度,包括技术成熟度、技术难度、业务价值、技术成熟周期、管理协作难度、大模型结合等评估维度,报告篇幅较长,我们将报告分为3篇系列文章&#…

微信小程序源码-基于Java后端的会议发布与预约系统毕业设计(附源码+演示录像+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设…

一文通晓mysql

目录 1.mysql在centos7环境上的安装 2.数据库基础 1. 什么是数据库 2.基本认识 3.库的操作 1.创建数据库 2.查看数据库列表 3.删除数据库 4.修改数据库 5.库的备份与修复 4.表的操作 1.创建表 2.查看表 3.修改表 修改表名 给表增加属性。 修改表中的某个属性&…

【传知代码】用二维图像渲染3D场景视频-论文复现

文章目录 概述原理介绍模型介绍环境配置/部署方式安装环境准备数据训练(train)评估(eval)渲染(render) 小结 论文地址 本文涉及的源码可从用二维图像渲染3D场景视频该文章下方附件获取 概述 **NeRF&#…

第十九届全国环境友好科技竞赛(绿色创业类)正式启动

近日,第十九届全国环境友好科技竞赛(绿色创业类)正式拉开帷幕。本次竞赛由清华大学、同济大学、西安建筑科技大学及中国环境科学学会共同主办,旨在通过学科竞赛的方式鼓励全国高校学生积极参与到资源节约型和环境友好型的和谐社会…

【linux-IMX6ULL-LED字符驱动框架完善】

目录 1.简介2.前置知识2.1 重要函数及结构体2.2 程序框架流程 3. 代码详解: 1.简介 在上节,我对linux-IMX6ULL-字符设备驱动简单框架实验进行了说明和构建,但是也存在几个问题; 需要手动指定设备号,不能自…

Android Studio添加依赖 新版 和 旧版 的添加方式(Gradle添加依赖)(Java)

旧版的(在线添加) 1找 文件 在项目的build.gradle文件中添加依赖(在下面的节点中添加库 格式 ’ 组 :名字 : 版本号 ‘ ) dependencies {implementation com.example:library:1.0.0 }implementation 组:名字:版本…

手机版AI写作软件哪个好用?5款AI写作软件分享

在这个快节凑的时代,人们对于高效、便捷的创作方式很是追求。尤其是在人工智能技术发展迅速的今天,AI写作软件的出现,让很多自媒体创作者都会想到在手机上面进内容创作,这样不仅能提高工作效率,而且工作的自由度会更高…

Centos7静态路由和动态路由

路由,即路由选择(Routing),是指在计算机网络中选择数据传输路径的过程。路由器(Router)是执行路由选择功能的网络设备。路由的主要目的是在复杂的网络结构中,选择最佳路径将数据包从源节点传递到…

等保三级 腾讯云控制台检查项设置

1、地址限制 2、角色里加三权用户(查看日志权限) 3、登录失败处理和超时退出 4、密码复杂度和口令有效期 5、双因素验证 6、操作审计