作者:Roger Montti
Microsoft 宣布对 GraphRAG 进行更新,提高 AI 搜索引擎在使用更少资源的情况下提供具体而全面的答案的能力。此更新加快了 LLM 处理速度并提高了准确性。
RAG(检索增强生成)将大型语言模型 (LLM) 与搜索索引(或数据库)相结合,以生成对搜索查询的响应。搜索索引以新鲜且相关的数据为语言模型奠定基础。这降低了人工智能搜索引擎提供过时或幻觉答案的可能性。
GraphRAG 通过使用从搜索索引创建的知识图来生成称为社区报告的摘要,从而对 RAG 进行了改进。
第 1 步:索引引擎
索引引擎将搜索索引分割成围绕相关主题形成的主题社区。这些社区通过实体(例如人、地点或概念)以及它们之间的关系连接起来,形成分层知识图谱。然后,法学硕士为每个社区创建一份摘要,称为社区报告。这就是 GraphRAG 创建的分层知识图,分层结构的每一层代表一个摘要。
有一种误解认为 GraphRAG 使用知识图。虽然这在一定程度上是正确的,但它遗漏了最重要的部分:GraphRAG 在索引引擎步骤中从非结构化数据(例如网页)创建知识图。将原始数据转换为结构化知识的过程正是 GraphRAG 与 RAG 的区别,后者依赖于检索和汇总信息而不构建层次图。
第二步:查询步骤
在第二步中,GraphRAG 使用它创建的知识图为 LLM 提供上下文,以便它可以更准确地回答问题。
Microsoft 解释说,检索增强生成 (RAG) 很难检索基于主题的信息,因为它只查看语义关系。
GraphRAG 优于 RAG 的方法是首先将其搜索索引中的所有文档转换为知识图,该知识图将主题和子主题(主题)分层组织为越来越具体的层。RAG 依赖语义关系来查找答案,而 GraphRAG 使用主题相似性,即使文档中不存在语义相关的关键字,它也能找到答案。
GraphRAG 最初的公告是这样解释的:
– Baseline RAG 很难处理需要聚合整个数据集中的信息才能得出答案的查询。诸如“数据中排名前 5 位的主题是什么?”之类的查询执行效果非常糟糕,因为基线 RAG 依赖于对数据集中语义相似的文本内容进行向量搜索。查询中没有任何内容可以将其定向到正确的信息。
然而,通过 GraphRAG,我们可以回答这些问题,因为 LLM 生成的知识图的结构告诉我们整个数据集的结构(以及主题)。这允许将私有数据集组织成预先汇总的有意义的语义集群。法学硕士在响应用户查询时使用这些集群来总结这些主题。
回顾一下,GraphRAG 从搜索索引创建知识图。“社区”是指根据主题相似性聚集的一组相关片段或文档,“社区报告”是法学硕士为每个社区生成的摘要。
GraphRAG 的原始版本效率低下,因为它处理了所有社区报告,包括不相关的较低级别摘要,无论它们与搜索查询的相关性如何。微软将其描述为“静态”方法,因为它缺乏动态过滤。
更新后的 GraphRAG 引入了“动态社区选择”,可评估每个社区报告的相关性。删除不相关的报告及其子社区,通过仅关注相关信息来提高效率和准确性。
微软解释说:
– 在这里,我们将动态社区选择引入全局搜索算法,该算法利用索引数据集的知识图结构。从知识图谱的根部开始,我们使用法学硕士来评估社区报告在回答用户问题时的相关性。如果报告被认为不相关,我们只需从搜索过程中删除它及其节点(或子社区)。另一方面,如果报告被认为是相关的,我们就会向下遍历其子节点并重复该操作。最后,仅将相关报告传递给 Map-Reduce 操作以生成对用户的响应。—
Microsoft 测试了新版本的 GraphRAG,得出的结论是,它使计算成本降低了 77%,特别是由 LLM 处理时的代币成本。标记是 LLM 处理的文本的基本单位。改进后的 GraphRAG 能够使用更小的 LLM,进一步降低成本而不影响结果的质量。
对搜索结果质量的积极影响是:
GraphRAG 中的动态社区选择通过生成更具体、相关且有源材料支持的响应来提高搜索结果质量。
阅读 Microsoft 的公告:
精选图片由 Shutterstock/N Universe 提供