AI 文摘

微软开源GraphRAG,给传统RAG一记闷棍





作者: AIGC行业大模型训练营 来源: AIGC行业大模型训练营

2024年7月3日,微软开源了GraphRAG技术。

不管是基于向量数据库的RAG,还是基于知识图谱的RAG,或者是基于自然语言的RAG,在微软开源之前,大家犹如田忌赛马,现如今,画风急转。

GraphRAG(Graph Retrieval-Augmented Generation)是一种结合了图数据库和检索增强生成技术的先进方法,通过结合图数据库的强大表示能力和大语言模型的理解能力,它在多种应用场景中展现出了其独特的价值和潜力。

微软在RAG基础之上,利用文本中内容构建超大的知识图谱,旨在帮助LLM大语言模型可以更好地捕捉文本中的复杂联系和交互,最终来增强其生成、检索等能力。

与传统的 RAG 方法相比,GraphRAG 能够跨越海量信息,将零散的知识点串联起来,回答基于关键字和向量搜索机制难以解决的问题。无论是跨多个文档的全局性问题,还是涉及多个主题的复杂问题,GraphRAG 都能处理。

GraphRAG为企业在私有数据分析和复杂信息处理领域提供了新的工具。

GraphRAG的核心是利用大语言模型从文本文档集合中自动提取知识图谱,再通过图机器学习技术处理,让模型更好地理解和回答复杂问题。

传统的RAG方法主要依靠向量相似性搜索,把文档分割成片段并嵌入到向量空间中。这种方法在处理需要全局理解的海量数据查询时有局限,因为它过度依赖局部文本片段的检索,无法捕捉到整个数据集的全貌。

GraphRAG通过构建知识图谱,把文本中的实体、人物、地点、概念等进行结构化表示,从而更全面地理解和回答问题。

GraphRAG的功能包括:

(一)问答性能:利用知识图谱和图机器学习技术,GraphRAG能在私有数据集上进行问答。

(二)跨数据集推理:GraphRAG具备连点成线的能力,可以处理跨大型数据集的复杂语义问题。

(三)结构化信息检索:相比传统RAG方法,GraphRAG提供了更结构化的信息检索和响应生成。

GraphRAG提供了完整的Index和Query工具链。

在Index阶段,系统将输入数据切成小的文本块,并使用LLM提取三元组和实体关系,形成层级社区。

在Query阶段,系统分为Global和Local搜索,分别利用社区摘要进行全局搜索和特定实体的局部搜索。

GraphRAG还具备Graph Prompt调优能力,通过自动调整LLM提取提示以适应不同的问题领域,减少了定制提示词和创建示例的前期工作量。这种调优能力让GraphRAG能在不同的应用场景中保持性能。

(1)数据预处理:将输入数据切成小的文本块。

(2)知识图谱构建:使用LLM提取实体和关系,构建知识图谱。

(3)图机器学习处理:利用图机器学习技术对知识图谱进行处理和优化。

(4)社区检测和摘要:通过社区检测算法识别图谱中的模块化社区,并生成社区摘要。

(5)查询处理:在查询阶段,利用社区摘要进行全局和局部搜索,生成最终答案。

GraphRAG系统架构

GraphRAG的核心是通过两个阶段构建基于图谱的文本索引。

首先,从源文档中衍生出实体知识图谱。这一点让复杂的知识图谱瞬间穿上了皇帝的新衣。

GraphRAG将源文档分割成较小的文本块,这些文本块随后被输入到大模型中以提取关键信息。

在这个过程中,大模型不仅要识别文本中的实体,还要识别实体之间的关系,包括它们之间的相互作用和联系,用来构建一个庞大的实体知识图谱,其中包含了数据集中所有重要实体和它们之间的关系。

然后,针对所有紧密相关的实体群组预生成社区摘要。

GraphRAG使用社区检测算法来识别图谱中的模块化社区。这些社区由相关的节点组成,它们之间的联系比图中其他部分的联系更为紧密。通过这种方式,整个图谱被划分为更小、更易于管理的单元,每个单元都代表了数据集中的一个特定主题或概念。

在基于图的索引之上,GraphRAG进一步生成社区摘要。这些摘要是对社区内所有实体和关系的总结,它们提供了对数据集中特定部分的高层次理解。

然后要求大模型对每个答案进行打分,分数在0-100之间,得分过低的将被过滤掉,高分则留下。将剩余的中间答案按照得分高低排序,逐步添加至新的上下文窗口中,直至词数限制。

RAG,最具性价比,最容易落地的私域大模型,玩法变了吗?

原本想让企业自己搭建知识图谱来增强知识输出的专业度,这下可好,不用费劲了。微软直接开源GraphRAG,大模型的基础应用是不是可以遍地开花了?

搭建企业私域大模型,如同培养一个新员工,假以时日,他终将会变成企业忠实的老员工。

更多AI工具,参考Github-AiBard123国内AiBard123

可关注我们的公众号:每天AI新工具