认识一下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.mzph.cn/news/820114.shtml

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

相关文章

Unity URP Release-Notes

🌈Unity URP Release-Notes 收集的最近几年 Unity各个版本中 URP的更新内容 本文信息收集来自自动搜集工具👈 💡URP Release-Notes 2023 💡URP Release-Notes 2022 💡URP Release-Notes 2021

Unity URP 2023 Release-Notes

🌈Unity URP 2023 Release-Notes 本文信息收集来自自动搜集工具👈 版本更新内容2023.2.13URP: Ensure motion vector depth buffer is valid for cameras with motion vectors enabled.(UUM-61466)2023.2.2Universal RP: URP: Fixed an issue where scr…

家居网购项目(三)

文章目录 1.后台管理—添加家居1.需求分析2.程序框架图3.修改FurnDao添加方法add 4.修改FurnDaoImpl添加方法add 5.单元测试FurnDaoTest.java 6.修改FurnService添加方法add 7.修改FurnServiceImpl添加方法add 8.单元测试FurnServiceTest.java 9.修改furn_add.jsp10.修改FurnSe…

向量数据库之Lancedb学习记录

简介 Lancedb是一个用于人工智能的开源矢量数据库,旨在存储、管理、查询和检索大规模多模式数据的嵌入。Lancedb的核心是用Rust编写的,并构建在Lance之上,专为高性能 ML 工作负载和快速随机访问而设计。 快速开始 安装 pip install lance…

【面试经典 150 | 数学】阶乘后的零

文章目录 写在前面Tag题目来源题目解读解题思路方法一:数学优化计算 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结…

安秉信息桌面监控软件为什么这么受企业的欢迎

如今,软件市场上的桌面监控软件的类型丰富,种类齐全,几乎每个消费者都可以在市场上找到一款适合自己需求的桌面监控软件。不过,在市场经济调节下,软件行业的竞争也变得更加激烈,而竞争也能让真正受欢迎的桌…

CJS的module.exports 、 exports和ESM export default和 export详解

webpackg公共源码 function __webpack_require__(moduleId) {if (__webpack_module_cache__[moduleId]) {return __webpack_module_cache__[moduleId].exports;}var module __webpack_module_cache__[moduleId] { exports: {} };__webpack_modules__[moduleId](module, modu…

人工智能——机器学习概述

1. 人工智能 1.1. 概念 人工智能(Artificial Intelligence,AI),是新一轮科技革命和产业变革的重要驱动力量, [26]是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是智能学科重要的组…

【Ansible自动化运维】Ansible入门基础信息【安装配置、常用命令与模块】

介绍安装配置注意事项yum安装验证安装配置host配置主机清单配置主控端被控端 常用模块命令组成command模块shell模块copy模块script模块 日志信息最后 介绍 Ansible 是一个开源 IT 自动化引擎,可自动执行供应、配置管理、应用程序部署、编排和许多其他 IT 流程。它可…

Python 选择用类或方法做装饰器的场景

在Python中,我们可以使用方法或者类来实现装饰器。选择使用方法还是类作为装饰器,主要取决于具体的应用场景。 使用方法作为装饰器 当装饰器的功能相对简单,不需要保持任何状态信息时,使用方法作为装饰器是一个不错的选择。这种情况下,装饰器通常只是对被装饰函数进行一些额外…

YesPMP平台 | 活动有礼,现金奖励点击领取!

YesPMP众包平台在线发福利啦,活动火热开启,现金奖励等你来领,最高可领千元,赶快参与将奖励收入囊中,一起来了解活动细节吧! 一、活动内容: 活动一:【项目征集令】活动,…

两个变量交换值

a a ^ b ; b a ^ b ; a a ^ b ; 这段代码是一个常见的技巧,用于交换两个整数变量a和b的值,而不使用临时变量。这里使用了异或运算符(^),它会对两个整数的每一位执行异或操作。异或操作的定义是:相同为0&…

前端大文件上传 -- 上传文件到S3或本地服务器

特别提醒 大文件上传的文件切片逻辑, 包括如何将分片文件上传到本地服务器, 请查看之前的文章: 前端大文件上传 - 总结(Vue3 hook Web Worker实现,通过多个Worker线程大大提高Hash计算的速度), 本篇仅实现如何将大文件分块上传到S3. 后面写…

代码随想录打卡—day27—【回溯】— 回溯基础练习 4.15

1 39. 组合总和 39. 组合总和 我的AC代码&#xff1a; class Solution { public:vector<vector<int>> ans;vector<int> path;void dfs(int sum,vector<int>& candidates,int target,int start_idx){if(sum > target)return;if(sum target){a…

关于Wordpress的操作问题1:如何点击菜单跳转新窗口

1.如果打开&#xff0c;外观-菜单-菜单结构内&#xff0c;没有打开新窗口属性&#xff0c;如图&#xff1a; 2.在页面的最上部&#xff0c;点开【显示选项】&#xff0c;没有这一步&#xff0c;不会出现新跳转窗口属性 3.回到菜单结构部分&#xff0c;就出现了

2024年工程师职称水平能力测试考试难吗?

大家现在都知道&#xff0c;现在湖北中级和高级职称评审&#xff0c;都必须要先报名一个水平能力测试考试&#xff0c;水测考过了之后才能参加评审&#xff0c;那么很多人都不知道水测到底难不难&#xff1f;能不能考过&#xff1f;水测主要是考什么呢&#xff1f; 职称水平能力…

20240415金融读报:市场信贷不能过于宽松声音碳领域新增文件

1、市场普遍认为&#xff0c;在经济转型背景下&#xff0c;当前的社会融资规模和信贷增长有助于经济高质量发展&#xff0c;过于宽松并不利于经济发展。&#xff08;已经有这个声音了&#xff0c;是不是说明我们已经脱离了U型曲线的最低点&#xff0c;在或快接近其后半段的1/2处…

Rust 语言 GUI 用户界面框架汇总(持续更新)

拜登&#xff1a;“一切非 Rust 项目均为非法”&#x1f60e; 什么是 GUI 图形用户界面&#xff08;Graphical User Interface&#xff0c;简称 GUI&#xff0c;又称图形用户接口&#xff09;是指采用图形方式显示的计算机操作用户界面。 现在的应用开发&#xff0c;是既要功…

【python】flask操作数据库工具SQLAlchemy,详细用法和应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【Linux系统编程】第三弹---基本指令(一)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、touch指令 2、mkdir指令 3、ls 指令 4、pwd命令 3、cd 指令 6、rmdir指令 && rm 指令 7、man指令 7、cp指令 …