RAG、本地知识库、向量数据库与知识图谱的区别与联系
详细解析了 RAG(检索增强生成)技术与本地知识库、向量数据库及知识图谱之间的联系与区别。RAG 旨在解决大模型知识更新滞后、幻觉及知识不足等问题,通过检索外部资料增强生成效果。本地知识库是内部资料的集合,向量数据库基于语义存储数据,知识图谱则侧重数据间的关联关系。三者均可作为 RAG 的数据源或存储载体,但技术本质不同。文章还探讨了传统数据库在 RAG 中的应用,并提供了大模型学习的系统化路径建议。

详细解析了 RAG(检索增强生成)技术与本地知识库、向量数据库及知识图谱之间的联系与区别。RAG 旨在解决大模型知识更新滞后、幻觉及知识不足等问题,通过检索外部资料增强生成效果。本地知识库是内部资料的集合,向量数据库基于语义存储数据,知识图谱则侧重数据间的关联关系。三者均可作为 RAG 的数据源或存储载体,但技术本质不同。文章还探讨了传统数据库在 RAG 中的应用,并提供了大模型学习的系统化路径建议。

RAG 的本质是高效检索,而知识库、向量数据库和知识图谱只是组织数据的一种形式。很多人对 RAG 技术还没有一个本质的认识,以及与其相关的本地知识库、向量数据库等概念。
本文将介绍这些概念,以及它们的联系与区别。
RAG(Retrieval-Augmented Generation)技术是基于大模型文本生成而产生的一种技术,目的是解决大模型的缺陷问题。简单来说,RAG 相当于给大模型配备了一个资料库,遇到不懂的问题不要胡扯,先去查查资料。
大模型主要缺陷包括:
完整呈现了 RAG 的运作流程,主要分为三个部分:
你是一个学生,有一天遇到一个你不懂的问题;然后,你爸妈就让你去问邻居家上大学的哥哥姐姐。如果是一些常识性的问题,那么他们可以直接告诉你结果。
但你这个问题比较特殊,涉及到具体的专业知识,比如说化学、物理等;这时上大学的哥哥姐姐可能也不知道该怎么回答你的问题,但以他多年的学习经验,他觉得这个问题他可以解决,但需要先看一下你的课本或资料。
这个步骤就是 RAG 中的第三步,你就是用户,大模型就是邻家的哥哥姐姐;而你比较聪明,在来的时候就怕哥哥姐姐需要看你的课本,你随身就把课本和资料给带着了;这个就是第二步。
然后,邻家的哥哥姐姐看了一会你的课本,然后告诉你这个问题应该怎么给你讲,然后你的问题就解决了。
因为大模型上面的缺陷,所以导致大模型能力并不是很强,因此有些东西需要查资料才能知道。但怎么才给大模型建一个资料库呢?
这就是第一步,比如需要从不同的文档加载数据,如 Word、PDF、TXT、音频、视频等;然后需要把这些文档中有关联的数据放到一块,这个就叫做嵌入(Embedding),最后把这些数据存储到一个地方,比如向量数据库。
第二步就是检索,有了这些资料之后,怎么才能根据不同的问题,从中找到相关联的资料。比如,你不可能因为一个历史问题就去翻阅整个永乐大典;所以这就需要一种检索技术,比如目录/索引。
接着是第三步,你带着第二步检索到的数据给到大模型,然后大模型就可以根据这些数据来回答你的问题。这时你可能会说,既然有了这些资料你自己看不就行了,还要大模型干什么;那如果你是公司客服,你会为每个用户都重新介绍一下你们公司的产品和企业文化吗?
而这就是整个 RAG 技术的实现流程,每个环节又涉及到不同的技术。比如第一步创建资料库,需要文档加载技术、分词技术、嵌入技术等;第二步需要向量化技术、准确高效的检索技术等;第三步需要提示词技术、大模型调用技术等,因为第二步查到的资料需要放到提示词中让大模型自己去'看'。
所以,从这里也可以看出,严格来说 RAG 技术和大模型没太大直接关系(这里的没关系是指进行业务处理的大模型,而文档嵌入本质上使用的也是嵌入大模型)。大模型不管你使用的是什么资料库,也不关心你查到了哪些资料,大模型关心的只是你最后在提示词中携带的资料。
本地知识库说白了就是资料库的一种,比如说你们公司的技术档案、销售记录、公司的规章制度等都属于本地知识库的范围。本地知识库的作用是把一个组织内部的资料梳理出来方便大家使用。
所以,本地知识库的本质是资料库;而这个资料库可以有多种不同的组织形式,比如以文档、书籍、或者网页、视频、甚至是会议记录等形式存在,也可能是多种形式的混合。
向量数据库是一种存储数据的方式,只不过由于大模型的出现,导致基于以前的字符存储变成了基于语义的向量存储。向量数据库从功能上来说和传统的数据库没有本质区别,不论是 MySQL,还是 Redis;只不过传统的数据库是基于字符匹配,而向量数据库基于语义匹配(本质上一种数学模型,如欧式距离和余弦函数)。
向量数据库既然是数据库,那么它就具备数据库的特性,存储数据和查询数据;它是数据存储的载体,就类似于工作中的文件夹。
所谓的知识图谱是由谷歌推出的一种搜索引擎技术,面对互联网中日益增长的数据,怎么表示这些数据,以及这些数据之间的关系成为了一个难题。因此,谷歌就推出了知识图谱技术,用这个方式去记录这些数据及其关联关系。
说白了知识图谱就是一种组织数据的方式,比如我们日常工作和生活中,会按照日期、地点、任务名称等来存放不同的文件、资料。
本地知识库即可以使用简单的日期、部门、工作任务来组织资料,也可以使用知识图谱这种更加专业的方式来搭建本地知识库。而搭建的本地知识库存储在什么地方?
即可以存储在传统的关系性数据库中,也可以存储在文本文件中,当然也可以存储在向量数据库中。
这就是其三者之间的关系。
前面说了,RAG 是为了解决大模型本身存在的几个缺陷。大模型需要的是你在提示词中拼接的最终资料,而不会关心你这个资料从哪里来。而 RAG 就是从外部检索资料然后拼接到大模型提示词中的一种方法论。
RAG 最终的目的就是准确、高效的检索到相关的资料。而不管是去知识图谱中检索,还是去本地知识库中检索,还是去向量数据库中检索,亦或者是从传统的关系型数据库中检索,或者直接去网络上搜索。
比如说,你想让大模型告诉你怎么做西红柿炒蛋,你需要的是使用 RAG 技术检索到做番茄炒蛋的内容,而不是告诉大模型哪里大米产量高,哪里发生了自然灾害,原子弹怎么造。
而至于你这个资料是从哪家餐厅的菜谱中找到的,还是从网络上搜索到的,或者还是路边听说的都可以。
答案是可以,比如说价格表这种精确的不需要语义检索的数据;使用传统数据库效果会更好。一般企业场景中是把语义检索和字符匹配同时使用,需要语义理解的就使用语义检索库,比如向量数据库;精确的数据就放到传统数据库中。
RAG 是一种从外部检索数据的方式;本地知识库相当于一个资料库;而知识图谱是组织数据的一种更加科学的方式;向量数据库是用来存储向量化数据的一个载体。
所以,本地知识库、向量数据库和知识图谱和 RAG 没什么直接关系,如果说有关系就是它们三者可以作为 RAG 技术的一种具体实现;但 RAG 也可以使用其它的实现方式。
RAG、本地知识库、向量数据库、知识图谱是四个完全独立的技术,它们之间没有任何直接关系,但又可以互相合作以达到某种效果。
对于希望深入理解大模型技术的开发者,以下是一个系统化的学习路径参考:
通过上述路径的学习,可以更好地掌握 RAG 及相关技术的底层逻辑与应用实践。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online