【RAG论文精读3】RAG论文综述1(2312.10997)-第1部分

news2024/11/24 20:04:55

收录于我的专栏:AI修炼之路

简介

论文中英文名

Retrieval-Augmented Generation for Large Language Models: A Survey
面向大型语言模型的检索增强生成:综述

论文地址

arxiv地址:https://arxiv.org/abs/2312.10997

精读理由

这篇综述论文对RAG在大型语言模型中的应用进行了全面总结,覆盖了如何通过检索增强大规模语言模型的能力,并讨论了不同类型的检索机制及其优化策略。适合对RAG的最新发展进行深入了解。

作者、时间、被引用数

作者团队来自同济大学和复旦大学,发布时间是:2023年12月18日,谷歌学术被引用数:580多次。

作者总结的RAG知识库(推荐)

OpenRAG Base


摘要

1. LLMs的优点与局限

  • 大语言模型(LLMs)的能力:LLMs展示了令人印象深刻的语言处理和生成能力,可以应对多种复杂任务。
  • LLMs的挑战:尽管LLMs表现强大,但它们面临一些关键问题:
    • 幻觉(hallucination):LLMs可能生成不准确或虚构的内容。
    • 过时知识:LLMs依赖于训练数据,而这些数据通常会过时,导致模型无法反映最新的信息。
    • 不透明的推理过程:LLMs的推理过程通常是黑箱操作,缺乏可追踪性和透明性,难以解释生成结果的来源。

2. RAG的提出及其优势

  • 检索增强生成(RAG):RAG通过结合外部数据库中的知识,作为LLMs的一种增强方法,能够解决上述挑战。RAG从外部数据源中检索相关信息,增强生成的准确性和可信度,尤其在知识密集型任务中表现尤为突出。
    • 外部数据库:RAG从外部知识库中检索信息,以确保生成内容基于最新的和特定领域的知识。
    • 动态知识更新:由于RAG可以连接外部数据库,这使得它能够动态地更新知识库,反映最新的事实和领域信息。

3. RAG的工作机制

  • RAG将LLMs的内在知识与外部数据库结合:RAG模型通过同时利用LLMs自身的语言生成能力和外部数据库的动态知识,生成更精确和可靠的答案。
  • RAG的三部分核心机制
    • 检索(Retrieval):从外部知识库中找到相关信息。
    • 生成(Generation):基于检索到的信息生成语言输出。
    • 增强(Augmentation):通过外部知识增强生成的内容,确保其准确性。

4. RAG范式的进化

  • 简单RAG(Naive RAG):最基础的RAG版本,直接将检索到的信息用于生成。
  • 高级RAG(Advanced RAG):通过优化检索和生成过程,提高系统的准确性和效率。
  • 模块化RAG(Modular RAG):引入模块化设计,分别优化RAG中的不同部分,使其更灵活和高效。

5. 前沿技术的整合

  • 技术进展:文章详细分析了RAG框架中的前沿技术,包括在检索、生成和增强技术中的创新。这些进展为RAG系统提供了更高的性能和准确性。

6. 评估框架与基准

  • 更新的评估框架和基准:文章还提出了最新的评估框架,用于衡量RAG系统的表现,并介绍了相应的基准测试数据。这有助于研究人员更好地理解和改进RAG系统。

7. RAG的挑战与未来方向

  • 当前的挑战:RAG系统面临的一些挑战包括如何有效处理多源信息、提高检索和生成的效率,以及在多领域的适应性等。
  • 未来的研究方向:文章还指出了RAG未来发展的潜力和研究方向,例如如何进一步优化检索策略、提升生成质量,以及如何更好地将RAG应用于不同领域的任务。

一、导言

1. LLMs的局限性与RAG的解决方案

  • LLMs的局限:虽然大语言模型在自然语言处理任务中取得了显著成功,但在特定领域或知识密集型任务中,LLMs表现出显著的局限性。主要问题是当LLMs处理超出其训练数据或需要最新信息的查询时,容易出现 “幻觉”现象(生成虚假或不准确的信息)。

  • RAG的作用:为了解决这些问题,RAG通过从外部知识库检索相关的文档片段并将其引入生成过程,从而增强LLMs的能力。通过引用外部知识,RAG显著减少了生成错误信息的可能性。RAG与LLMs的结合已经在广泛的实际应用中得到了采用,特别是在聊天机器人和其他现实应用中,提升了LLMs的适用性。

2. RAG技术的发展阶段

  • 初始阶段:RAG技术的最早发展与Transformer架构的兴起同时发生,最初的研究主要集中在通过预训练模型(Pre-Training Models, PTM)引入额外的知识来增强语言模型。

  • ChatGPT的影响:随着ChatGPT的推出,LLMs展现了强大的上下文学习(ICL)能力,RAG研究也开始转向为LLMs提供更好的信息,以应对更复杂的知识密集型任务。此时,RAG技术得到了快速发展。

  • RAG的演变:随着研究的深入,RAG的改进不再局限于推理阶段,而开始与LLMs的微调技术结合,从而在模型的生成过程中发挥更大的作用。

3. RAG研究的综述

  • 现有研究的不足:尽管RAG技术发展迅速,但缺乏一个系统性的综述来梳理其发展的整体脉络。本文旨在填补这一空白,通过绘制RAG技术的发展路径,详细总结了超过100篇RAG研究中的三大主要研究范式,并分析了“检索”、“生成”和“增强”三个核心阶段中的关键技术。

  • 评估和数据集的总结:当前的研究主要关注方法本身,而缺乏对RAG评估标准的总结。本文系统地回顾了RAG应用的下游任务、数据集、基准和评估方法,旨在为研究人员和实践者提供一个清晰的评估框架和工具。

4. 本文的主要贡献

  • 全面回顾:本文提供了对最新RAG方法的全面系统综述,阐述了从基础的RAG到高级RAG,再到模块化RAG的演变过程,并将这些范式与LLMs的研究背景联系起来。

  • 核心技术的讨论:本文深入讨论了RAG过程中的核心技术,特别是“检索”、“生成”和“增强”三个方面,分析了它们的相互作用,解释了这些组件如何协同工作,形成一个连贯而高效的RAG框架。

  • 评估框架的总结:本文总结了RAG的评估方法,涵盖了26项任务、近50个数据集,提出了当前的评估目标、评估标准和工具,并展望了未来可能的方向。

5. 本文的结构

  • 第II节:介绍RAG的主要概念和当前的研究范式。
  • 第III节至第V节:分别详细探讨了RAG的三个核心组件:“检索”(优化检索方法,包括索引、查询和嵌入优化)、“生成”(侧重于检索后处理和LLMs微调)、“增强”(分析三种不同的增强技术)。
  • 第VI节:重点分析RAG的下游任务和评估系统。
  • 第VII节:讨论RAG目前面临的挑战及其未来的发展方向。
  • 第VIII节:总结全文。

图1

这张图展示了RAG技术的技术树,并将RAG研究分为三个主要阶段:预训练(Pre-training)微调(Fine-tuning)推理(Inference)
在这里插入图片描述

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

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

相关文章

【C语言刷力扣】LCR 182.动态口令

题目: 解题思路: 字符串拼接,先遍历复制从下标为 target 开始的 len - target 位字符,再遍历复制前 target位字符至末尾。 char* dynamicPassword(char* password, int target) {int len strlen(password);// int num 0;int i …

ant-design为input设置默认值,form失效

1.常规input const [inputValue, setInputValue] useState("111");const handleInputChange (e: React.ChangeEvent<HTMLInputElement>) > {setInputValue(e.target.value)};//使用<Input onChange{handleInputChange} value{inputValue}></Inpu…

【C++】:lambda表达式的高级应用

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 引言 今天 我们来见见lambda表达式的高级用法 用法1&#xff1a;自定义删除器 有些类型的delete方法并不符合自身的析构方法&#xff0c;这时我们就需要自定义删除器。 unique_ptr<FILE> ptr1(fopen…

【java数据结构】ArrayList实例

【java数据结构】ArrayList实例 一、杨辉三角二、打扑克 一、杨辉三角 已知条件&#xff1a;给定行数的大小 思路&#xff1a;首先定义一个二维列表&#xff08;也可以称为集合&#xff09;&#xff0c;我们对每一列处理完&#xff0c;最后把每一列加起来&#xff0c;不就是完整…

构建MySQL健康检查Web应用

构建MySQL健康检查Web应用 在这里将探讨如何将MySQL健康检查功能转换为一个功能完整的Web应用。这个应用允许用户通过简单的Web界面执行MySQL健康检查&#xff0c;并查看详细的结果。我们将逐步介绍代码实现、改进过程以及如何设置和运行这个应用。 1. MySQL健康检查类 首先…

YOLOV5改进系列(2)——CA注意力机制

一、CA注意力机制 1.1 CA注意力机制介绍 Coordinate Attention&#xff08;CA&#xff09;是一种用于移动网络的轻量级注意力机制&#xff0c;旨在在不增加计算成本的前提下增强特征表达能力。与传统的通道注意力机制&#xff08;如Squeeze-and-Excitation&#xff09;不同&am…

修改银河麒麟操作系统V10(SP1)网卡名称为ethx

修改银河麒麟桌面操作系统V10&#xff08;SP1&#xff09;网卡名称为ethx 步骤一&#xff1a;查看当前网卡信息步骤二&#xff1a;修改GRUB配置文件步骤三&#xff1a;更新GRUB配置步骤四&#xff1a;编辑网络接口文件步骤五&#xff1a;重启机器 &#x1f496;The Begin&#…

【电商搜索】现代工业级电商搜索技术-EMNLP2024-无监督的用户偏好学习

【电商搜索】现代工业级电商搜索技术-EMNLP2024-无监督的用户偏好学习 0. 论文信息 Title: Unsupervised Human Preference Learning Authors: Sumuk Shashidhar, Abhinav Chinta, Vaibhav Sahai, Dilek Hakkani Tur Comments: EMNLP 2024 Main Conference https://arxiv.org…

『网络游戏』Tips弹窗队列【10】

修改脚本&#xff1a;DynamicWnd.cs 修改脚本&#xff1a;GameRoot.cs 运行项目 - Tips提示消息按顺序依次弹出显示 修改代码&#xff1a;GameRoot.cs 修改代码&#xff1a;LoginSys.cs 运行项目 设置初始化函数 将CreateWnd设置为隐藏 运行项目 本章结束

YOLO 二元分类器

YOLO 二元分类器 在评估二元分类器性能时&#xff0c;TP、FP、TN和FN是四个核心指标&#xff0c;它们分别代表真阳性、假阳性、真阴性和假阴性。以下是这些指标的定义、计算方法以及在实际应用中的意义&#xff1a; 定义 TP&#xff08;真阳性&#xff09;&#xff1a;模型正…

【多重循环在Java中的应用】

多重循环在Java中的应用 介绍 多重循环是将一个循环嵌套在另一个循环体内的编程结构。Java中的 for、while 和 do...while 循环均可作为外层循环和内层循环。建议使用两层嵌套&#xff0c;最多不超过三层&#xff0c;以保持代码的可读性。 在多重循环中&#xff0c;外层循环执…

POST注入通过sqli-labs靶场less-11

POST注入原理 原理介绍 进入第十一关靶场&#xff0c;我们发现是一个登录窗口&#xff0c;随意提交数据&#xff0c;显示 在url地址进行get提交&#xff0c;发现一直是登录窗口&#xff0c;页面无其他变化&#xff0c;想到post提交注入。 通关原理 打开靶场源码文件。 查看…

ChatGPT+AI项目实战:打造多端智能虚拟数字人

ChatGPTAI项目实战&#xff1a;打造多端智能虚拟数字人 越是就业难的情况下&#xff0c;就要越不断的提升自己的能力。前端开发饱和&#xff0c;Java开发饱和&#xff0c;还有什么不饱和呢&#xff0c;AI开发&#xff01; 本文将详细介绍一门旨在通过项目实战&#xff0c;融合…

图片压缩王2.1.5 | 高效图片处理,无广告无登录

图片压缩王是一款专为安卓用户设计的高效图片处理工具。支持批量压缩、格式转换、缩放和裁剪等功能&#xff0c;无广告无登录&#xff0c;让你专注图片处理。 大小&#xff1a;25M 百度网盘&#xff1a;https://pan.baidu.com/s/1cfNJmy6-KeNtlMJRknMZOA?pwdolxt 夸克网盘&am…

【Linux基础】03 Linux环境基础开发工具使用

1. yum ——软件包管理器 yum 是我们 Linux 预装的一个指令&#xff0c;搜索、下载、、安装对应的软件 yum 相当于 Linux 的应用商店&#xff01; 安装与卸载 yum list | grep command 通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我…

微知-如何通过systemctl查看是否存在某个服务?如何全局查看所有的服务?(systemctl list-units --type=service, )

背景 本文介绍在某些场景需要查看是否启动某个服务&#xff0c; 命令 可以全局服务查看&#xff1a;&#xff08;常用在记不清命令名字&#xff0c;只能记住片段&#xff09; systemctl list-units --typeservice | grep rsh也可以直接查看 systemctl status rshim 或者&a…

【数据分享】1901-2023年我国省市县三级逐月最高气温数据(免费获取/Shp/Excel格式)

之前我们分享过1901-2023年1km分辨率逐月最高气温栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;&#xff0c;该数据来源于国家青藏高原科学数据中心&#xff0c;很多小伙伴拿到数据后反馈栅格数据不太方便使用&#xff0c;问我们能不能把数据处理为更方便使用的Sh…

Cannon-ES中RaycastVehicle的深入探索与实践

本文目录 前言1、RaycastVehicle1.1 概念1.2 核心特性1.3 应用场景 2、前置代码准备3、RaycastVehicle的使用3.1 代码3.2 效果 4、监听施加力4.1 代码4.2 效果 前言 在三维物理引擎的世界里&#xff0c;Cannon-ES以其轻量级、高效和易于集成的特点&#xff0c;赢得了众多开发者…

小红书推广7种策略让你在竞争中脱颖而出-华媒舍

1. 小红书&#xff08;Redbook&#xff09; 小红书是中国一家以时尚生活为主题的社交电商平台&#xff0c;为用户提供购物、分享、评论和推广的综合服务。用户可以在平台上发布和浏览心得、评价和购买链接。随着用户数量的不断增加&#xff0c;如何在竞争中脱颖而出&#xff0…

远程控制软件推荐:亲测好用!

无论是在家办公、技术支持还是远程协助家人&#xff0c;一个好的远程控制工具都能让我们的工作更加高效。下面&#xff0c;我将分享我对几款流行的远程控制软件的个人体验&#xff0c;并给出我的推荐。 向日葵远程控制 直达链接&#xff1a;down.oray.com 向日葵远程控制是…