GraphRAG 是一种结构化的、分层的检索增强生成 (RAG) 方法,不同于使用纯文本片段的简单语义搜索方法。GraphRAG 流程包括从原始文本中提取知识图谱、构建社区层次结构、为这些社区生成摘要,然后在执行基于 RAG 的任务时利用这些结构。
要了解有关 GraphRAG 的更多信息以及如何使用它来增强您的 LLM 推理您的私人数据的能力,请访问 Microsoft Research 博客文章。
图 1:使用 GPT-4 Turbo 构建的 LLM 生成的知识图。
GraphRAG 与 Baseline RAG
检索增强生成 (RAG) 是一种使用真实世界信息改进 LLM 输出的技术。这种技术是大多数基于 LLM 的工具的重要组成部分,大多数 RAG 方法使用向量相似性作为搜索技术,我们称之为Baseline RAG。GraphRAG使用知识图谱在推理复杂信息时大幅提高问答性能。RAG 技术在帮助 LLM 推理私有数据集方面显示出良好的前景- 私有数据集是 LLM 未经过训练且从未见过的数据,例如企业的专有研究、商业文档或通信。Baseline RAG的创建是为了帮助解决这个问题,但我们观察到 Baseline RAG 表现非常差的情况。例如:
- 基线 RAG 难以将各个点连接起来。当回答问题需要通过共享属性遍历不同的信息片段以提供新的综合见解时,就会发生这种情况。
- 当被要求全面理解大型数据集合甚至单个大型文档中的总结语义概念时,基线 RAG 的表现不佳。
为了解决这一问题,技术社区正在努力开发扩展和增强 RAG 的方法。微软研究院的新方法 GraphRAG 使用 LLM 根据输入语料库创建知识图谱。该图谱与社区摘要和图形机器学习输出一起用于增强查询时的提示。GraphRAG 在回答上述两类问题方面表现出了显著的进步,表现出的智能或掌握程度优于之前应用于私有数据集的其他方法。
GraphRAG 流程
GraphRAG 建立在我们之前使用图形机器学习的研究和工具的基础上。GraphRAG 流程的基本步骤如下:
指数
- 将输入语料库切分为一系列 TextUnit,这些 TextUnit 作为其余过程的可分析单元,并在我们的输出中提供细粒度的参考。
- 使用 LLM 从 TextUnits 中提取所有实体、关系和关键声明。
- 使用莱顿技术对图表进行层次聚类。要直观地看到这一点,请查看上面的图 1。每个圆圈都是一个实体(例如,一个人、一个地方或一个组织),其大小代表实体的程度,颜色代表其社区。
- 自下而上地生成每个社区及其组成部分的摘要。这有助于整体理解数据集。
询问
在查询时,这些结构用于在回答问题时为 LLM 上下文窗口提供材料。主要查询模式包括:
- 利用社区摘要对语料库的整体问题进行全局搜索推理。
- 本地搜索通过向邻居和相关概念展开来推理特定实体。
及时调整
使用GraphRAG处理开箱即用的数据可能无法获得最佳结果。我们强烈建议您按照我们文档中的提示调整指南微调您的提示。
https://microsoft.github.io/graphrag/
最后编辑:Jeebiz 更新时间:2024-08-08 11:59