你想要的GraphRAG的内容都在这了

最近微软终于开源了他的GraphRAG,短短7天就集齐了6.7K Star。那GraphRAG究竟是个啥???

GraphRAG的论文实践上要比代码开源早很多,论文应是往年4月份在Arxiv上宣布的,然而代码是这个月1号才正式上行开源。

名目开源地址:

名目协助文档:

1. 为什么要提出GraphRAG?

RAG,又称检索增强生成(Retrieval Augumented Generation)。RAG目前曾经成为大言语模型运行的外围组件之一,应用检索到的内容,无论是相似度检索,还是传统搜查、搜查引擎来加弱小言语模型的外部常识。仰仗这一才干,RAG在协助LLM解决私有化数据集上施展了渺小的后劲、取得了不俗的体现,这些私有化数据集关于LLM来说是全新的,比如企业外部文档、商业文件、用户对话记载等。即使如此,传统RAG依然存在很多疑问,比如:

2. 什么是GraphRAG

如上图所示,GraphRAG包含两个解决阶段,区分是:索引阶段和查问阶段。索引阶段应用LLM来智能化构建常识图谱,提取出对应的节点(照实体)、边(如相关)和协变量(如主张,claim),而后应用社区发现技术(如Leiden算法)对整个常识图谱启动子图划分,而后自底而上对子图应用LLM启动摘要、总结。针对特定查问,“全局答案(Global Search)”汇总一切与之相关的社区摘要最后汇总生成答案。

2.1 源文档生成文本片段

与传统RAG一样,GraphRAG也须要将源文档转化为文本片段(TextUnits),这个片段既会被用于图谱抽取,也会作为常识的援用源,以便追溯回最后的原始文本内容。

在最新开源的GraphRAG代码里,文本切分大小(以Token数计算)是可以依据用户需求调整的。自动是300个Token,虽然,作者发现1200个token大小的文本单元能取得更好成果。然而,越大的文本块大小会造成输入精度降落、召回率降落、并且降落参考文本的可读性;不过文本块尺寸越大,可以缩小LLM调用次数,整个解决环节速度可以更快。

下图展现了,在相反的提取循环次数下,提取的实体数会随着文档片段的大小参与。

文本单元的分组设置雷同可以依据用户需求定制。自动GraphRAG会依照文档边界来对齐单元,确保文档与文本单元之间坚持严厉的一对一关联。在少数状况下(特意是十分短的文档),比如推文、聊天记载这些状况下,会组合多个文档构成一个无心义的剖析单元。

2.2 常识图谱构建

接上去的步骤就是关于每一段文本片段,应用LLM从中提取实体、相关、主张(Claim)。下图是GraphRAG外面用于常识图谱构建的揭示词。

由于篇幅要素,这里不展现所有揭示词,大家可以自行参考链接:

./prompt_tune/template/entity_extraction.py

2.3 元素实例转化为元素摘要

经过LLM对文档中的实体、相关、主张启动提取,实质上是对文档的一种形象式摘要。同名同类型的实体将经过整合它们的形容构成一致的数组;雷同的,相反终点和终点的相关也将经过整合形容后启动兼并。

图谱抽取的最后一步是对代表同一事实环球实体但称号不同的实体启动辨识。由于此环节经过LLM口头,宿愿在不失落消息的前提下,采取一种慎重且非破坏性的方法。

不过,目前的实体辨识成功是具备破坏性的。将一系列实体提供应LLM,并要求其判别哪些实体应该兼并。而后,这些实体将被兼并为繁多实体,并且它们的相关也会相应降级。

GraphRAG正在踊跃探求其余实体辨识技术。在不久的未来,实体辨识将经过在不同实体变体间建设一条边来口头,标明这些实体曾经被索引引擎辨识。这将经常使用户能够撤销索引端的辨识,并驳回相似环节参与自己的非破坏性辨识。

2.4 元素概要至图谱社群

上一步骤所构建的索引可以视作一个平均无向加权图,实体节点经过相关边相连,边的权重反映了所检测到相关实例的归一化数量。基于此类图,可以运行多种社群发现算法,将图递归划分为多个社群,这些社群内的节点间的咨询比与图外其余节点更为严密。在GraphRAG中,作者决定了Leiden算法,要素在于其能够有效地开掘大规模图谱的层级社群结构。

该层级结构的每一层都提供了一种划分模式,以互斥且片面笼罩的模式出现图中一切节点,为全局性摘要的分治战略提供了或者。

2.5 图谱社群至社群概要

接上去应用社群(常识图谱子图)数据,应用LLM为每个社群总结为一个摘要式报告。这有助于在图谱的不同细节档次上取得微观的了解。比如,若社区A属于最顶层,将取得整个图谱的综合报告;若社区属于较低档次,则报告将聚焦于一个特定的部分个体。

可以经过揭示词里的示例,看一下这个常识图谱报告长什么样子:

经过LLM对社区报告启动稀释、精简,而后将这些报告内容经过embedding模型启意向量化,这里与传统的RAG相似。

所以小编以为,在整个GraphRAG外面,常识图谱提取和这一步图谱子图摘要式总结是最为关键和不凡的。

2.6 社群概要至社群解答,再到全局解答

针对用户的提问,社群的层接结构个性象征着可以应用不同层级的社群摘要来回答疑问。在特定的社群中,用户的提问全局回答按以下环节生成:

3. 对比剖析

作者对比了六种性能的RAG,包含应用四层图社群结构的GraphRAG(C0、C1、C2、C3),以及将Map-Reduce运行于原始文本的文本摘要方法(TS)、语义搜查RAG(SS)。

C0:应用根层级的社群概要来响运行户查问,数量最为稀少。

C1:应用初级别社群概要解答疑问,这些是C0的子社群,假设存在的话;否则是C0社群的下投影。

C2:应用中层级社群概要来解答疑问,这些是C1的子社群,假设存在的话;否则是C1社群的下投影。

C3:应用底层社群概要来解答疑问,数量最多,这些是C2的子社群,假设存在的话;否则是C2社群的下投影。

TS:与GraphRAG方法相似,只是将原始文本(而非社群概要)随机调配并分块,用于map-reduce摘要阶段。

SS:一种豪华RAG的成功,检索文本块并参与至高低文窗口,直至到达设定的令牌限度。

3.1 全局方法相较于豪华RAG

如上图,四种度量规范下每组125个疑问(每组疑问均重复五次并取平均值)的胜率对比图。每一行代表的条件与每一列的条件相比拟,胜者以粗体字标出。自我胜率未作计算,以预期的50%作为参考线。

在片面性和多样性上,GraphRAG的一切条件均逾越了豪华RAG。特意是条件C1至C3,在答案的片面性和多样性方面相较于TS(不依赖图索引的全局文本摘要)显示出了小幅优化。

全局方法在片面性和多样性两个目的上,无论是播客还是资讯数据集,均继续逾越了豪华RAG(SS)方法。详细来说,全局方法在播客文稿的片面性胜率介于72%到83%之间,在资讯文章上的胜率则在72%到80%之间,多样性胜率区分为75%到82%和62%到71%。此外,咱们以间接性作为有效性的测验,结果合乎预期,即豪华RAG在一切对比中提供了最间接的回答。

3.2 社群摘要与原始文本的对比

对比社区概要和原始文本,社区概要在优化答案的片面性和多样性方面,广泛带来了虽小但稳固的改良,根级概要不在此列。

多样性方面:

上表展现了GraphRAG相较于原始文本摘要在可裁减性上的长处:针对低级社区概要(C3),GraphRAG所需的高低文Token数缩小了26-33%;而针对根级社区概要(C0),令牌需求量更是缩小了97%以上。

与其它全局方法相比,虽然性能略有降落,根级GraphRAG依然是启动迭代问答的高效方法,这种问答是感知优惠的特点,同时在片面性(胜率72%)和多样性(胜率62%)上仍逾越了豪华RAG。

3.3 回答成果展现

上图第二、三行区分展现了GraphRAG和豪华RAG回答的成果对比,第四行展现了经常使用LLM对这两个回答做出的评价结果(四个评价维度)。

本文转载自​​,作者:​​

您可能还会对下面的文章感兴趣: