MicrosoftResearch博客文章
GraphRAG加速器
👉GitHub仓库
GraphRAGArxiv

Figure 1: LLM-generated knowledge graph built from a private dataset using GPT-4 Turbo.

图1:使用GPT-4 Turbo构建的LLM生成的知识图.

GraphRAG是一种结构化、层次化的检索增强生成(RAG)方法,与朴素语义搜索相反 使用纯文本片段的方法。
GraphRAG过程涉及从原始文本中提取知识图,构建社区层次结构,为这些社区生成摘要,然后在执行基于RAG的任务时利用这些结构。

要了解有关GraphRAG的更多信息以及如何使用它来增强您LLMs对您的私人数据进行推理的能力,请访问Microsoft Research博客文章

 解决方案加速器

要快速启动GraphRAG系统,我们建议尝试解决方案加速器包。这为Azure资源提供了用户友好的端到端体验。

开始使用GraphRAG🚀

要开始使用GraphRAG,请查看入门指南。要深入了解主要子系统,请访问IndexerQuery包的文档页面。

GraphRAG vs基线RAG🔍

检索增强生成(RAG)是一种使用真实世界信息改进LLM输出的技术。这种技术是大多数基于LLM的工具的重要组成部分,大多数RAG方法使用向量相似性作为搜索技术,我们称之为_基线RAG_。GraphRAG使用知识图在推理复杂信息时提供问答性能的实质性改进。RAG技术已经显示出帮助LLMs对_私有数据集_进行推理的前景-LLM没有经过训练并且以前从未见过的数据,例如企业的专有研究,商业文档或通信。LLM_Baseline RAG_是为了帮助解决这个问题而创建的,但我们观察到Baseline RAG性能非常差的情况。举例来说:

  • 基线RAG努力连接点。当回答一个问题需要通过它们的共享属性遍历不同的信息片段以提供新的综合见解时,就会发生这种情况。
  • 当被要求全面理解大型数据集合或甚至单个大型文档的概括语义概念时,基线RAG表现不佳。

为了解决这个问题,技术社区正在努力开发扩展和增强RAG的方法。微软研究院的新方法GraphRAG使用LLMs来创建基于输入语料库的知识图。
该图与社区摘要和图形机器学习输出一起沿着用于在查询时增强提示。
GraphRAG在回答上述两类问题方面表现出了实质性的改进,证明了智能或掌握能力优于以前应用于私有数据集的其他方法。

 GraphRAG过程🤖

GraphRAG建立在我们之前使用图形机器学习的研究工具之上。GraphRAG过程的基本步骤如下:

 指数

  • 将输入语料库分割成一系列TextUnits,这些TextUnits充当流程其余部分的可分析单元,并在输出中提供细粒度的引用。
  • 使用LLM从TextUnits中提取所有实体、关系和关键声明。LLM
  • 使用Leiden技术对图进行层次聚类。要直观地看到这一点,请查看上面的图1。每个圆是一个实体(例如,一个人,一个地方,或者一个组织),大小代表实体的程度,颜色代表它的社区。
  • 自下而上生成每个社区及其组成部分的摘要。这有助于对数据集的整体理解。

 查询

在查询时,这些结构用于在回答问题时为LLM上下文窗口提供材料。主要的查询方式有:

  • 全局搜索通过利用社区摘要来推理关于语料库的整体问题。
  • 局部搜索通过扇出到其邻居和相关概念来推理特定实体。

 提示调整

将_GraphRAG_与您的数据一起使用可能不会产生最佳结果。我们强烈建议您按照文档中的提示调整指南对提示进行微调。