跳过内容

全球社区摘要检索器

别名

  • Microsoft GraphRAG
  • 全局检索器
  • 以查询为中心的摘要

所需图结构

带有提取实体和社区摘要的词汇图

背景

某些针对整个数据集提出的问题,不仅与某些数据块中存在的内容有关,而且还寻求数据集中贯穿的总体信息。前面提到的模式不适合回答这类“全局”问题。

描述

给定用户问题和特定社区级别,检索社区摘要并将其提供给LLM。

用法

此模式对于具有全局性质的问题非常有用。例如,总结整个数据库的内容或查找整个数据中的主题结构。设置所需图模式的工作量相当大,因为需要执行许多步骤:实体和关系提取、社区检测和社区摘要。需要考虑这些任务中哪些应由LLM执行,哪些任务可以以不同方式处理,以保持预处理成本可接受。

所需预处理

除了提取实体及其关系外,我们还需要在领域图中形成分层社区。这可以通过使用Louvain或Leiden聚类算法来完成。对于每个社区,LLM将实体和关系信息总结为社区摘要。

检索查询

此方法的默认实现不使用向量搜索来获取与问题相似的社区。它只是获取给定级别的所有社区摘要,并将所有这些摘要(可能分批)传递给LLM。

MATCH (c:__Community__)
WHERE c.level = $level
RETURN c.full_content AS output

变体

您可以使用带有提取实体、社区和社区摘要的词汇图的几种变体

  • 本地检索器可以首先对实体嵌入执行向量搜索,然后遍历到相关实体、数据块或社区(例如,参见将Microsoft GraphRAG集成到Neo4j中)。

  • 根据问题,我们还可以首先对社区摘要的嵌入执行向量相似度搜索,以识别哪个子图与问题相关,然后从社区遍历到其实体和数据块以检索附加信息。

  • DRIFT是一种多阶段方法,它首先执行通用或基于向量的社区搜索,然后从这些结果中生成用于本地搜索的附加问题。然后对所有结果进行重新排序,并一起用于生成最终答案。

延伸阅读

现有实现

我在哪里?
© . This site is unofficial and not affiliated with Microsoft.