1.RAG是什么
预言:RAG
顾名思义为检索增强生成
,它的本质是外部数据源
和大模型GPT
的结合去完成用户特殊的请求。
1.问题: 解决了在特殊场景下商户对于特殊请求的需求响应问题,比如您是一家销售智能手机和笔记本电脑等设备的电子公司的高管。您想为您的公司创建一个客户支持聊天机器人,以回答与产品规格、故障排除、保修信息等相关的用户查询**(特殊问题)**。
但是这种需求需要特殊的外部数据源,因为如果直接用GPT等大模型,可能就会出现以下的问题:
2.问题一:幻觉问题
前提: 如果我们直接使用GPT等大模型应用进行请求以获取我们特殊的结果,GPT往往将会产生自信的错误反应,这类错误的反应对于用户的需求来说是十分糟糕的,因为它无法给出准确答案。
所以: 我们需要外部的数据源进行训练以便于得到准确的答案。
3.问题二:缺乏具体信息
前提: 语言模型
仅限于根据其训练数据
提供通用答案。如果用户要询问特定于您销售的软件的问题,或者如果他们对如何执行深入的故障排除有疑问,传统的 LLM 可能无法提供准确的答案。
首先: 我们的语言模型获取通用答案
的方式往往是通过
那些重要的数据
,这也就反映了为什么GPT无法给出准确答案的原因
所以: 我们需要利用这些特殊的数据进行训练,以获取最新的响应能力。
4.问题三:一般性回应
语言模型通常提供不是针对特定上下文量身定制的通用响应。这可能是客户支持方案中的一个主要缺点,因为通常需要单个用户首选项
来促进个性化的客户体验
。
RAG 通过为您提供一种将 LLM 的一般知识库与访问特定信息(例如产品数据库和用户手册中的数据)集成的方法,有效地弥合了这些差距。这种方法允许根据组织的需求量身定制的高度准确和可靠的响应。
5.RAG的工作步骤
1.数据收集
您必须首先收集应用程序所需的所有数据。**比如:**对于电子公司的客户支持聊天机器人,这可以包括用户手册
、产品数据库
和常见问题解答列表
。
2.数据分块
含义: 数据分块的意思就是将数据分为更小,更易于管理的部分的过程。
举个例子: 比如我们有一个长达100页的用户手册,我们可以将其分为不同的部分,每个部分都可能回答不同的用户的不同的问题、
目的: 将每个特定的主题集中在某一个数据块上。所以当用户从源数据中检索一条信息的时候,就避免了从整个文档中进行遍历,包含一些不相干的信息。
这也提高了效率,因为系统可以快速获取最相关的信息,而不是处理整个文档。
还一个思路: 个人认为数据分块的本身目的是保留每个主题的独立性,当块越多,不同主题的独立性就越强,所以我们可以利用加权平均的方式保留不同主题的特性,从而给到用户更为精准的回答。
3.文档嵌入
现在,源数据已分解为更小的部分,需要将其转换为向量表示
。这涉及将文本数据
转换为嵌入
,嵌入是捕获文本背后语义含义
的数字表示形式
。
简单来说,文档嵌入允许系统理解用户查询,并根据文本的含义
将其与源数据集中的相关信息
进行匹配
,而不是简单的逐字比较。此方法可确保响应相关且与用户的查询保持一致。
匹配算法:
协同过滤推荐算法
4.使用LLM生成响应
当RAG检索到我们输入的文本块
,并将用户查询
反馈到语言模型
当中。该算法就会根据这些信息
通过聊天界面生成用户问题的连贯响应
6.RAG的实际应用
文本摘要:
RAG 可以使用来自外部来源的内容
来生成准确的摘要
,从而节省大量时间。例如,经理和高级管理人员是忙碌的人,他们没有时间筛选大量报告。
借助 RAG 驱动的应用程序,他们可以快速从文本数据中
获取最关键的发现
,并更有效地做出决策,而不必阅读冗长的文档。
个性化推荐:
RAG 系统可用于分析客户数据
,例如过去的购买和评论,以生成产品推荐。这将增加用户的整体体验,并最终为组织带来更多收入。
例如:,RAG 应用程序可用于根据用户的观看历史和评级在流媒体平台上推荐更好的电影。它们还可用于分析电子商务平台上的书面评论。
由于 LLM 擅长理解文本数据背后的语义,因此 RAG 系统可以为用户提供比传统推荐系统更细致入微的个性化建议。
7.数据质量
RAG 系统的有效性很大程度上取决于
输入其中的数据的质量
。如果应用程序访问的源内容较差,则生成的响应将不准确。
组织必须投资于勤奋的内容策划和微调过程。有必要细化数据源以提高其质量。对于商业应用,在RAG系统中使用数据集之前,让主题专家审查并填补任何信息空白可能是有益的。