微软GraphRAG,基于LLM的上下文结构化查询模式

2024-07-18
GraphRAG

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

GraphRAG vs 基线 RAG

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

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

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

GraphRAG过程

GraphRAG以我们之前使用图形机器学习的研究和工具为基础。GraphRAG过程的基本步骤如下:

首先

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

查询

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

  • 通过利用社区摘要,全球搜索有关语料库的整体问题的推理。
  • 通过向邻居和相关概念分散,本地搜索对特定实体的推理。

提示调音

GraphRAG与开箱即用的数据一起使用,可能无法产生最佳结果。我们强烈建议您按照我们文档中的提示调优指南对您的提示进行微调。

更多

要开始使用GraphRAG,请登录官方地址:https://microsoft.github.io/graphrag/

发表观点

相关内容