认识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,一经查实,立即删除!

相关文章

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

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

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

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

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

【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 源码目…

笔记本电脑屏幕模糊?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的测试版,预示着通信领域的新篇…

ansible 任务块以及循环

任务块 可以通过block关键字,将多个任务组合到一起可以将整个block任务组,一起控制是否要执行 # 如果webservers组中的主机系统发行版是Rocky,则安装并启动nginx [rootpubserver ansible]# vim block1.yml --- - name: block tasks hosts…

ROS2从入门到精通4-4:局部控制插件开发案例(以PID算法为例)

目录 0 专栏介绍1 控制插件编写模板1.1 构造控制插件类1.2 注册并导出插件1.3 编译与使用插件 2 基于PID的路径跟踪原理3 控制插件开发案例(PID算法)常见问题 0 专栏介绍 本专栏旨在通过对ROS2的系统学习,掌握ROS2底层基本分布式原理,并具有机器人建模和…

Go 如何使用指针灵活操作内存

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

爬虫笔记14——爬取网页数据写入MongoDB数据库,以爱奇艺为例

下载MongoDB数据库 首先,需要下载MongoDB数据库,下载的话比较简单,直接去官网找到想要的版本下载即可,具体安装过程可以看这里。 pycharm下载pymongo库 pip install pymongo然后在在python程序中我们可以这样连接MongoDB数据库…

IPD推行成功的核心要素(十三)IPD产品开发流程让企业正确地做事情

一个公司能否成功,取决于它适应市场需求和竞争环境变化的速度。公司需要不断创新,以符合客户期望并保持相关性。这意味着需要更快速地推出新产品和改进产品。简化的产品开发流程能够支持快速开发周期,帮助公司领先于市场,用优秀的…

植物大战僵尸杂交版2.1版本终于来啦!游戏完全免费

在这个喧嚣的城市里,我找到了一片神奇的绿色世界——植物大战僵尸杂交版。它不仅是一款游戏,更像是一扇打开自然奥秘的窗户,让我重新认识了植物和自然的力量。 植物大战僵尸杂交版最新绿色版下载链接: https://pan.quark.cn/s/d6…

MySQL的综合运用

MySQL版的葵花宝典,欲练此功,挥刀自。。。呃,,,说错了,是先创建两个表,分别是location表和store_info表 示例表为location表和store_info表,如下图所示: 操作一&#xf…

【C++高阶】掌握AVL树:构建与维护平衡二叉搜索树的艺术

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:STL-> map与set 🌹🌹期待您的关注 🌹🌹 ❀AVL树 📒1. AVL树…