2026年7月9日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

微软GraphRAG框架演进之路及带来的一些思考

发布日期:2024-11-27 15:06:29 浏览次数: 5700
作者:老刘说NLP

微信搜一搜,关注“老刘说NLP”

今天是2024年11月27日,星期三,北京,天气晴。

我们今天继续来看GraphRAG的最新进展,可以可以回顾下Graphrag(ms版本)的路程:GraphRAG第一版本2024年4月份,主打global/local search;2024年11月初,搜索优化引入Drift_search动态搜索(https://microsoft.github.io/graphrag/query/drift_search) ;2024年11月底,在drift_search基础上,抛弃KG抽取并作rank优化,推出lazygraphrag(https://www.microsoft.com/en-us/research/blog/lazygraphrag-setting-a-new-standard-for-quality-and-cost/)。

其实,问题还是回归了,场景的问题,GraphRAG适合需要全面分析和复杂查询的场景,但成本较高。LazyGraphRAG在保持高质量答案的同时,要想兼备具有显著的成本优势,适合快速查询和资源有限的应用。是两个配置。所以,这个lazygraphRAG确实是取得很有信息量,足够lazy。

结起来就是LazyGraph不要entity/relationship这些kg包袱,更直白的keywords/noun-phrase,降低构建成本,KG其实是烫手山芋;查询阶段不要那么多,走优先遍历,减少上下文。所以,这是GraphRAG在KG上的退化(退化至与朴素RAG接近)。

我们可以从中找到一些思路,多思考,多总结,多实践;

一、先从GraphRAG的发展说起

从GraphRAG到LazyGraphRAG,其实我们可以很真实的感受到,大道至简,正如在之前《GraphRAG系列范式冷思考:GraphRAG、KAG框架思考及E2E-AFG自适应过滤端到端思路》(https://mp.weixin.qq.com/s/kYlGAwAFayySnszwZ1g8Og)中所说的,当前阶段无论是Graph,还是KG,应该跟RAG浅结合,把收益最大化。

GraphRAG(by Microsoft,https://github.com/microsoft/graphrag)的思想是,利用LLMs构建基于实体的知识图谱,增强查询重点摘要(QFS)任务。该系统通过预生成相关实体群体的社区摘要,捕获文档集合内的局部和全局关系;

全局搜索(Global search)处理跨越整个数据集的查询。这种场景综合了来自不同底层来源的信息,以回答需要对整个语料库有广泛理解的查询。例如,在一个关于科技公司研究努力的的数据集中,一个全局查询可能是:“过去五年中,在多个组织中出现了哪些AI研究趋势?”虽然连接分散信息很有效,但全局搜索可能是资源密集型的。

局部搜索(Local search)针对目标查询进行了优化,从与用户输入紧密匹配的文件的一个小子集中提取信息。当答案位于少数文本单元中时,这种模式效果最好。例如,一个查询询问:“微软的Cosmos DB团队在10月4日发布的新功能和集成有哪些?”

但是成本太高,所以后续的lightRAG(https://github.com/HKUDS/LightRAG,https://lightrag.github.io/,https://arxiv.org/pdf/2410.05779,https://microsoft.github.io/graphrag/)来对比,其来自于nano-graphra(https://github.com/gusye1234/nano-graphrag),其实就是微软Graph的简化版本,将社区、社区宅摘要这些环节做了去除,这种去除是好的,不会太重,对于知识更新也更快;

后面,搜索优化引入Drift_search动态搜索(https://microsoft.github.io/graphrag/query/drift_search) ,但并没有对索引的部门进行优化,依旧成本居高不下。

所以,到后面,Lazy版本的GraphRAG就出来了。而在本质上说,GraphRAG和LazyGraphRAG是两种不同的图增强检索与生成(RAG)方法,在数据处理和查询性能上有显著区别:

数据处理方面,GraphRAG使用大LLM提取和描述实体及其关系。对每个实体和关系的所有观察进行总结。使用图统计优化实体图并提取层次社区结构。但LazyGraphRAG使用NLP名词短语提取概念及其共现关系。使用图统计优化概念图并提取层次社区结构。延迟LLM的使用,直到查询时才进行相关处理。

查询机制方面,全局搜索上,GraphRAG在使用社区结构确保考虑整个数据集的广度,而LazyGraphRAG全局搜索上通过迭代加深的方式结合最佳优先搜索和广度优先搜索。在局部搜索上,GraphRAG直接使用原始查询,而LazyGraphRAG通过文本块嵌入和社区关系进行排序,并使用LLM进行相关性评估。

所以可以看到,在成本上,GraphRAG数据索引成本较高,因为需要进行复杂的LLM处理和社区结构提取。 LazyGraphRAG的数据索引成本与向量RAG相同,远低于完整GraphRAG。查询成本低,适合一次性查询和流数据处理

二、GraphRAG引入DRIFT推理**

这个月初,GraphRAG微软版本更新0.4.0,引入DRIFT推理(https://github.com/microsoft/graphrag/releases/tag/v0.4.0,https://github.com/KylinMountain/graphrag-server,http://uncharted.software/,https://github.com/microsoft/graphrag),其中的重点模块是graph reasoning query module(https://www.microsoft.com/en-us/research/blog/introducing-drift-search-combining-global-and-local-search-methods-to-improve-quality-and-efficiency),其核心叫做DRIFT Search: A step-by-step process一步步来,可以自行体会下。

一个完整的DRIFT搜索层次结构如上,三个阶段。

A (Primer):当用户提交查询时,将其与最相关的K个社区报告进行比较。这会产生一个初始答案以及几个后续问题,这些问题作为全局搜索的轻量级版本。为此,使用假设文档嵌入(HyDE)扩展查询,以增加敏感性(召回率),嵌入查询,与所有社区报告对照查询,选择顶部K个,然后使用这些顶部K个尝试回答查询。

B (Follow-Up):使用局部搜索来精炼查询,产生额外的中间答案和后续问题,增强特定性,这里默认迭代两次。

C (Output Hierarchy):最终输出是一个按相关性排名的问题和答案的层次结构,使结果具有适应性和全面性。

总的来说,DRIFT推理,这个是在检索阶段做的一个优化,但实际上效率可能会降低,因为引入了迭代搜索,但看其效果还不错。

三、LazyGraphRAG简化索引、弱化KG

LazyGraphRAG(https://www.microsoft.com/en-us/research/blog/lazygraphrag-setting-a-new-standard-for-quality-and-cost/)的一个关键优势在于它在成本和质量方面的固有可扩展性,根据其博客介绍。在一系列方法(标准向量RAG、RAPTOR、GraphRAG本地搜索、全局搜索以及DRIFT搜索机制)中,LazyGraphRAG 在成本-质量上,表现不错。

不同的设定条件,这些参数设置,其实也是在实际过程中用到的思路。

对比效果如下,结论均来自于博客。

具体如下:

LazyGraphRAG的数据索引成本与向量RAG相同,仅为完整GraphRAG成本的0.1%。

在与向量RAG相当的查询成本下,LazyGraphRAG 在local查询上的表现优于其他方法,包括长上下文向量RAG、GraphRAG DRIFT搜索以及GraphRAG local搜索。

同样的LazyGraphRAG配置,在Global Search方面,其答案质量与GraphRAG Global搜索相当,但查询成本低超过700倍。

以GraphRAG Global搜索查询成本的4%,LazyGraphRA在local和global查询类型上表现不错,包括C2级别的GraphRAG全局搜索(推荐用于大多数应用的社区层次结构的第三级)。

所以,可看看做的具体优化操作,LazyGraphRAG在构建索引、匹配查询和映射答案等方面采用了更复杂的方法,而GraphRAG则相对简单直接。

Build index方面,GraphRAG通过大模型(LLM)提取和描述实体及其关系,总结每个实体和关系的所有观察结果,并利用图统计优化实体图,提取层次化的社区结构。LazyGraphRAG利用自然语言处理技术(NLP)提取名词短语,识别概念及其共现情况,再通过图统计优化概念图,提取层次化的社区结构。

Summarize index方面,GraphRAG利用LLM总结各个社区内的实体和关系。LazyGraphRAG采用“懒惰”策略,不预先生成概述,而是在查询时动态调用LLM进行处理。

Refine query方面,GraphRAG直接使用原始查询,不做额外处理。LazyGraphRAG利用LLM识别相关的子查询,并将其重组为一个扩展查询,通过概念图中的概念进一步细化子查询。

GraphRAG不进行特殊处理,采用广度优先的方式,使用所有社区的摘要来响应查询。LazyGraphRAG针对每个子查询q,首先根据文本块嵌入和块-社区关系按相似性排序查询,接着根据前k个文本块的排名对社区进行排序(最佳优先)。使用基于LLM的句子级相关性评估器对未测试的前k个文本块的相关性进行评分,并按排名顺序从社区中选取文本块(广度优先)。如果连续z个社区没有产生相关文本块,则递归地进入子社区进行搜索,或者在达到相关性测试预算/q时停止(迭代加深)。

Reduce answers方面,GraphRAG利用LLM根据随机批次的社区摘要并行地回答原始查询。LazyGraphRAG针对每个子查询q(通常3-5个),构建相关文本块的概念子图,根据概念的社区分配将相关块分组。使用LLM从相关块组中提取与子查询相关的声明,确保只关注相关内容。最后,对提取的声明进行排序和过滤,以适应预定义的上下文窗口大小。

所以,总结起来就是,不要抽实体、抽关系,抽名词短语,找共现就好了。社区上,延迟LLM的使用,直到查询时才进行相关处理,这样减少索引构建时间,查询时间上,通过迭代加深的方式结合最佳优先搜索和广度优先搜索,然后进行排序,减少上下文长度,加速推理;查询时间上,通过迭代加深的方式结合最佳优先搜索和广度优先搜索,然后进行排序,减少上下文长度,加速推理;

总结

本文主要回顾了Graphrag(ms版本)的路程:GraphRAG第一版本2024年4月份,主打global/local search;2024年11月初,搜索优化引入Drift_search动态搜索(https://microsoft.github.io/graphrag/query/drift_search) ;2024年11月底,在drift_search基础上,抛弃KG抽取并作rank优化,推出lazygraphrag(https://www.microsoft.com/en-us/research/blog/lazygraphrag-setting-a-new-standard-for-quality-and-cost/)。

这一路走来,其实都是在面向落地而做的优化或者简化,其目的是为了更加轻量以让大家更好的用起来。这其实也是目前很多框架所需要考虑的点。

大道至简,各位共勉。


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

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

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

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅