GraphRAG: 结合知识图谱、RAG和QFS技术,来提高模型对全局含义的理解

大家好,今天与大家分享一篇研究论文。

这篇论文提出了一种基于图的Retrieval-Augmented Generation (RAG)方法,用于对整个文本语料库进行Query-Focused Summarization (QFS)。该方法很好地结合了知识图谱生成、RAG和QFS技术,为理解文本语料库的整体层面的意思提供了新思路。

1. 基本信息

  • 论文题目:From Local to Global: A Graph RAG Approach to Query-Focused Summarization

  • 作者:Darren Edge, Ha Trinh, Newman Cheng, Joshua Bradley, Alex Chao, Apurva Mody, Steven Truitt, Jonathan Larson

  • 作者研究单位:Microsoft Research, Microsoft Strategic Missions and Technologies, Microsoft Office of the CTO

  • 代码链接:https://aka.ms/graphrag

2. 介绍

现有的Retrieval-Augmented Generation (RAG)方法能够从外部知识源中检索相关信息,使Large Language Models (LLMs)能够回答关于私有或未见过的文档集合的问题。但是,当回答全局性问题时,比如"数据集的主要主题是什么?",RAG方法往往无法给出满意的答案,因为这本质上是一个Query-Focused Summarization (QFS)任务,而非单纯的信息检索任务。另一方面,现有的QFS方法也难以扩展到典型RAG系统所索引的海量文本。为了结合这两类方法的优势,作者提出了Graph RAG方法,用于私有文本语料库的问答,该方法能够适应不同普适性的用户问题和不同规模的源文本数据。

3. 方法

Graph RAG方法利用LLM分两个阶段构建基于图的文本索引:

  1. 从源文档中提取实体知识图谱

  2. 为相关的实体组预生成Community Summaries

给定一个问题,每个Community Summary被用来生成一个局部答案,然后所有局部答案再次被汇总为给用户的最终答案。

Graph RAG的主要流程包括以下步骤(见Figure 1):

  1. 从源文档中提取文本块(左第一行)。作者讨论了文本块粒度的选择对后续图索引质量的影响。较长的文本块需要更少的调用,但由于LLM上下文窗口的限制,可能导致信息丢失和召回率下降。因此,需要在召回率和精确率之间进行权衡。

  2. 使用LLM提示从文本块中提取图元素实例(节点、边、协变量)(左第2/3行)。作者设计了多部分LLM提示,先识别文本中的所有实体,包括实体名称、类型和描述,然后识别相关实体之间的关系,包括源实体、目标实体和关系描述。Prompt可以根据领域进行定制,例如针对科学、医学、法律等专业领域,可以使用特定的few-shot示例来提高提取质量。作者还引入了"gleaning"的概念,通过多轮提取来提高召回率,同时避免引入噪声。

  3. 使用LLM汇总图元素实例(左第4行),生成图元素摘要。在这一步,LLM已经提取出了隐含在源文本中的知识(如隐含关系),形成了独立的概念摘要。接下来,需要对所有指向同一图元素(实体、关系、协变量)的实例进行汇总,生成统一的描述性文本。**值得注意的是,由于LLM提取的实体引用可能存在不一致的情况,导致图中出现重复节点。**但只要所有变体与一组共同的密切相关实体有足够的连接,Graph RAG的整体方法就具有较强的鲁棒性。

  4. 使用社区检测算法(如Leiden)对图索引进行分区,得到图社区(右第4行)。图索引可以建模为无向加权图,边表示检测到的关系实例数的数量。在这种图上,可以使用各种社区检测算法进行分区,得到节点间连接更紧密的社区。Leiden算法能够有效地检测大规模图的层次社区结构,每一层社区划分都以互斥且完全穷尽的方式覆盖了图的节点,从而支持分治的全局摘要。

  5. 使用LLM生成Community Summaries(右第3行)。Community Summaries本身就是对数据全局结构和语义的高度概括,即使没有问题,用户也可以通过浏览不同层次的Community Summaries来理解语料库。Community Summaries的生成方式需要能够扩展到非常大的数据集。子社区的summaries通过优先级将社区元素摘要(节点、边、协变量)迭代添加到LLM上下文窗口中,直到达到token限制。更高级别的社区摘要则迭代用子社区摘要替换元素摘要来压缩上下文,直到适合上下文窗口。

  6. 对于给定的查询,使用Community Summaries生成Community Answers(右第2行)。根据社区在层次结构中的级别,Community Summaries用于以不同的方式生成最终答案。无论使用哪个级别,基本思路都是随机打乱Community Summaries并划分为指定大小的块,确保相关信息分布在不同的上下文窗口中。然后并行地从每个块中生成中间答案,并附上一个指示其对目标问题有多大帮助的打分。

  7. 使用查询相关的摘要对Community Answers进行汇总,生成最终答案(右第1行)。中间Community Answers按照相关性打分降序排列,迭代添加到一个新的上下文窗口中,直到达到token限制。这个最终上下文用于生成返回给用户的全局答案。

4. 实验发现

作者在两个数据集上评估了Graph RAG方法:

  1. Podcast transcripts:由Kevin Scott与其他技术领导者的播客对话记录编译而成。

  2. News articles:由2013年9月至2023年12月发表的新闻文章组成的数据集。

作者从全面性(comprehensiveness)、多样性(diversity)和赋能(empowerment)三个维度,评估了Graph RAG和几种基线方法的质量。实验结果表明:

  • 所有的全局方法在全面性和多样性上均好于一般的RAG方法。

  • 使用中间层次和低层次社区摘要的Graph RAG在这些指标上表现好于源文本摘要。

  • 对于频繁的全局查询,使用根级社区摘要(C0)的Graph RAG是一种高效的方法,与其他全局方法相比,它在全面性(72%胜率)和多样性(62%胜率)上具有优势,而token成本却大幅降低。

5. 结论

本文提出了一种全局Graph RAG方法,将知识图谱生成、RAG和QFS技术融为一体,以支持文本语料库的整体理解。初步评估表明,与一般的RAG基线相比,该方法在答案的全面性和多样性方面有显著改进,并且好于全局但无图索引的方法。对于需要对同一数据集进行多次全局查询的场景,基于实体图索引的根级社区摘要提供了一种优越的数据索引方式,它不仅好于RAG,而且以一小部分的token成本达到了与其他全局方法相当的性能。

最后作者提供了一个开源的、基于Python的实现,支持全局和局部的Graph RAG方法,代码即将在https://aka.ms/graphrag 上发布。

如何系统的去学习大模型LLM ?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值