微软开源GraphRAG了!
基于模块化图的检索增强生成 (RAG) 系统
GraphRAG 项目是一个数据管道和转换套件,旨在利用 LLM 的功能从非结构化文本中提取有意义的结构化数据。
★ 什么是 GraphRAG?
GraphRAG 是一种基于 AI 的内容解释和搜索功能。它使用 LLM 解析数据以创建知识图谱并回答用户关于用户提供的私有数据集的问题。
★ GraphRAG 能做什么?
GraphRAG 能够将大量信息连接起来,并利用这些连接来回答那些使用关键字和基于向量的搜索机制难以回答或无法回答的问题。在上一个问题的基础上,提供有关系统如何提供各种用途功能的半技术性高级信息。这使得使用 GraphRAG 的系统能够回答答案涵盖许多文档的问题以及主题问题,例如“此数据集中的热门主题是什么?”。
项目:github.com/microsoft/graphrag
论文:arxiv.org/abs/2404.16130
主页:microsoft.github.io/graphrag/
介绍:www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
论文摘要:
使用检索增强生成 (RAG) 从外部知识源检索相关信息,使大型语言模型 (LLM) 能够回答有关私有和/或以前未见过的文档集合的问题。
然而,RAG 无法解决针对整个文本语料库的全局问题,例如“数据集中的主要主题是什么?”,因为这本质上是一个以查询为中心的摘要 (QFS) 任务,而不是明确的检索任务。同时,先前的 QFS 方法无法扩展到典型 RAG 系统索引的文本数量。
为了结合这些对比方法的优势,我们提出了一种 Graph RAG 方法,用于回答私有文本语料库的问题,该方法可以随着用户问题的普遍性和要索引的源文本数量而扩展。我们的方法使用 LLM 分两个阶段构建基于图的文本索引:首先从源文档中派生出实体知识图,然后为所有密切相关的实体组预生成社区摘要。给定一个问题,每个社区摘要都会用于生成部分响应,然后所有部分响应再次汇总到最终响应中给用户。
对于 100 万个标记范围内的数据集上的一类全局意义构建问题,我们表明 Graph RAG 在生成的答案的全面性和多样性方面都比简单的 RAG 基线有了显着的改进