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.生成
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

带你读懂什么是AI Agent智能体

一、智能体的定义与特性 定义:智能体是一个使用大语言模型(LLM)来决定应用程序控制流的系统。然而,智能体的定义并不唯一,不同人有不同的看法。Langchain的创始人Harrison Chase从技术角度给出了定义,但更…

数据库类型介绍

1. 关系型数据库(RDBMS) 关系型数据库是最常见的一类数据库,它们通过表(Table)来存储数据,表之间通过关系(如主键和外键)来关联。 • MySQL:开源的关系型数据库管理系统&…

【红帽Linux】简述Linux文件系统结构

原创 厦门微思网络 Linux 文件系统结构划分清晰、功能明确,每个目录都有特定的用途。以下是各个主要目录的介绍: n/bin: 包含系统启动和单用户模式下的基本命令的二进制文件,例如常见的基本命令 ls 和 cp。 n/boot: 保存与系统启动相关的文…

分贝通上线“在线比价”机制,帮助企业在差旅采购中持续获得低价资源

在企业差旅采购中,如何在不断波动的供求关系价格中保持相对价格优势,是企业进行成本管理必须面临的主要挑战之一。差旅平台分贝通通过其“单位降本”产品逻辑,在差旅管理中实现了显著的成本优化效果,帮助3000合作企业在高频支出场景中取得了可持续的低价优势。 差旅平台分贝通…

MySQL 如何用C语言连接

✨✨✨励志成为超级技术宅 ✨✨✨ 本文主要讲解在Linux服务器上,如何使用c语言MySQL库的接口来对MySQL数据库进行操作,如果没有服务器安装MySQL,也可以先学学看怎么用c语言mysql库的接口,还是比较容易的了。(●☌◡☌●)。那么开…

Hadoop生态圈框架部署(六)- HBase完全分布式部署

文章目录 前言一、Hbase完全分布式部署(手动部署)1. 下载Hbase2. 上传安装包3. 解压HBase安装包4. 配置HBase配置文件4.1 修改hbase-env.sh配置文件4.2 修改hbase-site.xml配置文件4.3 修改regionservers配置文件4.4 删除hbase中slf4j-reload4j-1.7.33.j…

OpenCV与AI深度学习 | 基于YoloV11自定义数据集实现车辆事故检测(有源码,建议收藏!)

本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。 原文链接:基于YoloV11自定义数据集实现车辆事故检测 在智能交通系统领域,实时检测车辆事故的能力变得越来越重要。该项目利用先进的计算机视…

Stable Diffusion 秋叶整合包:Deoldify 插件安装不上的处理办法

打开文件 install.py,参见下图: 把 fasiai 的版本号改成 1.0.61 即可。参见下图:

windows下qt5.12.11使用ODBC远程连接mysql数据库

1、下载并安装mysql驱动,下载地址:https://dev.mysql.com/downloads/ 2、配置ODBC数据源,打开64位的ODBC数据源配置工具:

7+纯生信,单细胞识别细胞marker+100种机器学习组合建模,机器学习组合建模取代单独lasso回归势在必行!

影响因子:7.3 研究概述: 皮肤黑色素瘤(SKCM)是所有皮肤恶性肿瘤中最具侵袭性的类型。本研究从GEO数据库下载单细胞RNA测序(scRNA-seq)数据集,根据原始研究中定义的细胞标记重新注释各种免疫细胞…

World of Warcraft [WeakAuras]Barney Raid Kit - Collapsing Star Indicator

https://wago.io/BarneyCS 黄色数字表示需要修的血量。 绿色数字表示停止修血。 红色数字表示修血过量,以及该坍缩星将在大爆炸读条结束前多少秒爆炸。 Numbers in yellow means damage required. Numbers in green means HP is good, dont damage anymore. Numbers…

丹摩征文活动 | 0基础带你上手经典目标检测模型 Faster-Rcnn

文章目录 🍋1 引言🍋2 平台优势🍋3 丹摩平台服务器配置教程🍋4 实操案例( Faster-rcnn 项目)🍋4.1 文件处理🍋4.2 环境配置🍋4.3 训练模型🍋4.4 数据保存并导…

17.UE5丰富怪物、结构体、数据表、构造函数

2-19 丰富怪物,结构体、数据表格、构造函数_哔哩哔哩_bilibili 目录 1.结构体和数据表格 2.在构造函数中初始化怪物 3.实现怪物是否游荡 1.结构体和数据表格 创建蓝图:结构体蓝图 在结构体蓝图中添加变量,如下所示,为了实现不…

基于SpringBoot+Vue实现剧本杀服务平台【源码+LW+PPT+部署】

作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,…

企业系统集成方案:吉客云与金蝶云星空的无缝对接

企业系统集成方案:吉客云与金蝶云星空的无缝对接 项目背景: 一家领先的3C数码电子产品企业,专注于充电宝、按摩仪等高科技产品的自主研发、设计、生产和销售。企业紧跟市场趋势,积极拓展国内外市场,业务覆盖亚洲、美…

Hi3516CV610 超高清智慧视觉 SoC 产品简介

Hi3516CV610 Hi3516CV610 超高清智慧视觉SoC 内置人脸检测、人形检测、车辆检测、宠物检测、包裹检测算法 总体介绍 Hi3516CV610是一颗应用在安防市场的IPC SoC。在开放操作系统、新一代视频编解码标准、 网络安全和隐私保护、人工智能方面引领行业发 展,主要面…

【短视频内容管理系统的源代码解析与技术交流】

打造短视频矩阵源码,优化细节决胜负 开发和部署短视频矩阵源代码实际上并不复杂。它主要依赖于抖音平台提供的开放权限进行研发,市场上常见的代码功能架构也大同小异。关键在于细节处理和产品优化上的差异。 例如: 1. 在视频制作模块中&…

PH热榜 | 2024-11-12

DevNow 是一个精简的开源技术博客项目模版,支持 Vercel 一键部署,支持评论、搜索等功能,欢迎大家体验。 在线预览 1. Spiky 标语:实时洞察,助力销售决策更快更明智。 介绍:Spiky AI 帮你用实时指导提升团…

C++ 关于基于范围的for循环(C++11) 语法 详解

范围for的语法 在 C98 中如果要遍历一个数组 void TestFor() { int array[] { 1, 2, 3, 4, 5 }; for (int i 0; i < sizeof(array) / sizeof(array[0]); i)array[i] * 2; for (int* p array; p < array sizeof(array)/ sizeof(array[0]); p)cout << *p <<…

【入门篇】判断推理是否有效的实例2——多语言版

跳转原题&#xff1a;判断推理是否有效的实例2 问题分析 根据题目给出的推理逻辑&#xff0c;我们有以下几个条件&#xff1a; 如果张老师来了&#xff08;(P)&#xff09;&#xff0c;问题可以解答&#xff08;(R)&#xff09;&#xff1a;(P \rightarrow R)如果李老师来了&…