AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


RAG与本地知识库,向量数据库,以及知识图谱的联系与区别
发布日期:2024-11-29 11:07:53 浏览次数: 1607 来源:AI探索时代


 RAG的本质是高效检索,而知识库,向量数据库和知识图谱只是组织数据的一种形式



这两天在之前的一篇关于RAG检索增强的文章中有一个评论,问RAG和知识图谱的区别;这时才发现,原来很多人对RAG技术还没有一个本质的认识,以及与其相关的本地知识库,向量数据库等。


所以,今天就来介绍一下上面的这些概念,以及其联系与区别。







RAG——检索增强生成


前面写过好几篇关于RAG的文章,但可能到现在很多人还不明白什么是RAG——检索增强生成。


先说RAG技术产生的背景,RAG技术是基于大模型文本生成而产生的一种技术;目的是解决大模型的缺陷问题,因此就有了RAG技术来帮助大模型,简单来说RAG就相当于给大模型配备了一个资料库,遇到不懂的问题不要胡扯,先去查查资料。


大模型主要缺陷:


知识更新不及时:大模型的知识仅限于训练数据的截止时间,无法获取之后的知识

大模型幻觉问题:大模型一本正经的胡说八道,

大模型知识不足:大模型的知识有限,很多垂直领域的知识它都不知道


RAG技术的运作流程是什么样的呢?


如上图所示,完整呈现了RAG的运作流程;RAG技术主要分为三个部分:


1. 创建资料库

2. 查资料

3. 带着资料问问题


举个生活中的例子,你是一个学生,有一天遇到一个你不懂的问题;然后,你爸妈就让你去问邻居家上大学的哥哥姐姐;如果是一些常识性的问题,那么他们可以直接告诉你结果。


但你这个问题比较特殊,涉及到具体的专业知识,比如说化学,物理等;这时上大学的哥哥姐姐可能也不知道该怎么回答你的问题,但以他多年的学习经验,他觉得这个问题他可以解决,但需要先看一下你的课本或资料。


这个步骤就是RAG中的第三步,你就是用户,大模型就是邻家的哥哥姐姐;而你比较聪明,在来的时候就怕哥哥姐姐需要看你的课本,你随身就把课本和资料给带着了;这个就是第二步。


然后,邻家的哥哥姐姐看了一会你的课本,然后告诉你这个问题应该怎么巴拉巴拉的给你讲,然后你的问题就解决了。


现在回到RAG的问题,为什么需要这三步?


因为大模型上面的缺陷,所以导致大模型能力并不是很强,因此有些东西需要查资料才能知道;但怎么才给大模型建一个资料库呢?


这就是第一步,比如需要从不同的文档加载数据,如word,pdf,txt,音频,视频等;然后需要把这些文档中有关联的数据放到一块,这个就叫做嵌入(embedding),最后把这些数据存储到一个地方,比如向量数据库。


第二步就是检索,有了这些资料之后,怎么才能根据不同的问题,从中找到相关联的资料;比如,你不可能因为一个历史问题就去翻阅整个永乐大典;所以这就需要一种检索技术,比如目录/索引。


接着是第三步,你带着第二步检索到的数据给到大模型,然后大模型就可以根据这些数据来回答你的问题;这时你可能会说,既然有了这些资料我自己看不就行了,还要大模型干什么;那如果你是公司客服,你会为每个用户都新介绍一下你们公司的产品和企业文化吗? 



而这就是整个RAG技术的实现流程,每个环节又涉及到不同的技术;比如第一步创建资料库,需要文档加载技术,分词技术,嵌入技术等;第二步需要向量化技术,准确高效的检索技术等;第三步需要提示词技术,大模型调用技术等,因为第二步查到的资料需要放到提示词中让大模型自己去“看”。


所以,从这里也可以看出,严格来说RAG技术和大模型没太大直接关系(这里的没关系是指进行业务处理的大模型,而文档嵌入本质上使用的也是嵌入大模型);大模型不管你使用的是什么资料库,也不关心你查到了些资料,大模型关心的只是你最后在提示词中携带的资料。



大模型与本地知识,向量数据和知识图谱


那么,RAG和本地知识库,向量数据库,还有知识图谱有什么关系呢?


什么是本地知识库?


本地知识库说白了就是资料库的一种,比如说你们公司的技术档案,销售记录,公司的规章制度等都属于本地知识库的范围;本地知识库的作用是把一个组织内部的资料梳理出来方便大家使用。


所以,本地知识库的本质是资料库;而这个资料库可以有多种不同的组织形式,比如以文档,书籍,或者网页,视频,甚至是会议记录等形式存在,也可能是多种形式的混合。


而向量数据库是一种存储数据的方式,只不过由于大模型的出现,导致基于以前的字符存储变成了基于语义的向量存储;向量数据库从功能上来说和传统的数据库没有本质区别,不论是mysql,还是redis;只不过传统的数据库是基于字符匹配,而向量数据库基于语义匹配(本质上一种数学模型,如欧式距离和余弦函数)。


向量数据库既然是数据库,那么它就具备数据库的特性,存储数据和查询数据;它是数据存储的载体,就类似于工作中的文件夹。


而知识图谱又是什么? 


所谓的知识图谱是由谷歌推出的一种搜索引擎技术,面对互联网中日益增长的数据,怎么表示这些数据,以及这些数据之间的关系成为了一个难题;因此,谷歌就推出了知识图谱技术,用这个方式去记录这些数据以及其关联关系。说白了知识图谱就是一种组织数据的方式,比如我们日常工作和生活中,会按照日期,地点,任务名称等来存放不同的文件,资料。



所以,本地知识库,向量数据库,还有知识图谱有什么关系?


本地知识库即可以使用简单的日期,部门,工作任务来组织资料,也可以使用知识图谱这种更加专业的方式来搭建本地知识库;而搭建的本地知识库存储在什么地方?


即可以存储在传统的关系性数据库中,也可以存储在文本文件中,当然也可以存储在向量数据库中。


这就是其三者之间的关系。


那么它们和RAG又有什么关系?


前面说了,RAG是为了解决大模型本身存在的几个缺陷;大模型需要的是你在提示词中拼接的最终资料,而不会关心你这个资料从哪里来。而RAG就是从外部检索资料然后拼接到大模型提示词中的一种方法论。


RAG最终的目的就是准确,高效的检索到相关的资料;而不管是去知识图谱中检索,还是去本地知识库中检索,还是去向量数据库中检索,亦或者是从传统的关系型数据库中检索,或者直接去网络上搜索。


比如说,你想让大模型告诉你怎么做西红柿炒蛋,你需要的是使用RAG技术检索到做番茄炒蛋的内容,而不是告诉大模型哪里大米产量高,哪里发生了自然灾害,原子弹怎么造。


而至于你这个资料是从哪家餐厅的菜谱中找到的,还是从网络上搜索到的,或者还是路边听说的都可以。


问题,传统数据库可以用来做RAG吗?


答案是可以,比如说价格表这种精确的不需要语义检索的数据;使用传统数据库效果会更好。一般企业场景中是把语义检索和字符匹配同时使用,需要语义理解的就使用语义检索库,比如向量数据库;精确的数据就放到传统数据库中。


总结


RAG是一种从外部检索数据的方式;本地知识库相当于一个资料库;而知识图谱是组织数据的一种更加科学的方式;向量数据库是用来存储向量化数据的一个载体。


所以,本地知识库,向量数据库和知识图谱和RAG没什么直接关系,如果说有关系就是它们三者可以作为RAG技术的一种具体实现;但RAG也可以使用其它的实现方式。


RAG,本地知识库,向量数据库,知识图谱是四个完全独立的技术,它们之间没有任何直接关系,但又可以互相合作以达到某种效果。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询