跳到内容

欢迎来到 GraphRAG

👉 微软研究院博客文章
👉 GraphRAG 加速器
👉 GraphRAG Arxiv

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 的更多信息以及如何使用它来增强您的语言模型对您的私有数据进行推理的能力,请访问微软研究院博客文章

解决方案加速器 🚀

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

开始使用 GraphRAG 🚀

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

GraphRAG 与基线 RAG 🔍

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

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

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

GraphRAG 过程 🤖

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

索引

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

查询

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

  • 全局搜索,用于通过利用社区摘要来推理有关语料库的整体问题。
  • 本地搜索,用于通过扩展到其邻居和相关概念来推理有关特定实体的信息。
  • DRIFT 搜索,用于通过扩展到其邻居和相关概念来推理有关特定实体的信息,但添加了社区信息的上下文。

提示词调优

直接使用GraphRAG处理您的数据可能无法产生最佳结果。 我们强烈建议按照文档中的提示词调优指南来微调您的提示。

版本控制

请参阅重大更改文档,了解我们项目版本控制方法的说明。

始终在次要版本更新之间运行graphrag init --root [path] --force,以确保您拥有最新的配置格式。 如果您想避免重新索引以前的数据集,请在主要版本更新之间运行提供的迁移 notebook。 请注意,这将覆盖您的配置和提示,如有必要请备份。