布吉做网站的公司,北京海淀区官网,南京最新发布,教学工作总结因为最近在做一些关于提高公司内部使用的聊天机器人的回答准确率#xff0c;并且最近微软官方也是开源了一下graphrag的源码#xff0c;所以想聊一聊这个知识图谱结合rag。 rag在利用私有数据增强大模型回答的领域是一种比较典型的技术#xff0c;也就是我们提出问题的时候并且最近微软官方也是开源了一下graphrag的源码所以想聊一聊这个知识图谱结合rag。 rag在利用私有数据增强大模型回答的领域是一种比较典型的技术也就是我们提出问题的时候rag会根据我们的问题去知识库中检索一些比较相关的文档或者语句将这些文档和我们的问题一起拼接到提示词模版中得到一个完整的提问大模型的问题这样大模型就可以根据我们提供的知识以及我们的问题来对特定领域的问题进行回答了。 首先我们了解一下传统的rag技术传统的rag技术就是通过匹配文档语句的相关性或者相似度来得到一些比较相关的文档。可以分为两个角色分别是用户和文档管理者。大致流程 文档管理者 ①上传导入文件解析文件内容 ②对文本内容进行切块每一块可以成为一个chunk。 ③得到每个chunk利用嵌入式模型得到每个chunk的向量表示并将这个向量存储到向量数据库中常见的向量数据库比如faiss数据库将其作为一个本地知识库。 用户 ①提出问题 ②对问题进行向量化 ③利用得到的向量去知识库中匹配得到相关性分数比较大的一些语句块即chunk这里就会涉及到一些检索技术了 ④得到chunk将其和问题拼接到提示词模版中就可以得到一个完整的对大模型的问题。 ⑤大模型回答问题得到答案 由此我们可以看的出来传统的rag是一种局部检索的技术也就是我们提问的问题会跟每个语句块进行匹配得到相关性分数只能提问一些局部的问题以及得到一种比较局部的答案当我们要问某个文档的全局性的问题的时候他就不会出现很好的效果。 这时候就需要知识图谱了知识图谱是一种类似于图结构其中有很多的实体也就是结点也有很多的关系也就是边一个文档可以理解为一个图结构各个文档之间没有交集也就是对应的图结构不会有关系。 这样我们在上传文档的时候切分为了很多的块即chunk我们会将每个块交给大模型让其提取其中的实体和关系然后存储起来实体和关系分别存储到各自的集合中最终所有的chunk提取完以后一次性的将所有的结点和关系存储到一个图数据库中然后我们就可以在数据库中得到这个文档的一个知识图谱。这样当用户提问的时候就可以提供更丰富的上下文或者关系提供总结能力和回答的准确性。