认识一下RAG


1.RAG技术背景与挑战

2.RAG的核心概念

3.RAG的工作流程与架构

4.RAG的优化方法

RAG的提出

•Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks是一篇重要的论文(2020年5月)

•REALM: Retrieval-Augmented Language Model Pre-Training (2020)就将BERT预训练模型和一个可微的检索模型  结合起来实现了这一思路,但REALM只探索了抽取式开放域问答。而本文作者面向更难的生成式开放域问答, 提出了 基于seq2seq结构的检索增强生成模型(retrieval-agumented generation, RAG)。

LLM时代的RAG

•  LLM难以更新维护知识、不易掌握长尾知识、以及泄露私人训练数据的风险。

•  RAG 引入大模型的上下文学习 (In-Context Learning, ICL) 中,可以有效减轻上述问题。

•  在推理过程中, RAG 动态地从外部知识源中检索信息,并利用这些检索到的数据作为组织答案 的参考。这极大地提高了答案的准确性和相关性, 有效地解决了大语言模型中的幻觉式错误问 题。

•  RAG(中文为检索增强生成)  = 检索技术 + LLM 提示。 巧妙地结合了生成模型的强大功能和检 索模块的灵活性是解决LLM在知识的局限性、幻觉问题、数据安全性的一套有效方案,

RAG的工作流程与架构

RAG 对比微调

•  RAG 和微调可以相互补充,而非相互排斥。

  准确性: RAG 通过关联外部知识来提高答案的准确性,有效减少了语言模型中出现的虚假信息,使得 生成的回答更加准确可信。

•  及时性:使用检索技术能够识别到最新的信息,这使得 RAG 在保持回答的及时性和准确性方面,相 较于只依赖训练数据的传统语言模型有明显优势。

•  信任度:通过引用信息来源,用户可以核实答案的准确性,增强了人们对模型输出结果的信任。

  个性化:通过索引与特定领域相关的文本语料库, RAG 能够为不同领域提供专业的知识支持。

  安全性: RAG 通过数据库中设置的角色和安全控制,实现了对数据使用的更好控制。相比之下,经过 微调的模型在管理数据访问权限方面可能不够明确。

  经济性: RAG 在处理大规模数据集方面更具有扩展性。无需更新所有参数和创建新的训练集。

RAG的工作流程与架构(演变)

RAG的优化路径:

查询重写

RAG优化-分层索引

RAG优化-语句窗口检索器

RAG优化- 自动合并检索器(或父文档检索 器)

混合检索

编码器微调

 有做过一项测试,对 bge-large-en-v1.5 编码器进行微调,发现对于检索效果提升影

响有限。因为针对搜索优化的最新 Transformer 编码器已经非常高效

排序器微调

•  如果不完全信任基础编码器,可以使用交叉编码器对检索到的结果进行重排。

这个过程是这样的:你把查询和每个前 k 个检索到的文本块一起送入交叉编码器,中 间用 SEP (分隔符) Token 分隔,并对它进行微调,使其对相关的文本块输出 1,对  不相关的输出 0。一个这种微调过程的成功案例可以在这里找到,结果显示通过交叉  编码器微调,成对比较得分提高了 4%

LLM 微调

•  让模型利用了提供的上下文来生成答案。

RAG2.0的到来

RAG-评估

• 忠诚性:强调回复内容必须忠诚于上下文(指检索得到的内容)

• 答案相关性:答案必须是回答给定问题的。

• 上下文相关性:这里是要求检索到的内容必须足够和问题相关, 强调的是检索模块的能力。

• 抗噪性:检测生成模块对噪音(问题无关) 信息的抵抗能力。

• 无答案拒答:在无答案或者内容不正确的情况下拒绝回答的能力。

• 信息整合能力:考察模型能否集成多个文档的内容来回答复杂问 题的能力。

rageval

https://github.com/CLUEbenchmark/SuperCLUE- RAG

RAG中如何处理文档中的图表

目前,主要的表格处理技术包含以下几种:

1.利用多模态LLM(如GPT-4V)来识别表格并从每个PDF页面中提取信息;

2.利用专业的表格检测模型(如TableTransformer),来辨别表格结

3.使用开源框架(如unstructured或者目标检测模型。这些框架可以对整个文档进行全面的解析,并

从解析的结果中提取与表相关的内容;

4.使用Nougat、Donut等端到端模型(不需要OCR)来解析整个文档并提取与表相关的内容,允许容易地

检索表标题。

表格内容如何索引

为了尽可能保留表格内的信息,表格的索引技术大多使用@文档摘要索引结构。

小块的内容可以是来自表的每一行的信息或表的摘要。

大块的内容可以是图像格式、纯文本格式或LaTeX格式的表。

当前最主流的解决方案是:

  1. 1.表格解析:使用Nougat,它的表格检测比unstructured的更有效,此外, Nougat可以很好地提取表格标题,非常方便与表格关联
  2. 2.文档摘要索引结构:小块的内容包括表格摘要大块的内容包括LaTeX格式的相应表格和文本格式的表格标题。
  3. 3.表格摘要获取方法:将表格和表格标题发送给LLM进行摘要。这种方法的优点是,它可以有效地解析表,同时综合考虑表摘要和表之间的关系,而且还不需要多模型LLM的需求,
  4. 从而节省了成本。

• Open RAG

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

libVLC Ubuntu编译详解

1.简介 有时候,windows上开发不满足项目需求,需要移植到linux上,不得不自行编译libvlc,编译libvlc相对而言稍微麻烦一点。 我使用的操作系统:Ubuntu20.04 查看系统命令lsb_release -a libvlc版本: 3.0.1…

CSS导读 (CSS的三大特性 上)

(大家好,今天我们将继续来学习CSS的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 目录 五、CSS的三大特性 5.1 层叠性 5.2 继承性 5.2.1 行高的继承 5.3 优先级 小练习 五、CSS的三大特性 …

Goland远程连接Linux进行项目开发

文章目录 1、Linux上安装go的环境2、配置远程连接3、其他配置入口 跑新项目,有个confluent-Kafka-go的依赖在Windows上编译不通过,报错信息: undefined reference to __imp__xxx似乎是这个依赖在Windows上不支持,选择让…

数据库设计的三范式

简单来说就是:原子性、唯一性、独立性 后一范式都是在前一范式已经满足的情况进行附加的内容 第一范式(1NF):原子性 存储的数据应不可再分。 不满足原子性: 满足原子性: 第二范式(2NF&#xf…

历史遗留问题1-Oracle Mysql如何存储数据、索引

在学习到Oracle redo和undo时,涉及到很多存储结构的知识,但是网上的教程都不是很详细,就去复习了一下mysql,感觉是不是开源的问题,Mysql的社区和知识沉淀远高于Oracle, 对于初学者很友好,我想请…

生成人工智能体:人类行为的交互式模拟论文与源码架构解析(5)——可控评估端到端评估

最后完结篇,文末有测试中发现的有趣现象,并附上了相关资料链接~ 5.可控评估 分两个阶段评估生成代理。我们从一个更加严格控制的评估开始,单独评估代理的响应,以了解它们是否在狭义上定义的上下文中产生可信的行为。然后,在我们对代理社区进行为期两天的端到端分析中,我…

初始C++

1. C关键字(C98) C总计63个关键字, C语言32个关键字 ps:下面我们只是看一下C有多少关键字,不对关键字进行具体的讲解。后面我们学到以后再 细讲。 2. 命名空间 在C/C中,变量、函数和后面要学到的类都是大量存在的,…

llama-factory SFT系列教程 (三),chatglm3-6B 大模型命名实体识别实战

文章列表: llama-factory SFT系列教程 (一),大模型 API 部署与使用llama-factory SFT系列教程 (二),大模型在自定义数据集 lora 训练与部署 llama-factory SFT系列教程 (三),chatglm3-6B 命名实体识别实战 简介 利用 llama-fa…

opencv | 编译缺失ippicv相关文件解决方案

1.执行cmake后,查看控制台输出信息 ~/VM_data/opencv-4.9.0$ cd buile_temp ~/VM_data/opencv-4.9.0/buile_temp$ cmake ..2.去浏览器打开链接,下载对应的压缩包,解压到 路径:/3rdparty/ippicv/

Ubuntu 安装 wine

本文所使用的 Ubuntu 系统版本是 Ubuntu 22.04 ! 如果你使用 Ubuntu 系统,而有些软件只在 Windows 上运行,例如:PotPlayer,那么该如何在 Ubuntu 系统中使用到这些 Windows 的软件呢?答案是安装 wine。 简单的安装步骤如…

在Windows安装R语言

直接安装R语言软件 下载网址:R: The R Project for Statistical Computing 下载点击install R for the first time 通过Anaconda下载RStudio 提前下载好Anaconda 点击Anaconda Navigate 点击RStudio的Install下载就好了

Python:可迭代对象与迭代器

相关阅读 Pythonhttps://blog.csdn.net/weixin_45791458/category_12403403.html?spm1001.2014.3001.5482 根据Python官方文档,可迭代对象(iterable)是“一种能够逐个返回其成员项的对象”。具体来说,这种对象要么定义了一个返回迭代器(iterator)的魔术…

如何实现Windows RDP 远程桌面异地跨网连接

Windows RDP远程桌面的应用非常广泛。远程桌面协议(RDP)是一个多通道(multi-channel)的协议,让使用者(所在计算机称为用户端或本地计算机)连上提供微软终端机服务的计算机(称为服务端或远程计算机)。大部分的Windows版本都有用户端所需软件,有些其他操作…

太阳能路灯光伏板的朝向设计问题

题目:太阳能路灯光伏板的朝向设计问题 难度对标几乎每一年的国赛A题。 QQ群:592697532 公众号:川川菜鸟 文章目录 背景问题问题一问题二问题三 题目解读相关公式(必备)太阳辐射的计算光伏板接收的辐射光学效率大 气透…

数据结构(顺序栈

目录 1. 讲解:2. C代码实现:小结: 1. 讲解: 用顺序的物理结构(数组)存储栈这个数据结构,实现栈的创建、销毁、增删查、判空。 top指针的指向位置有两种实现方法:一个是指向栈顶元素…

云服务器部署Springboot项目

前端项目打包 修改ip地址 在控制台输入npm run build:prod 会产生dist文件 将dist文件中的内容移动至/usr/local/nginx/html目录下 后端项目打包 修改ip地址 执行clean操作 执行install操作 将生成的target文件中的jar包移动至/usr/local/src目录下 启动 注意⚠️&#xff…

前沿论文 | LLM推理性能优化最佳实践

原文:安全验证 - 知乎​ 来源 题目:LLM Inference Performance Engineering: Best Practices 地址:https://www.databricks.com/blog/llm-inference-performance-engineering-best-practices 在这篇博文中,MosaicML工程团队分析了…

AI讲师人工智能讲师大模型培训讲师叶梓:突破大型语言模型推理效率的创新方法

大型语言模型(LLM)在自然语言处理(NLP)任务中展现出了前所未有的能力,但它们对计算资源的巨大需求限制了其在资源受限环境中的应用。SparQ Attention算法提出了一种创新的方法,通过减少注意力机制中的内存带…

HBuilder真机调试检测不到荣耀Magic UI系列(包括手机和电脑)解决办法

HBuilder真机调试检测不到荣耀Magic UI系列(包括手机和电脑)解决办法解决方法: 1.在开发人员选项中开启USB调试 如何进入开发者选项? 设置->关于->版本号,点击版本号直至出现您已处于开发者模式 2.选择USB配置…

Github 2024-04-19Java开源项目日报 Top9

根据Github Trendings的统计,今日(2024-04-19统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目9HTML项目1Android开发者实用工具集 创建周期:2820 天开发语言:Java协议类型:Apache License 2.0Star数量:32909 个Fork数量:10631…
最新文章