RAG综述:《A Comprehensive Survey of Retrieval-Augmented Generation (RAG)》

来源于《A Comprehensive Survey of Retrieval-Augmented Generation (RAG): Evolution, Current Landscape and Future Directions》

在这里插入图片描述

一、RAG所解决的问题

如何有效地从外部知识源检索相关信息,如何将这些信息无缝地融入到生成文本中,以及如何在保证生成文本流畅性的同时确保其事实性和上下文相关性。

二、组件

RAG(检索增强生成)主要包含以下两个关键组件:检索器和生成器。

1. 检索器(Retriever)

  • 功能:从外部语料库中获取与输入相关的文档或信息,为生成器提供知识来源,以增强生成文本的准确性和事实依据。
  • 常见算法及特点
    • BM25
      • 基于经典的信息检索算法,使用词频 - 逆文档频率(TF-IDF)对文档进行相关性排名。
      • 计算文档相关性分数时,考虑查询词在文档中的出现频率,并根据文档长度和词在语料库中的频率进行调整。
      • 优势在于简单高效,适用于基于关键词匹配的任务。然而,其在理解语义方面存在局限性,对于复杂的自然语言查询,由于无法捕捉词间关系,性能较差。
    • Dense Passage Retrieval(DPR)
      • 一种现代的检索方法,将查询和文档编码到高维向量空间。
      • 采用双编码器架构,分别对查询和文档进行编码,从而实现高效的最近邻搜索。
      • 擅长捕捉查询与文档之间的语义相似性,能基于语义含义检索相关信息,而非仅仅依靠关键词匹配。通过在大规模问答对语料库上训练,即使查询与文档无精确术语匹配,也能找到上下文相关的文档。
    • REALM(Retrieval-Augmented Language Model)
      • 将检索机制集成到语言模型的预训练过程中。
      • 创新之处在于学习检索对特定任务(如问答、文档总结)性能有提升作用的文档。在训练期间,同时更新检索器和生成器,使检索过程针对生成任务进行优化。
      • 其检索器不仅能找到与查询相关的文档,还能挑选出对生成准确、连贯回复有帮助的文档,从而显著提高生成回复的质量,尤其在需要外部知识的任务中表现突出。

检索时查询和文档是分别经过编码器,计算余弦相似度等距离,只能得到字面上相似的;重排时查询和文档同时经过一个编码器,得到一个logit,得到相关分数。

2. 生成器(Generator)

  • 功能:负责接收检索器获取的信息,并将其与输入查询相结合,生成最终的连贯、上下文相关的文本输出。主要还是大模型。
  • 常见模型及特点
    • T5(Text-to-Text Transfer Transformer)
      • 采用统一的文本到文本框架处理各种自然语言处理任务。
      • 能够通过微调适应广泛的任务,如问答、总结和对话生成等。
      • 在RAG系统中,将检索与生成相结合时,T5 - based RAG模型在多个基准测试中表现优于传统生成模型(如GPT - 3和BART),其多任务学习能力使其成为处理多样化知识密集型任务的理想选择。
    • BART(Bidirectional and Auto-Regressive Transformer)
      • 特别适合处理从含噪声输入生成文本的任务,如总结和开放域问答。
      • 作为去噪自编码器,能够重建损坏的文本序列,从而在处理不完整或含噪声数据时,生成连贯、准确的文本。
      • 当与检索器结合用于RAG系统时,BART通过基于外部知识生成文本,有效提高了生成文本的事实准确性。

三、多种模态的RAG

包括文本、音频、视频、多模态RAG。

1.文本RAG

基于文本的RAG模型是最成熟且研究最多的类别。这些模型利用文本数据进行检索和生成任务。

2.音频RAG

区别在于使用音频数据。

3.视频RAG

4.多模态RAG

多模态RAG模型整合来自多种模态的数据——文本、音频、视频和图像,以提供更全面的检索和生成任务方法。像Flamingo这样的模型将多种模态集成到一个统一的框架中,使得文本、图像和视频可以同时处理。跨模态检索技术是核心。

利用大量成对的图像和文本描述数据集,当用户查询与存储的文本描述相匹配时,系统加速图像生成(“检索作为生成”)。图像到文本功能允许用户基于输入图像进行讨论。

四、流行的框架

Agentic Retrieval-Augmented Generation for Time Series Analysis

在这里插入图片描述
当前时间序列分析方法存在局限,如依赖固定长度窗口、难以捕捉复杂趋势、SLMs 处理长序列能力有限等。检索增强生成(RAG)方法可增强文本生成能力,Agentic RAGs 能通过多步推理和迭代优化更好地满足复杂需求。
时序任务包括:预测、缺失数据插补、异常检测、分类任务。

论文所提出的框架通过利用分层的多智能体架构,为时间序列分析提供了一种新颖的方法。**它包含一个主智能体,该主智能体协调专门的子智能体,每个子智能体致力于特定的时间序列任务,如预测、异常检测或插补。**这些子智能体采用预训练的语言模型SLM,并利用提示池作为内部知识库,存储代表历史模式和趋势的键值对。通过从这些池中检索相关提示,子智能体可以用有关过去相关模式的上下文知识来增强其预测,使它们能够适应复杂时间序列数据中的各种趋势。该框架的模块化设计,结合各个子智能体的优势,能够在各种时间序列分析任务中提高性能,超越传统固定窗口方法的限制。

在这里插入图片描述

RULE:多模态医学RAG

在这里插入图片描述

解决的问题:Med-LVLMs 在医疗诊断中存在事实性问题,其生成的响应可能与既定医学事实不符,影响临床决策。虽然检索增强生成(RAG)策略可提升模型事实准确性,但面临检索上下文数量难以确定模型过度依赖检索信息两大挑战。

框架:(1)事实性风险控制策略。(2)知识平衡偏好调整。

主要工作
1.微调医学影响领域的图像和文本编码器,使用对比学习。多模态RAG。
2.事实性风险控制策略:旨在通过校准检索上下文的数量来确保模型的回答具有较高的事实准确性。
在这里插入图片描述
在这里插入图片描述
3.知识平衡偏好调整:DPO。
偏好数据:模型原本回答正确但引入检索知识后回答错误的响应作为不被偏好的效应(模型对检索得到过度依赖);真实答案是被偏好的响应。

METRAG:面向实用性和紧凑性

认为完全依赖相似性有时会降低性能。所以提出和实用性相结合。
在这里插入图片描述
1.引入 LLM 对文档效用的监督获取效用导向思维,结合文档相似性和效用提升性能。
相似性模型作为现成检索器;文档效用是其辅助 LLM 回答问题的有用性,通过 LLM 对文档效用的监督使检索器具备效用导向思维。
引入 LLM 作为文档效用的监督信号,计算文档相对于输入查询的效用似然。最小化相似性和效用似然分布间的KL散度。
2.控制文档数量:从教师模型蒸馏数据,然后SFT和DPO一个学生模型做摘要。

RAFT:Retrieval Aware Fine-Tuning

域内RAG
在这里插入图片描述

RAFT 通过训练模型来忽略任何检索到的无助于回答给定问题的文档,从而消除干扰。这是通过从有用的文档中准确识别和引用相关片段来解决手头的问题来实现的。此外,RAFT 对思维链式响应的使用进一步完善了模型的推理能力。

SFT微调:给定一组文档,查询,答案和思维链过程(防止过拟合),训练模型从抗干扰文档的能力。
在这里插入图片描述

SELF-RAG

在这里插入图片描述
目的:通过按需检索和自我反思提高 LLM 生成质量与事实准确性,同时不影响其通用性。

SELF-RAG往语言模型的词表中引入了4种新类型的reflection tokens,分别是Retriver, IsRel, IsSup, IsUse,对应四种不同的子任务,每个子任务下包括多个对应的reflection tokens。
在这里插入图片描述
1.模型训练
涉及到两个模型,分别是评判模型C跟生成模型M。
评判模型C:根据不同情形生成对应的判别结果,分别对应前面提到的4种类型的reflection token。训练数据由GPT-4合成,用标准的条件语言模型训练目标优化评判模型(最大化reflection token在给定x和y条件下的对数似然概率。
生成模型:在完成评判模型C的训练后,需要利用其来生成训练生成模型M的数据。构建出对应的训练数据(x,augmented y)。在完成训练数据构建后,按照标准的自回归任务训练生成模型。
在这里插入图片描述

2.模型推理
生成模型M首先会判断当前问题是否需要使用检索,如果需要的话,就会检索召回多个相关文档,通过并行的方式同时处理多个文档,并生成对应回复,再通过排序选择其中最合适的回复作为最终结果。
在这里插入图片描述

KG-RAG:融合知识图谱

总览:KG-RAG 管道,该管道从原始文本中提取三元组,将它们存储在 KG 数据库中,并允许搜索复杂信息以使用外部 KG 来增强 LLM。
在这里插入图片描述
1.存储
将非结构化文本数据转换为结构化 KG,通过 LLM 进行三元组提取,引入三元组超节点处理复杂结构,最后计算节点、超节点和关系的嵌入并存储在向量数据库中。

2.检索在这里插入图片描述
在这里插入图片描述

3.生成
在这里插入图片描述
在这里插入图片描述

HippoRAG

KAG的参考框架。
海马体记忆索引理论:认为人类长期记忆由三个部分组成:新皮层、海马旁回和海马体。新皮层负责处理和存储感知输入,旁海马区将感知信号索引到海马体,海马体则利用其上下文依赖的记忆系统进行模式完成。

步骤
1.离线索引(新皮层):开放信息提取(OpenIE),构建知识图谱。
2.在线检索(海马旁回):当接收到查询时,LLM提取查询中的显著命名实体,并通过检索编码器将其链接到KG中的节点。然后,运行个性化PageRank(PPR)算法,以查询节点为种子,探索KG路径并识别相关子图。最后,聚合PPR节点的概率分布,用于检索排序。

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

GitLab 如何跨版本升级?

本分分享 GitLab 跨版本升级的一些注意事项。 众所周知,GitLab 的升级必须要严格遵循升级路径,否则就会出现问题,导致升级失败。因此,在 GitLab 升级之前需要做好两件事情: 当前版本的确认升级路径的确认 极狐GitLa…

aws(学习笔记第十二课) 使用AWS的RDS-MySQL

aws(学习笔记第十二课) 使用AWS的RDS 学习内容: AWS的RDS-MySQL 1. 使用AWS的RDS 什么是RDS RDS就是Relation Database Service的缩写,是AWS提供的托管关系型数据库系统。让用户能够在 AWS Cloud 云中更轻松地设置、操作和扩展关系数据库。 数据库和we…

云原生-docker安装与基础操作

一、云原生 Docker 介绍 Docker 在云原生中的优势 二、docker的安装 三、docker的基础命令 1. docker pull(拉取镜像) 2. docker images(查看本地镜像) 3. docker run(创建并启动容器) 4. docker ps…

Spark 核心概念与宽窄依赖的详细解析

Spark 的介绍与搭建:从理论到实践_spark环境搭建-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交:本地与集群模式全解析-CSDN博客 Spark on YARN:Spark集群模式…

【css】html里面的图片宽度设为百分比,高度要与宽度一样

场景&#xff1a;展示图片列表的时候&#xff0c;原始图片宽高不一致。 外层div的宽度自适应&#xff0c;图片宽度不能固定数值&#xff0c;只能设置百分比。图片高度也不能设置固定数值。 如何让图片的高度与图片的宽度一样呢&#xff1f; html代码 &#xff1a; <div cl…

c#使用COM接口设置excel单元格宽高匹配图片,如何计算?

c#使用COM接口设置excel单元格宽高如何换算 在实际工作中&#xff0c;经常需要在excel中插入图片。并设置单元格与图片对齐。但是excel单元格的宽度和高度使用不同的单位。单元格的宽度以字符宽度为单位&#xff0c;而高度以点为单位。如果按照实际值来设置&#xff0c;例如设…

RHCE web解析、dns配置、firewalld配置实验

RHCE web解析、dns配置、firewalld配置实验 实验一1.清理软件包2.安装软件包3.配置web服务查看默认测试页面报错讲解12 4.安装DNS解析需要的bind软件包5.修改网络配置&#xff0c;查错&#xff0c;修改权限 实验二配置文件haha.confnamed.confnamed.haha 实验一 1、学习方法 重…

JavaEE进阶----SpringMVC(三)---响应的获取

文章目录 1.cookie和session获取1.1servlet写法获取1.2spring获取cookie1.3传统方法获取session1.4sring获取session内容 2.访问静态页面3.一个项目部署多个服务4.responsebody的介绍5.返回html的片段6.不同相应content-type类型6.1text/html类型6.2application-json类型6.3 js…

Chromium 中MemoryMappedFile使用例子c++

文件映射基础介绍参考微软官网&#xff1a; 使用文件映射 - Win32 apps | Microsoft Learn 在文件中创建视图 - Win32 apps | Microsoft Learn 创建命名的共享内存 - Win32 apps | Microsoft Learn 使用大页面创建文件映射 - Win32 apps | Microsoft Learn 从文件句柄获取…

OpenHarmony4.1蓝牙芯片如何适配?触觉智能RK3568主板SBC3568演示

当打开蓝牙后没有反应时&#xff0c;需要排查蓝牙节点是否对应、固件是否加载成功&#xff0c;本文介绍开源鸿蒙OpenHarmony4.1系统下适配蓝牙的方法&#xff0c;触觉智能SBC3568主板演示 修改对应节点 开发板蓝牙硬件连接为UART1&#xff0c;修改对应的节点&#xff0c;路径为…

前端 JS面向对象 原型 prototype

目录 一、问题引出 二、prototype原型对象 三、小结 四、constructor 五、__proto__对象原型 六、原型链 一、问题引出 由于JS的构造函数存在内存浪费问题&#xff1a; function Star(name,age){this.namenamethis.ageagethis.singfunction () {console.log("唱歌&…

生成 Django 中文文档 PDF 版

文章目录 背景克隆 Django 文档和翻译仓库配置 conf.py设置和同步翻译生成 .pot 文件运行 sphinx-intl update复制翻译文件 构建 PDF生成 tex 文件安装 MikTeX生成 PDF Sphinx 生成文档 背景 浏览看到一个帖子&#xff0c;有个评论说可以用 sphinx 构建一个 pdf&#xff0c;正…

mysql 实现分库分表之 --- 基于 MyCAT 的分片策略详解

引言 在我们日常工作的项目中&#xff0c;特别是面向 C 端用户的产品&#xff0c;随着业务量的逐步扩大&#xff0c;数据量也呈指数级增长。为了应对日益增长的数据库压力&#xff0c;数据库优化已成为项目中不可或缺的一环&#xff0c;而分库分表则是海量数据优化方案中的重要…

JUC-locks锁

JUC-locks锁 1、JUC-locks锁概述2、管程模型3、ReentrantLock可重入锁3.1 ReentrantLock源码3.2 Sync静态内部类3.3 NonfairSync非公平锁3.4 FairSync公平锁 如有侵权&#xff0c;请联系&#xff5e; 如有错误&#xff0c;也欢迎批评指正&#xff5e; 1、JUC-locks锁概述 java…

GEE 数据集——美国gNATSGO(网格化国家土壤调查地理数据库)完整覆盖了美国所有地区和岛屿领土的最佳可用土壤信息

目录 简介 代码 引用 网址推荐 知识星球 机器学习 gNATSGO&#xff08;网格化国家土壤调查地理数据库&#xff09; 简介 gNATSGO&#xff08;网格化国家土壤调查地理数据库&#xff09;数据库是一个综合数据库&#xff0c;完整覆盖了美国所有地区和岛屿领土的最佳可用土…

kettle开发-Day43-数据对比

前言&#xff1a; 随着数字化的深入&#xff0c;各种系统及烟囱的建立&#xff0c;各系统之间的架构和数据存储方式不同&#xff0c;导致做数据仓库或数据湖时发现&#xff0c;因自建的系统或者非标准化的系统经常存在物理删除而不是软删除。这就延伸出一个问题&#xff0c;经常…

哪款开放式耳机好用?5款实力出众的开放式耳机按头安利!

随着耳机市场日益火爆&#xff0c;许多品牌与款式不断涌现。但是&#xff0c;不少劣质产品在核心性能上缺乏专业优化&#xff0c;且选用低质材料&#xff0c;在音质还原度和佩戴舒适性等关键方面存在明显短板&#xff0c;导致性能欠佳&#xff0c;聆听体验不佳&#xff0c;还可…

Unity资源打包Addressable资源保存在项目中

怎么打包先看“Unity资源打包Addressable AA包” 其中遗留一个问题&#xff0c;下载下来的资源被保存在C盘中了&#xff0c;可不可以保存在项目中呢&#xff1f;可以。 新建了一个项目&#xff0c;路径与“Unity资源打包Addressable AA包”都不相同了 1.创建资源缓存路径 在…

矩阵的各种计算:乘法、逆矩阵、转置、行列式等——基于Excel实现

在Excel中,可以使用内置的函数和公式来实现矩阵的各种计算。以下是具体方法: 矩阵乘法: 使用MMULT函数。如图矩阵A在单元格范围A1:B2,矩阵B在单元格范围D1:E2,结果矩阵的左上角单元格为G1:选中结果矩阵的区域(如G1:H2)。输入公式:=MMULT(A1:B2, D1:E2)。按Ctrl+Shift…

[ComfyUI]Flux:繁荣生态魔盒已开启,6款LORA已来,更有MJ6写实动漫风景艺术迪士尼全套

今天&#xff0c;我们将向您介绍一款非常实用的工具——[ComfyUI]Flux。这是一款基于Stable Diffusion的AI绘画工具&#xff0c;旨在为您提供一键式生成图像的便捷体验。无论您是AI绘画的新手还是专业人士&#xff0c;这个工具都能为您带来极大的便利。 在这个教程中&#xff…