认识Retrieval Augmented Generation(RAG)

什么是RAG?

Retrieval-Augmented Generation (RAG) 是一种结合信息检索和生成式AI技术的框架。它通过从外部数据源检索信息,增强语言模型(如GPT-3)的生成能力,从而提供更加准确和相关的回答。

RAG的组成部分

信息检索模块(Retriever)

  • 功能:从预先构建的知识库或文档库中检索与用户查询相关的信息。
  • 技术:通常使用搜索引擎技术(如BM25、TF-IDF)或者基于深度学习的语义搜索模型(如BERT、DPR)。

生成式AI模块(Generator)

  • 功能:根据检索到的信息和用户的查询生成自然语言的回答。
  • 技术:使用生成式语言模型(如GPT-3、T5)来生成文本。

融合模块(Fusion)

  • 功能:将检索到的信息与用户查询结合,并生成最终的回答。可以通过多种方式进行,如简单拼接、加权融合等。
  • 技术:使用规则或机器学习方法将检索结果和生成结果进行整合。

为什么要使用RAG来改进LLM?举个例子

为了更好地展示什么是RAG以及该技术是如何工作的,让我们考虑一下当今许多企业面临的场景。
想象一下,你是一家销售智能手机和笔记本电脑等设备的电子公司的高管。您希望为您的公司创建一个客户支持聊天机器人,以回答与产品规格、故障排除、保修信息等相关的用户查询。
您希望使用LLM(如GPT-3或GPT-4)的功能为聊天机器人供电。
但是,大型语言模型有以下局限性,导致客户体验效率低下:

缺乏具体信息

语言模型仅限于基于其训练数据提供通用答案。如果用户要询问特定于您销售的软件的问题,或者他们对如何执行深入故障排除有疑问,传统的LLM可能无法提供准确的答案。
这是因为他们没有接受过特定于您组织的数据方面的培训。此外,这些模型的训练数据有一个截止日期,限制了它们提供最新响应的能力。

幻觉

LLM会“产生幻觉”,这意味着它们往往会根据想象中的事实自信地产生错误的反应。如果这些算法对用户的查询没有准确的答案,也会提供偏离主题的响应,从而导致糟糕的客户体验。

一般响应

语言模型通常提供不适合特定上下文的通用响应。这可能是客户支持场景中的一个主要缺点,因为通常需要个人用户偏好来促进个性化的客户体验。

RAG通过为您提供一种将LLM的一般知识库与访问特定信息(如产品数据库和用户手册中的数据)的能力相集成的方法,有效地弥补了这些差距。这种方法可以根据您组织的需求提供高度准确和可靠的响应。

RAG是如何工作的?

image.png

step1:数据收集(Data collection)

您必须首先收集应用程序所需的所有数据。如果是电子公司的客户支持聊天机器人,它可以包括用户手册、产品数据库和常见问题解答列表。

step2:数据分块(Data chunking)

数据分块是将数据分解为更小、更易于管理的部分的过程。例如,如果您有一份长达100页的用户手册,您可能会将其分解为不同的部分,每个部分都可能回答不同的客户问题。
这样,每个数据块都集中在一个特定的主题上。当从源数据集中检索一条信息时,它更有可能直接适用于用户的查询,因为我们避免包含整个文档中的不相关信息。
这也提高了效率,因为该系统可以快速获得最相关的信息,而不是处理整个文档。

step3:文本嵌入(Document embeddings)

既然源数据已经分解成更小的部分,就需要将其转换为向量表示。这涉及到将文本数据转换为嵌入,嵌入是捕捉文本背后语义的数字表示。
简而言之,文档嵌入允许系统理解用户查询,并根据文本的含义将其与源数据集中的相关信息进行匹配,而不是简单的逐字比较。此方法确保响应是相关的,并与用户的查询保持一致。
如果您想了解更多关于如何将文本数据转换为向量表示的信息,我们建议您探索我们关于使用OpenAI API进行文本嵌入的教程。

step4:处理用户查询(Handling user queries)

当用户查询进入系统时,还必须将其转换为嵌入或矢量表示。文档和查询嵌入必须使用相同的模型,以确保两者之间的一致性。
一旦将查询转换为嵌入,系统就会将查询嵌入与文档嵌入进行比较。它使用余弦相似性和欧几里得距离等度量来识别和检索嵌入与查询嵌入最相似的块。
这些块被认为是与用户的查询最相关的。

step5:使用LLM生成响应(Generating responses with an LLM)

检索到的文本块与初始用户查询一起被馈送到语言模型中。该算法将使用这些信息通过聊天界面生成对用户问题的连贯响应。

RAG的实际应用

文本摘要:

RAG可以利用外部数据源生成精确的摘要,节省大量时间。例如,经理和高管可以快速获取重要信息,而无需通读冗长的报告。

个性化推荐:

RAG系统可以分析客户数据,如过去的购买记录和评论,生成产品推荐,提高用户体验。例如,在流媒体平台上,根据用户的观看历史推荐电影。

商业智能:

企业通过监控竞争对手行为和分析市场趋势来做出商业决策。RAG可以高效地从商业报告、财务报表和市场研究文档中提取有意义的见解,提高市场研究过程的效率。

实现RAG系统的挑战

集成复杂性:

将检索系统与语言模型集成可能非常复杂,尤其是当外部数据源格式各异时。解决方案是为不同数据源设计独立模块,确保数据一致性。

可扩展性:

随着数据量的增加,维护RAG系统的效率变得更加困难。解决方案包括分布计算负载和投资强大的硬件基础设施,以及使用向量数据库以处理嵌入。

数据质量:

RAG系统的效果高度依赖于输入数据的质量。建议企业进行严格的数据源筛选和优化,必要时聘请专家审核数据。

总结

RAG 是利用大型语言模型并结合专门数据库的最佳技术之一。虽然存在输入数据质量依赖等限制,但通过谨慎的数据管理和专家知识的融合,可以确保系统的可靠性和有效性。

:::info
参考:
https://www.datacamp.com/blog/what-is-retrieval-augmented-generation-rag
ChatGPT-4o
:::

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

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

相关文章

解决问题:已通过系统pip安装了相应模块,但是PyCharm中却提示 No module named xxxx

原因:PyCharm会每创建一个项目都会创建一个独立的虚拟python环境venv,而项目会默认使用这个venv环境运行,而这个venv环境是和系统中的python环境独立的,相当系统中安装过的包,这个虚拟环境中没有,而虚拟环境…

【杂记-浅谈OSI参考模型之应用层】

OSI参考模型之应用层 一、应用层概述二、应用层功能三、应用层协议 一、应用层概述 应用层是计算机网络体系结构中的最高层,它直接为用户和应用程序提供服务。在OSI模型中,应用层对应于第7层,而在TCP/IP模型中,它包括了OSI模型中…

用腾讯云语音合成(TTS)批量生成英语绘本的朗读音频

孩子进行英语启蒙,需要看很多英语绘本,而且要听配套的音频来练听力。但有些英语绘本是没有对应音频的,下面简单几步,就可以将任意英语绘本制作出对应的英语朗读音频。 先到电子书资源网站搜索这个绘本名称,如果有电子…

【java-电子签章功能实现】

java-电子签章方案 本文主要描述如何对已有的word文档进行字段填充后,进行电子签章(CA证书)生成pdf文件 废话不多数,上代码(涉及的工具类较多,有不全的评论即可,看到会及时补充) …

三.iOS核心动画 - 关于图层几何(frame,bounds,transform,position)

引言 关于UIView的布局有一个经常被问到的问题,frame和bounds有什么区别,同样CALayer也有frame和bounds这两个属性,还有一个与UIView的center对应的position属性,本篇博客我们就来详细的探讨一下图层中的frame和bounds到底有什么…

Python酷库之旅-第三方库openpyxl(07)

目录 一、 openpyxl库的由来 1、背景 2、起源 3、发展 4、特点 4-1、支持.xlsx格式 4-2、读写Excel文件 4-3、操作单元格 4-4、创建和修改工作表 4-5、样式设置 4-6、图表和公式 4-7、支持数字和日期格式 二、openpyxl库的优缺点 1、优点 1-1、支持现代Excel格式…

十大经典排序算法——选择排序和冒泡排序

一、选择排序 1.基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据全部排完。 2.直接选择排序 (1) 在元素集合arr[i] — arr[n - 1]中选择关键妈的最大(小…

高考十字路口:24年考生如何权衡专业与学校的抉择?

文章目录 每日一句正能量前言专业解析理工科专业商科专业人文社科专业艺术与设计专业个人经验与思考过程结论 名校效应分析名校声誉与品牌效应资源获取学术氛围就业优势个人发展结论 好专业和好学校的权衡个人职业目标行业需求教育质量资源和机会学术氛围就业优势经济和地理位置…

嵌入式学习——数据结构(单向无头链表)——day46

1. 数据结构 1.1 定义 数据结构是指计算机中数据的组织、管理和存储方式。它不仅包括数据元素的存储方式,还包括数据元素之间的关系,以及对数据进行操作的方法和算法。数据结构的选择和设计直接影响算法的效率和程序的性能,是计算机科学与编…

uniapp 低功耗蓝牙BLE分包

ble.js // 分包写入蓝牙async sendWriteBLECharacteristicValue(deviceId,serviceId,writeCharacteristicId,readCharacteristicId,buffer,success, // 成功回调failure, // 失败回调) {const offset 500; // 偏移量let pos 0; // 位置let bytes buffer.byteLength; // 总字…

.env 文件详解(vite)

.env.development 开发环境.env.production 正式环境.env.test 测试环境 .env文件内容: 开发环境 # 当前环境,VITE_ 开头 VITE_NODE_ENV development # 请求基地址 VITE_BASE_URL /api # 本地代理目标地址,在proxy里面target里面用 VITE…

说一说三大运营商的流量类型,看完就知道该怎么选运营商了!

说一说三大运营商的流量类型,看完就知道该怎么选运营商了?目前三大运营商的流量类型大致分为通用流量和定向流量,比如: 中国电信:通用流量定向流量 电信推出的套餐通常由通用流量定向流量所组成,通用流量…

【Python时序预测系列】基于LSTM实现单变量时序序列多步预测(案例+源码)

这是我的第307篇原创文章。 一、引言 单站点单变量输入单变量输出多步预测问题----基于LSTM实现。 单输入就是输入1个特征变量 单输出就是预测出1个标签的结果 多步就是利用过去N天预测未来M天的结果 二、实现过程 2.1 读取数据集 # 读取数据集 data pd.read_csv(data.c…

HTML5文旅文化旅游网站模板源码

文章目录 1.设计来源文旅宣传1.1 登录界面演示1.2 注册界面演示1.3 首页界面演示1.4 文旅之行界面演示1.5 文旅之行文章内容界面演示1.6 关于我们界面演示1.7 文旅博客界面演示1.8 文旅博客文章内容界面演示1.9 联系我们界面演示 2.效果和源码2.1 动态效果2.2 源代码2.3 源码目…

Spring Boot框架原理及应用详解(三)

本系列文章简介: 在当今的软件开发世界中,快速迭代、高效开发以及易于维护成为了开发者们不断追求的目标。Spring Boot作为Spring框架的一个子项目,自其诞生以来就凭借其“约定大于配置”的理念和自动配置的特性,迅速在Java开发社区中获得了广泛的关注和认可。它简化了Spri…

QT 中ListView和ListWidget有什么区别

ListView和ListWidget在Qt框架中都是用于显示列表数据的控件,但它们在使用方法和特性上存在一些明显的差异。以下是关于它们用法不一样的地方的详细分析: 数据管理方式: ListView:使用QAbstractItemModel数据模型来管理和显示列表…

electron录制应用-自由画板功能

功能 录屏过程中的涂画功能允许用户在录制屏幕操作的同时,实时添加注释和高亮显示,以增强信息的传达和观众的理解。 效果 electron录制-添加画布 代码实现 1、利用HTML5的Canvas元素实现一个自由涂画的功能,允许用户在网页上进行手绘创作。…

笔记本电脑屏幕模糊?6招恢复屏幕清晰!

在数字化时代的浪潮中,笔记本电脑已成为我们生活、学习和工作中不可或缺的一部分。然而,当那曾经清晰明亮的屏幕逐渐变得模糊不清时,无疑给我们的使用体验蒙上了一层阴影。屏幕模糊不仅影响视觉舒适度,更可能对我们的工作效率和眼…

【AI大模型】驱动的未来:穿戴设备如何革新血液、皮肤检测与营养健康管理

文章目录 1. 引言2. 现状与挑战3. AI大模型与穿戴设备概述4. 数据采集与预处理4.1 数据集成与增强4.2 数据清洗与异常检测 5. 模型架构与训练5.1 高级模型架构5.2 模型训练与调优 6. 个性化营养建议系统6.1 营养建议生成优化6.2 用户反馈与系统优化 7. 关键血液成分与健康状况评…

WIN Semis揭幕耐湿砷化镓pHEMT技术

​犹如为无线通信领域注入了一股清新的活力。这项技术不仅支持E频带,更在晶圆级上筑起了一道坚固的防潮屏障,满足了对严苛环境条件的bHAST挑战。今日,WIN半导体公司正式公布了0.1m pHEMT技术PP10-29的测试版,预示着通信领域的新篇…