AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


微软GraphRAG 0.4.0发布,引入增量更新和DRIFT搜索
发布日期:2024-11-06 09:56:28 浏览次数: 1524 来源:深入LLM Agent应用开发


我们已经建立粉丝交流群,后台回进群即可。

GraphRAG 已经发布 0.4.0[1] 新版本,该版本的代码经过一轮重构后,已于之前的代码结构有了很大的不同。该版本除了引入增量更新,还带了新的搜索机制 DRIFT 搜索,这是一种混合本地与全局的搜索的方法。本文即是对 DRIFT 方法的解析。我们后续也会带来 GraphRAG v0.4.0 解析和GraphRAG-server[2]对 0.4.0 的适配。

GraphRAG 是一种基于大型语言模型 (LLM) 的技术,用于从非结构化文本文档中生成知识图谱和摘要,并利用这些内容提升在私有数据集上的检索增强生成 (RAG) 效果。通过 GraphRAG,用户能够从大量非结构化的文本数据中提取信息,构建一个全局概览,同时还可以深入挖掘更为本地化的细节。该系统借助 LLM 生成知识图谱,识别文档中的实体和关系,利用数据的语义结构响应复杂查询。微软的研究合作伙伴 Uncharted Software[3] 正在进一步拓展此技术,开发出一种全新方法:DRIFT 搜索(动态推理与灵活遍历)。DRIFT 在微软的 GraphRAG 技术之上进行改进,将全局搜索和本地搜索结合起来,以平衡计算成本与响应质量。

GraphRAG 的核心工作机制

GraphRAG 由两个主要组件组成:索引引擎和查询引擎。

  • 索引引擎:负责将文档分解为更小的块,生成包含实体和关系的知识图谱。然后,它识别图谱中的社区结构,并生成代表全局数据的摘要(即“社区报告”)。
  • 查询引擎:利用 LLM 构建图形索引,并提供两种主要的查询模式:
    • 全局搜索:适合跨整个数据集的查询,能综合不同来源的信息来回答全面性问题,例如“过去五年 AI 研究的发展趋势”。全局搜索虽全面但较耗费资源。
    • 本地搜索:专注于与用户输入密切相关的小范围数据,从中提取出精准的内容,适合直接回答特定问题,例如“10 月 4 日 Microsoft Cosmos DB 团队发布了哪些新功能?”

通过人工参与 (HITL),用户可以指定需要关注的实体和关系类型,进一步优化知识图谱的生成。为确保图谱结构适配用户需求,索引阶段需明确定义目标用户的角色,这会影响节点、边和社区报告的结构。

DRIFT 搜索的引入

DRIFT 搜索通过整合社区信息,使本地搜索的起点更为宽泛,能够检索更多类型的事实,从而提升查询的详细性。DRIFT 在 GraphRAG 的查询引擎基础上进一步扩展,为本地搜索提供了更精细的分层查询方式,使其能够处理与预定义模板不完全匹配的复杂查询。表 1 展示了 DRIFT 和传统本地搜索对 AP 新闻数据集的一次汇总响应对比,查询内容为“描述美国 FDA 和 CDC 在 2023 年 11 月处理苹果肉桂果泥中的铅污染问题的行动”。表中显示,DRIFT 搜索能够提供比本地搜索更多的细节。

回答详细信息 DRIFT (DS_Default) 本地 (LS)
污染程度 超出 FDA 最高标准的 2000 倍 血铅水平为每分升 4-29 微克
供应链 追溯到厄瓜多尔和斯里兰卡的某品牌肉桂产品受到污染 厄瓜多尔的植物
操作 召回和健康建议,调查工厂,向零售商发出警告 召回和健康建议

DRIFT 搜索的分步过程

  1. 初始查询匹配:用户提交查询后,DRIFT 会将其与最相关的社区报告对比生成初步答案,并提出后续问题。这些问题类似轻量级的全局搜索,利用高级抽象来指导后续探索。
  2. 逐步跟进:在生成初始答案后,DRIFT 使用本地搜索执行每个后续问题,创建一个循环迭代过程,直到满足搜索的终止条件(目前设置为两次迭代)。
  3. 层次化输出:最终生成一个按相关性排序的层次化问答结构,便于根据用户需求进一步定制。基准测试期间,通过简单的 map-reduce 汇总中间答案,使每个答案权重相同。

这种逐层细化的方法,使得 DRIFT 能够在处理从抽象到具体的复杂查询时,兼顾广度和深度。

该图像显示了一个层次树,其中每个节点都以权重饼图表示。

为什么 DRIFT 搜索更有效?

DRIFT 搜索通过将全局洞见和本地细化结合起来,支持从高级摘要逐步导航到知识图谱中的原始文本块。即便初始查询不完全符合预设角色,DRIFT 也能适应各种查询类型,逐层分解出具体细节。此特性使得 DRIFT 尤其适合需要同时满足广度和深度的查询场景。

DRIFT 搜索的性能评估

在基准测试中,我们将 DRIFT 与 GraphRAG 的本地搜索和语义搜索方法进行了对比,评估了各方法在“全面性”和“答案多样性”上的表现。在从美联社提取的 5000 篇新闻文章上生成了 50 个本地问题,DRIFT 搜索在全面性上优于本地搜索 78%,在答案多样性上优于本地搜索 81%。

可用性

DRIFT 搜索现已开源,详见 GraphRAG GitHub 仓库[4]

未来展望

未来,DRIFT 计划改进全局搜索,以更好地支持需要全局信息的查询。此外,还将探索单一查询界面,能够同时处理本地和全局问题。改进终止逻辑,使 DRIFT 更好地平衡新信息与冗余信息,同时提升资源利用效率。DRIFT 搜索是 GraphRAG 优化之路上的重要一步,未来还会继续通过知识图谱优化系统效率。

关注、点赞、分享,加星获得第一时间推送

参考资料

[1]

0.4.0: https://github.com/microsoft/graphrag/releases/tag/v0.4.0

[2]

GraphRAG-server: https://github.com/KylinMountain/graphrag-server

[3]

Uncharted Software: http://uncharted.software/

[4]

GraphRAG GitHub 仓库: https://github.com/microsoft/graphrag



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询