RAG 详解

news2024/12/28 3:14:54

原文:GitHub - Tongji-KGLLM/RAG-Survey

目录

  • RAG调查
    • 什么是RAG?
    • RAG的范式
      • 幼稚的 RAG
      • 高级 RAG
      • 模块化 RAG
    • 如何进行增强?
    • RAG 还是微调?
    • 如何评估 RAG?
    • 前景
      • 严峻的挑战
      • 多式联运扩展
      • RAG的生态系统
  • RAG论文清单
    • 增强阶段
      • 预训练
      • 微调
      • 推理
    • 增强源
      • 非结构化数据
      • 结构化数据
      • LLM 生成的内容
    • 增强过程
      • 一次检索
      • 迭代检索
      • 递归检索
      • 自适应检索
    • 杂项
      • 可视化
    • 确认

什么是RAG?

大型语言模型 (LLM) 已成为我们生活和工作不可或缺的一部分,通过其惊人的多功能性和智能性改变了我们与信息交互的方式。

尽管它们的能力令人印象深刻,但它们并非没有缺陷。这些模型会产生误导性的“幻觉”,依赖可能过时的信息,在处理特定知识时效率低下,在专业领域缺乏深度,并且在推理能力方面不足。

在实际应用中,数据需要不断更新以反映最新发展,并且生成的内容必须透明且可追溯,以管理成本并保护数据隐私。因此,仅仅依靠这些“黑匣子”模型是不够的;我们需要更精细的解决方案来满足这些复杂的需求。

在这种背景下,检索增强生成(RAG)作为人工智能时代的开创性趋势而声名鹊起。

RAG在问答中的典型应用。(例如,向 chatGPT 询问 OpenAI 首席执行官 SAM Altman 😆 被解雇和重新聘用一事)

RAG 在生成语言模型的答案之前,首先从外部文档数据库中检索相关信息,从而显著提高了内容的精确度和相关性。

RAG的范式

Lewis 于 2020 年推出的 RAG 概念发展迅速,标志着其研究之旅的不同阶段。最初,该研究旨在通过在预训练阶段为语言模型注入额外的知识来支持语言模型。ChatGPT 的推出引发了人们对利用大型模型进行深入上下文理解的浓厚兴趣,加速了 RAG 在推理阶段的发展。随着研究人员对大型语言模型 (LLM) 功能的深入研究,重点转向增强其可控性和推理能力,以跟上不断增长的需求。GPT-4 的出现标志着一个重要的里程碑,它以一种新颖的方法彻底改变了 RAG,该方法将其与微调技术相结合,同时继续完善预训练策略。

RAG研究的时间线树

在RAG的技术发展中,我们从技术范式的角度将其演进归纳为以下几个阶段:

幼稚的 RAG

经典的 RAG 过程(也称为 Naive RAG)在前面的示例中进行了演示。它主要包括三个基本步骤:

  1. 索引 - 将文档语料库拆分为较短的块,并通过编码器构建矢量索引。
  2. 检索 - 根据问题和块之间的相似性检索相关文档片段。
  3. 生成 - 根据检索到的上下文生成问题的答案。

高级 RAG

朴素RAG在检索、生成和增强方面面临多重挑战。随后提出了高级 RAG 范式,并涉及检索和检索的额外处理。在检索之前,可以使用查询重写、路由和扩展等方法来对齐问题和文档块之间的语义差异。检索后,对检索到的文档语料进行重新排序可以避免“中途丢失”现象,也可以对上下文进行过滤和压缩,以缩短窗口长度。

模块化 RAG

随着RAG技术的进一步发展和演进,突破了传统的朴素RAG检索生成框架,产生了模块化RAG的概念。在结构上,它更加自由和灵活,引入了更具体的功能模块,如查询搜索引擎和多个答案的融合。在技术上,它将检索与微调、强化学习和其他技术集成在一起。在流程方面,RAG 模块经过设计和编排,产生了各种 RAG 模式。

然而,模块化RAG并不是突然出现的。这三种范式之间存在着继承与发展的关系。Advanced RAG 是 Modular RAG 的特例,而 Naive RAG 是 Advanced RAG 的特例。

三种 RAG 范式之间的比较。

如何进行增强?

为了构建一个好的RAG系统,其中增强部分是关键,需要考虑三个关键问题:

  1. 检索什么?
  2. 何时取回?
  3. 如何使用检索到的内容?

从以上三个问题出发,我们组织增强如下:

  • 增强阶段。检索增强可以在预训练微调推理阶段进行,这决定了外部知识的参数化程度,并对应所需的不同计算资源。

  • 增强源。增强可以利用各种形式的数据,包括非结构化数据,例如文本段落、短语或单个单词。也可以使用结构数据,例如索引文档、三元组数据或子图。另一种方法是不依赖外部信息源,而是充分利用LLM的内在功能,从LLM本身生成的内容中检索。

  • 增强过程。最初的检索是一个一次性的过程,但在RAG的发展中逐渐出现了迭代检索、递归检索和自适应检索方法,其中LLM自行决定检索的时间。

  • 具有不同增强方面的技术树。

RAG核心组件的分类

RAG 还是微调?

除了 RAG,LLM 的主要优化策略还包括 Prompt Engineering 和 Fine-tuning (FT)。每个都有自己独特的功能。根据他们对外部知识的依赖和模型调整的要求,他们每个人都有合适的场景。

RAG就像是给模型一本自定义信息检索的教科书,非常适合特定的查询。另一方面,FT 就像学生随着时间的推移内化知识,更适合模仿特定的结构、风格或格式。FT 可以通过增强基础模型的知识、调整输出和教授复杂的指令来提高模型的性能和效率。但是,它不擅长集成新知识或快速迭代新用例。RAG 和 FT 并不相互排斥;它们是互补的,一起使用可能会产生最佳结果。

RAG 与微调象限图

如何评估 RAG?

RAG的评价方法多种多样,主要包括三种质量评分:语境相关性、答案保真度答案相关性。此外,评估还涉及四个关键能力:噪声鲁棒性、拒绝能力、信息集成和反事实鲁棒性。这些评估维度将传统的定量指标与RAG特征的专业评估标准相结合,尽管这些标准尚未标准化。

在评估框架方面,有RGB、RECALL等基准测试,也有RAGAS、ARES、TruLens等自动化评估工具,有助于全面衡量RAG模型的性能。

前景

RAG的发展正在蓬勃发展,有几个问题值得进一步研究。我们可以从三个方面来期待这些:

严峻的挑战

旨在进一步解决RAG当前面临的挑战;

  • 上下文长度。当检索到的内容过多且超出窗口限制时该怎么办?如果 LLM 的上下文窗口不再受限,那么应该如何改进 RAG?
  • 稳健性。如何处理检索到的错误内容?如何过滤和验证检索到的内容?如何增强模型的抗中毒和抗噪能力?
  • 与微调的协调。如何同时利用 RAG 和 FT 的效果,它们应该如何协调、组织,无论是串联、交替还是端到端?
  • 标度定律:RAG 模型是否满足标度定律?RAG是否会在什么情况下遇到逆标度定律现象?
  • LLM的作用。LLM 可用于检索(用 LLM 的生成代替搜索或搜索 LLM 的内存)、生成、评估。如何进一步挖掘LLM在RAG中的潜力?
  • 生产就绪。如何降低超大规模语料库的检索延迟?如何确保检索到的内容不会被 LLM 泄露

多式联运扩展

如何将 RAG 不断发展的技术和概念扩展到其他数据模式,例如图像、音频、视频或代码?一方面,这可以增强单一模态内的任务,另一方面,它可以通过RAG的思想融合多模态。

RAG的生态系统

RAG的应用不再局限于问答系统;它的影响力正在扩展到更多领域。现在,各种任务,如研究系统、信息提取报告生成,都开始受益于RAG技术的应用。

与此同时,RAG技术栈正在经历蓬勃发展。除了 Langchain 和 LlamaIndex 等知名工具外,市场上还出现了更有针对性的 RAG 工具,例如:针对特定用例定制以满足更集中的场景需求的 RAG 工具;那些简化用于进一步降低进入门槛的措施;以及那些专门从事功能的,逐渐瞄准生产环境。

RAG论文清单

增强阶段

预训练

1.通过从数万亿个令牌中检索来改进语言模型 [论文][代码]

2.基于检索增强语言模型的少样本学习 [论文]

3.Toolformer:语言模型可以自学使用工具[论文]

4.复印就是你所需要的[纸张]

5.基于检索增强编码器-解码器语言模型的上下文学习[论文]

6.我们是否应该用检索来预训练自回归语言模型?[论文]

7.Demonstrate-Search-Predict: Composing retrieval and language models for knowledge-intensive NLP[论文]

微调

1.面向开放领域问答的密集段落检索[论文]

2.UPRISE: Universal Prompt Retrieval for Improving Zero-Shot Evaluation[论文][代码]

3.从读者到检索者进行知识的提炼,用于问答[论文]

4.RA-DIT: Retrieval-Augmented Dual Instruction Tuning[论文]

5.Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection[论文]

6.基于知识的对话生成知识图谱增强语言模型[论文]

7.结构感知语言模型预训练改进结构化数据的密集检索 [论文] [代码]

8.Replug: Retrieval-augmented black-box language models [论文]

9.增强适应的猎犬提高了语言的泛化能力 模型作为通用插件 [论文][代码]

推理

1.通过记忆进行泛化:最近邻语言模型[论文]

2.演示-搜索-预测: 为知识密集型 NLP 编写检索和语言模型 [论文][代码]

3.关键字增强检索:与语音界面集成的信息检索新框架。[论文]

4.将检索与思维链推理交织在一起,用于知识密集型多步骤问题。[纸张][代码]

5.生成而不是检索:大型语言模型是强大的上下文生成器 [论文] [代码]

6.In-Context Retrieval-Augmented Language Models [论文]

增强源

非结构化数据

1.UPRISE: Universal Prompt Retrieval for Improving Zero-Shot Evaluation[论文][代码]

2.从分类到生成:跨语言检索增强ICL的见解[论文]

3.复印就是你所需要的[纸张]

结构化数据

1.FABULA:使用检索增强叙事结构生成情报报告[论文]

2.基于知识的对话生成知识图谱增强语言模型[论文]

3.KnowledGPT: Enhancing Large Language Models with Retrieval and Storage Access on Knowledge Bases [论文]

4.Graph-ToolFormer:通过ChatGPT的提示增强赋予LLMs图推理能力[论文]

LLM 生成的内容

1.Lift Yourself Up: Retrieval-Augmented Text Generation with Self-Memory [论文]

2.演示-搜索-预测: 为知识密集型 NLP 编写检索和语言模型 [论文]

3.背诵增强语言模型[论文]

4.生成而不是检索:大型语言模型是强大的上下文生成器 [论文]

5.大型语言模型的自知引导检索增强 [论文]

增强过程

一次检索

1.知识密集型NLP任务的检索增强生成[论文]

2.UPRISE: Universal Prompt Retrieval for Improving Zero-Shot Evaluation [论文]

3.基于参数化知识指导的增强大型语言模型 [论文]

4.学习检索大型语言模型的上下文示例。[论文]

5.Few-shot Learning with Re-trieval Augmented Language Models [论文] 6.Replug: Retrieval-augmented black-box language models [论文]

7.背诵增强语言模型[论文]

迭代检索

1.演示-搜索-预测: 为知识密集型 NLP 编写检索和语言模型 [论文][代码]

2.Retrieve-and-Sample: Document-level Event Argument Extraction via Hybrid Retrieval Augmentation [论文]

3.Enhancing Retrieval-Augmented Large Language Models with Iterative Retrieval-Generation Synergy[论文]

4.检索生成协同增强大型语言模型[论文]

递归检索

1.Interleaving Retrieval with Chain-of-Reasoning for Knowledge-Intensive Multi-Step Questions [论文][代码]

2.Tree of Clarifications: Answering Ambiguous Questions with Retrieval-Augmented Large Language Models [论文]

自适应检索

1.主动检索增强生成[论文][代码]

2.Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection [论文]

3.基于检索增强编码器-解码器语言模型的上下文学习[论文]

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

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

相关文章

Leetcode 1049 最后一块石头的重量II

题意理解&#xff1a; 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。 思路转化&#xff1a;我们可…

Unity报错:[SteamVR] Not Initialized (109)的解决方法

问题描述 使用HTC vive 头像进行SteamVR插件的示例场景进行测试&#xff0c;发现头显场景无法跳转到运行场景&#xff08;Unity 项目可以运行&#xff0c;仅出现警告&#xff09;。 具体如下&#xff1a; [SteamVR] Not Initialized (109) [SteamVR] Initialization failed…

数字化转型的必备工具——易点易动固定资产管理系统

在互联网和新技术不断发展的今天,数字化转型已经成为各行各业都需要进行的重要布局。随着互联网思维的持续渗透,固定资产管理也需要进行变革与优化,离开线下转入线上。易点易动作为一款专业的固定资产管理软件,旨在为企业提供全方位便捷的数字化资产管理服务,帮助企业实现数字化…

学生用台灯哪个品牌比较好?口碑最好的护眼台灯推荐

市场上护眼台灯的价格从几百到几千元都有&#xff0c;如果是经济允许当然是越贵可能会越好啊&#xff0c;更多的人还是需要性价比高的护眼台灯的&#xff0c;这也是我写这篇文章的初心啦&#xff0c;也为了给大家避坑&#xff0c;作为一个测评博主&#xff0c;综合我个人购买的…

RT-DETR 更换主干网络之 ShuffleNetv2 | 《ShuffleNet v2:高效卷积神经网络架构设计的实用指南》

目前,神经网络架构设计多以计算复杂度的间接度量——FLOPs为指导。然而,直接的度量,如速度,也取决于其他因素,如内存访问成本和平台特性。因此,这项工作建议评估目标平台上的直接度量,而不仅仅是考虑失败。在一系列控制实验的基础上,本文得出了一些有效设计网络的实用指…

1 Cesium介绍

Cesium ​ Cesium 是一款面向三维地球和地图的&#xff0c;世界级的JavaScript开源产品。它提供了基于JavaScript语言的开发包&#xff0c;方便用户快速搭建一款零插件的虚拟地球Web应用&#xff0c;并在性能&#xff0c;精度&#xff0c;渲染质量以及多平台&#xff0c;易用性…

【计算机组成-指令系统体系结构】

课程链接&#xff1a;北京大学陆俊林老师的计算机组成原理课 1. 设计自己的计算机 一个简单的计算机指令系统 运算类指令&#xff1a;ADD R&#xff0c;M&#xff1b;功能&#xff1a;将R的内容和M中的内容相加后存入R传送类指令&#xff1a;LOAD R&#xff0c;M&#xff1b;…

数控开料机对比木工雕刻机的优势

数控开料机和木工雕刻机都属于木工机械加工设备&#xff0c;都可以用来开料和雕刻&#xff0c;但在市场价格、床体结构、技术要求等方面二者存在不小的差异&#xff0c;那么全自动数控开料机对比普通木工雕刻机有什么优势呢。 首先我们都知道&#xff0c;木工雕刻机主要应用于…

c语言进阶指南(17)——动态内存管理

欢迎来到博主的专栏——c语言进阶指南 博主id已更新&#xff1a; 文章目录 动态内存分配malloc动态内存的释放free其他的动态内存管理函数callocrealloc使用realloc函数调整动态内存空间使用realloc函数分配动态内存空间 动态内存分配 动态内存分配是内存分配的一种方法&#…

android 实时流媒体 实时流媒体播放

场景描述 将实时流采集终端的视频数据实时推送到另外一个&#xff08;多个&#xff09;播放终端&#xff0c;完成远距离实时视频播放的功能。典型场景&#xff1a; &#xff08;1&#xff09;远程查看监控摄像头。选择指定摄像头&#xff0c;将该摄像头采集到的实时数据推送到…

学习华为企业无线网络,有这篇文章就够了(二)

学习华为企业无线网络&#xff0c;有这篇文章就够了&#xff08;一&#xff09;https://xmws-it.blog.csdn.net/article/details/135385614 WLAN的基础配置命令 - 配置AP上线 (1) •命令&#xff1a;optioncode [ sub-optionsub-code ] { asciiascii-string | hex hex-string |…

ChatGPT新出Team号 年付费

之前一直传的团队版ChatGPT终于来了&#xff0c;这个对拼单的比较合算。每人每月25美元&#xff0c;只能按年支付。 团队版比普通版多的权益有&#xff1a; ◈更多的GPT-4消息上限&#xff0c;三小时100次。 ◈可以创建与团队内部共享的GPTs。 ◈用于工作空间管理的管理员控…

数字化转型助力保险业腾飞,国产化安全产品护航高质量发展

近几年&#xff0c;全球贸易和经济受到了巨大冲击&#xff0c;众多贸易企业经营环境面临困难&#xff0c;某保险公司为国内企业提供强有力的保险保障&#xff0c;大大减轻了企业在国际贸易中风险&#xff0c;为国家经济恢复起到关键的作用。2022年&#xff0c;该保险公司承保金…

大数据 - Doris系列《三》- 数据表设计之表的基本概念

目录 &#x1f436;3.1 字段类型 &#x1f436;3.2 表的基本概念 3.2.1 Row & Column 3.2.2 分区与分桶 &#x1f959;3.2.2.1 Partition 1. Range 分区 2. List 分区 进阶&#xff1a;复合分区与单分区的选择 3.2.3 PROPERTIES &#x1f959;3.2.3.1 分片副本数 &#x1f…

聚丙烯PP它的化学特性是什么? UV胶水能够粘接聚丙烯PP吗?

聚丙烯&#xff08;Polypropylene&#xff0c;简称PP&#xff09;是一种热塑性聚合物&#xff0c;属于聚烯烃类塑料之一。以下是聚丙烯的一些化学特性&#xff1a; 1. 分子结构&#xff1a; 聚丙烯是由丙烯单体&#xff08;propylene&#xff09;聚合而成的。其分子结构主要由…

235个国家-数字经济发展相关23个指标(2000-2022年)

本文涉及235个国家的数字经济发展的23个相关指标数据&#xff0c;为我们提供了一个全面的视角&#xff0c;用以分析和比较全球范围内数字经济的发展状况。这些国家&#xff0c;年份&#xff0c;移动网络覆盖率&#xff0c;固定电话普及率&#xff0c;固定宽带普及率等指标。这些…

【Web】CTFSHOW PHP命令执行刷题记录(全)

目录 web29 web30 web31 web32 web33 web34 web35 web36 web37-39 web40 web41 &#xff08;y4✌脚本&#xff09; web42 -44 web45 web46 -49 web50 web51 web52 web53 web54 web55-56 web57 web58 web59 web60 web61 web62 web63-65 web66-67 w…

十个月,双非从零到大厂实习,我经历了什么?

个人背景 「双非大三」计科专业在读&#xff0c;某短视频「一线大厂」数据开发 22年10月份接触大数据&#xff0c;次年4月开始收割小厂实习offer&#xff0c;七月进入小厂实习&#xff0c;八月通过大厂面试 我只是万千普通人中的幸运儿&#xff0c;希望我的经历可以给一些人…

vulhub中的Nginx 文件名逻辑漏洞(CVE-2013-4547)

目录 Nginx 文件名逻辑漏洞&#xff08;CVE-2013-4547&#xff09; 1.cd到CVE-2013-4547 2.执行docker-compose up -d 3.查看靶场是否开启成功 4.访问浏览器 5.上传含有一句话木马的图片 6.burp抓包 7.在shell.gif加空格 8.放包 9.访问路径 10.继续抓包 11.在aa后面…

基于Java开发的工作流审批系统,自定义工作流,表单绑定

前言 activiti工作流&#xff0c;企业erp、oa、hr、crm等审批系统轻松落地&#xff0c;请假审批demo从流程绘制到审批结束实例。 一、项目形式 springbootvueactiviti集成了activiti在线编辑器&#xff0c;快速开发平台&#xff0c;可插拔工作流服务。 二、项目介绍 本项目…