知识图谱是什么?和AI大模型有什么关系?

78 阅读4分钟

今天我们探讨两个问题:

第一,知识图谱是什么?

第二,知识图谱和大模型的关系又是什么?

图片

一、知识图谱是什么?

我们先来看第一个问题: 知识图谱是什么?

图片

可以看上面这个图,这个图形表达了如下信息:

张三和李四是朋友。

张三在苹果公司工作。

李四在香蕉公司工作。

苹果公司投资了香蕉公司。

这就是一个知识图谱的形象化表示。

图片

所以我们总结一下,什么是知识图谱:

1.是一个存储信息的方法;

2.描述的是事实;

3.核心表达是实体和关系;

4.可以有多种实体,多种关系;

图片

二、知识图谱和大模型是什么关系?

我们再来看第二个问题: 知识图谱和大模型有什么关系?

其实知识图谱在2023年之前就存在,但是在2023年大模型火了之后,再次进入大众的视野,这是为什么呢?

原因是随着大家对大模型的使用,逐渐发现大模型存在一个较大的问题——大模型幻觉,即可以理解为有些时候大模型会胡说八道,编造事实

为了减少大模型的幻觉,有很多的方法,常用的有以下5种方法/思路:

Prompt

给出准确清晰的提示词语句;

Few-shot,少样本提示。

图片

限制内容范围

RAG,检索增强生成。

后处理

事实检查生成答案;

人工检查生成答案。

提升数据质量

预训练的数据质量;

微调的数据质量。

模型能力提升

大模型微调。

图片

对于第二种,在RAG具体落地场景中,我们可以有不同的数据处理方式:

对于结构化的数据,比如我们Excel中的数据,用普通的关系型数据库存储即可,需要使用时直接拿来用也比较方便。

对于非结构化的数据,比如文本段落、文章、手册、FAQ这种,不太适合结构化存储,所以向量化之后存储在向量数据库中比较合适,后续使用向量检索技术也比较好用。

那我们今天说的知识图谱适合什么样的场景呢?

我们举例来说明,传统的RAG流程如下图,用户提出一个prompt,先到知识库中检索相似度高的文档内容,然后和prompt一起传给大模型,再由大模型基于输入的内容生成答案。

图片

但是这种方法有限制,对于具体的问题解决效果比较好,相对宏观一些的问题可能效果不那么好。

例如下列2个问题:

问题1: A商品的价格是多少?

问题2: 去年技术团队的成果是什么?

对于问题1,传统RAG可能解决的比较好,如果知识库中有关于A商品价格的信息,大模型就能准确回答这个问题。

但是对于问题2,首先“技术团队”就是一个复杂问题技术团队可能下面有技术一部、技术二部.…,而其中技术一部下面有张三、李四…

如果要回答这个问题就需要先把属于技术团队的人都找出来,然后分别找到每个人的成果,再把成果汇总。

这个问题就很适合用知识图谱来解决,对于“技术团队”问题的解决,就是找寻不同实体间的关系,知识图谱记录的就是这种关系:

图片

如上图,我们把原始文档里的内容最后聚类成如图所示的结构关系,当遇到上述的问题时,就能高效解决。

所以,用知识图谱去解决大模型的幻觉问题,有如下优势:

直观: 在上面我们就提到过,知识图谱表示的就是实体与实体之间的关系,理解起来比较直观,所以对于降低大模型的幻觉是有帮助的。

与向量文本互补: 我们在把知识变成向量存储到向量数据库中的时候,数据本身是不会消失,但是数据与数据之间的关系可能就没有了,或者被弱化了。

这个时候,我们再用知识图谱的方式,把这些知识/实体之间的关系表达出来,这样就可以和向量数据库进行一个结合。

图片

但是,我们在实际落地RAG的过程中,并不是只能选择一种方式处理数据。

比如我们可以同时使用关系型数据库、向量数据库、知识图谱,每次用户提问之后,分别去3个地方多路召回,然后rerank重新排序,最后得到综合结果,输出给大模型。

AI大模型系统化学习入口