首页 > 其他分享 >GraphRAG 检索增强+图模型

GraphRAG 检索增强+图模型

时间:2024-09-02 12:24:58浏览次数:8  
标签:检索 社区 GraphRAG 一步 模型 摘要 LLM 文本 节点

https://arxiv.org/pdf/2404.16130

往期的NaiveRAG基本都是显式检索,而GraphRAG通过知识图谱实现了总结能力。知识图谱通常是事先生成的,并存储在系统中,供用户查询和模型使用。

1 引入

通常意义上,RAG的作用是从外部知识源中检索相关信息,使LLM能够回答有关私有或以前未见过的文档集合的问题。对于显式的检索任务,RAG表现优异;但是对于例如“数据集中主要的主题是什么?”这类问题,由于这是一个全局性问题,一般的RAG通常表现不佳。

GraphRAG使用LLM在两个阶段构建基于图的文本索引:首先从源文档中提取实体知识图谱,然后使用社区检测方法为所有密切相关的实体群体预生成社区总结。

2 流程管道

面向领域的总结(Domain-tailored Summarization)指的是根据特定的领域的要求,使用适应该领域的提示词和方法,从文档中提取和生成高度相关且有意义的总结信息。协变量(Covariates)指的是协因变量变的量,在这里指的是实体节点或关系边相关联的额外属性,属于包含在摘要中的信息。

协变体现了子类的扩展性,允许子类型替换父类型,通常用于返回类型(A=B,G(A)=G(B));逆变体现了子类的继承性,允许父类型替换子类型,通常用于参数类型(A=B,G(B)=G(A))。

2.1 Source Documents → Text Chunks

一个基本的设计决策是确定从源文档提取的输入文本应以何种粒度分割为文本块以便处理。在接下来的步骤中,每个文本块将传递给一组LLM提示,用于提取图索引的各种元素。

这一步输入原文档,输出文本块。

2.2 Text Chunks → Element Instances

基本要求是识别并提取每个源文本块中的图节点和边的实例。作者使用一个多部分的LLM提示,首先识别文本中的所有实体,包括它们的名称、类型和描述,然后识别所有明确相关实体之间的关系,包括源实体和目标实体及其关系的描述。这两类元素实例都输出为一个包含分隔元组的列表。

这一步输入文本块,输出图节点和边的实例列表。

2.3 Element Instances → Element Summaries

对前一步列表中每个图元素(如实体节点、关系边和协变量)创建独立而有意义的摘要。

这一步输入实例列表,输出每个实例元素的摘要。

2.4 Element Summaries → Graph Communities

在前一步中创建的索引可以建模为一个同质无向加权图,其中实体节点通过关系边连接,边的权重表示检测到的关系实例的归一化计数。给定这样的图,可以使用各种社区检测算法将图划分为社区,这些社区中的节点彼此之间的连接比与图中其他节点的连接更强。作者使用Leiden算法,因为它能够高效地恢复大规模图的层次社区结构。这个层次结构的每个级别都提供了一个社区划分,以互斥且全面覆盖的方式覆盖图的所有节点,从而实现分而治之的全局总结。

这一步输入的是基于前一步创建的同质无向加权图,输出社区划分后的结构图。

2.5 Graph Communities → Community Summaries

下一步是为Leiden层次结构中的每个社区创建类似报告的摘要,这种方法设计用于扩展到非常大的数据集。这些摘要本身就有独立的价值,可以用于理解数据集的整体结构和语义,甚至可以在没有具体问题的情况下,用于解析语料库。例如,用户可以浏览某一层级的社区摘要以寻找感兴趣的主题,然后跟随链接查看更低层级的报告,以获取每个子主题的详细信息。然而,这里我们专注于它们作为基于图的索引的一部分,用于回答全局查询的实用性。

社区摘要的生成方式如下:

  • 叶节点层级社区:叶节点层级社区的元素摘要(节点、边、协变量)按照优先级依次添加到LLM上下文窗口中,直到达到token限制。优先级如下:对于每个社区边缘,根据源节点和目标节点的综合度(即总体重要性)递减排序,依次添加源节点、目标节点、关联协变量和边缘本身的描述。

  • 高层级社区:如果所有元素摘要都能在上下文窗口的token限制内,则按照叶节点层级社区的方式处理并总结社区内的所有元素摘要。否则,按照元素摘要token数量递减顺序对子社区进行排序,并迭代地用子社区摘要(较短)替换其关联的元素摘要(较长),直到符合上下文窗口的限制。

这一步输入的是社区结构图,输出各个层级的社区摘要。

2.6 Community Summaries → Community Answers → Global Answer

以上步骤以图结构事先存储,实际用户查询时只需要查询合适的(C0,C1,C2,C3层级,从抽象到具体)节点和关系,以及社区摘要。

步骤是随机打乱并分块前一步的社区摘要(原本同一个摘要被放进不同块中);为每个块生成中间答案,给出帮助评分;按评分排序中间答案,不断选取高评分答案加入用户输入,最终生成全局答案。

这一步输入的是用户提问和社区摘要,输出全局答案。

3 评价标准

作者使用LLM评估器进行的对头比较指标如下:

  • 全面性(Comprehensiveness):答案在多大程度上提供了足够的细节来覆盖问题的所有方面和细节?
  • 多样性(Diversity):答案在提供不同观点和见解方面有多丰富和多样?
  • 赋能性(Empowerment):答案在多大程度上帮助读者理解主题并做出明智的判断?
  • 直接性(Directness):答案在多大程度上具体而清晰地回答了问题?

实验结果如下(数字代表横行胜过纵列的百分比):

这里的TS指的是2.6节打乱分块用的不是社区摘要,而是源文本;SS指的是NaiveRAG。

需要注意的是,尽管如QFS的总结性问题使用GraphRAG效果远远胜过NaiveRAG,但是面对针对性查询仍然是NaiveRAG更好。

标签:检索,社区,GraphRAG,一步,模型,摘要,LLM,文本,节点
From: https://www.cnblogs.com/Arcticus/p/18344606

相关文章

  • 2024年程序员必备:大模型入门书籍精选,畅销书单不容错过!
    在知乎上,"如何系统的入门大模型?"这一话题引爆了超过50万读者的热烈讨论。作为程序员,我们应当是最先了解大模型的人,也是率先成为了解大模型应用开发的人,到底如何入门大模型的应用开发?人邮君精心整理了一份2024年畅销的大模型书单。以大模型学习、人工智能基础为主题的书......
  • Stable Diffusion majicMIX_realistic模型的介绍及使用
    一、简介majicMIX_realistic模型是一种能够渲染出具有神秘或幻想色彩的真实场景的AI模型。这个模型的特点是在现实场景的基础上,通过加入一些魔法与奇幻元素来营造出极具画面效果和吸引力的图像。传统意义的现实场景虽然真实,但通常情况下缺乏奇幻性,而majicMIX_realistic模型就是为了......
  • 大模型应用,这些书不能错过!大模型入门到精通,非常详细收藏我这一篇就够了
    在这个信息爆炸的时代,人工智能正以前所未有的速度和规模渗透到我们生活的方方面面。其中,大模型应用作为AI领域的一大亮点,不仅在学术界引起广泛关注,更在工业界展现出巨大的应用潜力。从自然语言处理到图像识别,从数据分析到智能推荐,大模型以其强大的学习能力和泛化能力,不断......
  • 大模型书单指南:如何快速找到最适合你的那一本书?别找了就是这本!
    大模型的书这么多,该怎么选呢?本期书单就来教大家怎么快速地从众多大模型书中选到你想要的那一本!大模型基础大模型入门不可错过的一本书,就是这本大模型界的经典畅销书**《大规模语言模型》**!系统性强,内容适合初学者,如果你想知道如何构建一个大模型应用,系统了解大模型的构建......
  • 人工智能 | MetaLlama大模型
    llama大模型介绍我们介绍LLaMA,这是一个基础语言模型的集合,参数范围从7B到65B。我们在数万亿个Token上训练我们的模型,并表明可以专门使用公开可用的数据集来训练最先进的模型,而无需诉诸专有的和无法访问的数据集。特别是,LLaMA-13B在大多数基准测试中都优于GPT-3(175B),llama2......
  • 从苹果智能看端上大模型应用
    将生成式人工智能集成到边缘设备本身就是一个重大挑战,我们需要在智能手机和计算机有限的计算能力和内存范围内高效地运行高级模型。确保这些模型运行迅速,而不会耗尽电池寿命或使设备过热,端上的局限增加了大模型应用的复杂性。此外,保护用户隐私至关重要,需要AI在不依赖云服务器的情......
  • 检索 WooCommerce 客户的付款方式历史记录
    要检索WooCommerce客户的付款方式历史记录,你可以使用WooCommerceAPI或直接查询数据库。以下是使用WooCommerceAPI的示例代码:<?php//引入WooCommerceAPI类require_once('wp-content/plugins/woocommerce/includes/api/class-wc-api-client.php');//创建API客户端......
  • pymc和贝叶斯模型编程(2)
    pymc中的变分推断pymc和贝叶斯模型编程(2)。简介和安装简介PyMC是一个Python概率编程库,允许用户使用简单的PythonAPI构建贝叶斯模型,并使用马尔可夫链蒙特卡罗(MCMC)方法对其进行拟合。PyMC致力于使贝叶斯建模尽可能简单、轻松,让用户能够专注于他们的问题而不是方......
  • pymc和贝叶斯模型编程(1)
    pymc和贝叶斯模型编程(1)简介和安装简介PyMC是一个Python概率编程库,允许用户使用简单的PythonAPI构建贝叶斯模型,并使用马尔可夫链蒙特卡罗(MCMC)方法对其进行拟合。PyMC致力于使贝叶斯建模尽可能简单、轻松,让用户能够专注于他们的问题而不是方法。具有如下特性:......
  • 大模型爆卷,引发硅谷大厂打擂台赛的AI Agent到底是何方神圣?
    AIAgent是何方神圣?让比尔·盖茨在2023年预言:未来五年内有望正式迎来它,彻底改变人类的生产力与生活方式。让吴恩达教授在AIAscent2024演讲中高赞:今年得益于它的工作流的帮助,人工智能的能力范围将持续拓展,所有从事人工智能的人都应该关注这个令人兴奋的新兴趋势。它就......