【LLM之RAG】GraphRAG论文阅读笔记

news2024/11/15 10:57:19

研究背景

本文探讨了大型语言模型(LLM)如何通过从外部知识源检索相关信息来回答关于私有或之前未见过的文档集合的问题。特别指出,传统的检索增强生成(RAG)系统在处理全局问题时存在局限性,例如问整个文本语料库的主题是什么,因为这些问题本质上是查询焦点的摘要(QFS)任务,而不仅仅是一个显式的检索任务。

研究目标

论文的目标是结合RAG和传统QFS方法的优势,提出一种图RAG方法,用于处理私有文本语料库上的问题回答。该方法旨在扩展用户问题的普遍性和需要索引的源文本数量。

相关工作

RAG相关工作

朴素RAG:这是最基本的RAG形式,涉及将文档转换为文本块,将这些块嵌入到向量空间中,然后根据查询的相似性检索最近的文本块。这种方法的主要问题是处理大数据集时的效率和效果有限。
Advanced RAG:
预检索、检索、后检索策略:这些策略旨在克服Naïve RAG的局限性,通过更精细的数据处理和查询响应机制提高性能。
Modular RAG Systems:这些系统采用迭代和动态的检索与生成周期,通过不断的检索和响应生成来逐步优化答案。
自我记忆(Self-memory):用于增强检索的文本生成,有助于未来的生成周期。
并行生成(Parallel Generation):从社区摘要中并行生成回答,是一种迭代或联邦式的检索生成策略。

Graphs 和 LLMs

本节强调了图技术在增强LLM功能方面的潜力。图不仅能作为知识的结构化表示,还能通过各种形式与LLM交互,以提高信息检索和生成的准确性和相关性。
知识图构建和补全:使用LLM来创建和完善知识图谱。这包括从文本中提取实体和关系,并使用模型来预测和验证这些关系的准确性。
因果图的提取:利用LLM从文本中提取因果关系,并构建反映这些关系的图。这种方法尤其适用于需要理解复杂事件和动态的领域,如政策分析和科学研究。
知识图索引(KAPING):在这种模式中,图结构被用作索引来支持检索增强的文本生成。
图检索(G-Retriever):在图结构中检索信息以响应查询,特别是涉及复杂关系和多步骤推理的查询。

方法论

数据处理

本研究首先从源文档中提取文本块,然后使用LLM的提示来识别和提取图索引的各种元素,包括实体和它们的关系。这些文本块被进一步处理以识别图节点和边缘的实例。
比如源代码中抽取实体和关系的prompt如下:

-目标-
给定一个可能与此活动相关的文本文档和实体类型列表,从文本中识别出这些类型的所有实体以及已识别实体之间的所有关系。

-步骤-
1. 识别所有实体。对于每个已识别的实体,提取以下信息:
- 实体名称:实体名称,大写
- 实体类型:以下类型之一:[{entity_types}]
- 实体描述:实体属性和活动的全面描述
格式化每个实体,在开头和结尾处添加括号,例如 ("entity"{{tuple_delimiter}}{{tuple_delimiter}}{{tuple_delimiter}}{{tuple_delimiter}}{entity_description>)
例如:("entity"{{tuple_delimiter}}"Microsoft"{{tuple_delimiter}}"organization"{{tuple_delimiter}}"Microsoft is a technology company")

2. 从在步骤 1 中确定的实体,确定所有 *明显相关* 的 (source_entity, target_entity) 对。
对于每对相关实体,提取以下信息:
- source_entity:步骤 1 中确定的源实体的名称
- target_entity:步骤 1 中确定的目标实体的名称
- relationship_description:解释您认为源实体和目标实体相互关联的原因
- relationship_strength:1 到 10 之间的整数分数,表示源实体和目标实体之间关系的强度
格式化每个关系,在开头和结尾处添加括号,例如 ("relationship"{{tuple_delimiter}}{{tuple_delimiter}}{{target_entity>{{tuple_delimiter}}{{tuple_delimiter}}{{relationship_description>}{{tuple_delimiter}}{{relationship_strength>)
例如: ("关系"{{tuple_delimiter}}"公司 A"{{tuple_delimiter}}"人员 A"{{tuple_delimiter}}"公司 A 目前归人员 A 所有"{{tuple_delimiter}}8)

3. 以 {language} 形式返回输出,作为步骤 1 和 2 中确定的所有实体和关系的单个列表。使用 **{{record_delimiter}}** 作为列表分隔符。如果您必须翻译,只需翻译描述,无需其他内容!

4. 完成后,输出 {{completion_delimiter}}。

-真实数据-
######################
entity_types:{entity_types}
text:{input_text}
######################
output:

解决方案

Graph RAG 的全局方法,结合了知识图谱生成,检索增强生成 (RAG) 和以查询为中心的摘要 (QFS),以支持人类在整个文本语料库上进行语义建构。

其工作的pipline如下:
在这里插入图片描述
(1)源文档到文本块:文档被分割成更小的文本块,这一步骤关键在于确定分割的粒度。这些文本块将被用作后续步骤中图节点和边缘的基础。
(2)文本块到元素实例:使用多部分LLM提示从每个文本块中识别和提取图节点和边缘的实例。这些实例将作为图索引的基础元素,包括实体及其关系。
(3)元素实例到元素摘要:将元素实例转换为描述性文本块,这一步骤依赖于LLM的摘要能力,将文本块转化为可以独立表达的概念。
(4)元素摘要到图社区:构建的图索引被模型化为一个由节点和边缘构成的加权无向图。使用社区检测算法如Leiden算法,将图分割成模块化的社区,每个社区包含密切相关的节点。
(5)图社区到社区摘要:每个社区都生成一份摘要报告,这些摘要在解答全局查询时极为关键,它们提供了数据集的全局结构和语义理解。
(6)社区摘要到社区回答再到全局回答:根据用户的查询,使用社区摘要生成最终答案。这一多阶段过程涉及将社区摘要随机化分块,并对每个块生成中间回答,最后将所有相关的部分回答汇总成一个全局回答。

实验

实验设计

数据集:从两个真实世界数据集(播客记录和新闻文章)描述中使用LLM生成了多样化的活动中心感知问题集。数据集信息如下:

数据描述
Podcast transcripts来自微软首席技术官Kevin Scott与其他技术领导者之间的播客对话。
News articles从2013年9月到2023年12月发布的新闻文章,涵盖娱乐、商业、体育、科技、健康和科学等多个类别。

查询生成:使用一个以活动为中心的方法来自动生成这样的问题:给定一个简短的数据集的描述,我们要求LLM识别N个潜在用户和N个不同的任务,然后对于每个(用户、任务)组合,我们要求LLM生成N个问题,需要理解整个语料库。对于我们的评估,N = 5的值导致每个数据集有125个测试问题。

评估指标:

  • 综合性(Comprehensiveness):这个指标衡量回答是否全面覆盖了查询的所有方面。综合性高的回答能够详细解释问题的各个组成部分,提供完整的信息和背景。
  • 多样性(Diversity):多样性指标评估回答中观点和信息的丰富程度。一个多样化的回答将展示多种观点,涵盖广泛的相关话题和不同的解释方式。
  • 赋能性(Empowerment):赋能性衡量回答在多大程度上帮助用户理解问题背景,并对相关话题做出明智的判断。高赋能性的回答提供深入分析,使用户能够根据所提供的信息采取行动或做出决策。
  • 直接性(Directness):直接性指标评估回答是否直接且精确地针对用户的查询。高直接性的回答避免了不必要的绕弯子,直接解决用户的疑问。

实验结论

结果显示,Graph RAG在综合性和多样性方面均优于朴素RAG基线,并且在这些度量上也优于全局文本总结方法。Graph RAG在处理大规模文本集时展现了其高效性和优越性。
在这里插入图片描述
局限性:当前评估只涉及特定类型的问题和两个100万字节的数据集。此外,尚有一些细化方法和扩展场景在未来可以进一步探索。

参考资料

  • 论文
  • 代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2038736.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

四种应用层协议——MQTT、CoAP、WebSockets和HTTP——在工业物联网监控系统中的性能比较

目录 摘要(Abstract) 实验设置 实验结果 节选自《A Comparative Analysis of Application Layer Protocols within an Industrial Internet of Things Monitoring System》,作者是 Jurgen Aquilina、Peter Albert Xuereb、Emmanuel Francalanza、Jasmine Mallia …

java计算机毕设课设—CRM客户关系管理系统((附源码、文章、相关截图、部署视频)

这是什么系统? java计算机毕设课设—CRM客户关系管理系统((附源码、文章、相关截图、部署视频) CRM客户关系管理系统是一种基于Java开发的系统,旨在帮助企业更有效地管理与客户的互动。该系统通过优化客户信息的组织和分析,增强…

【Electron】npm安装Electron项目失败报错问题和解决办法

前言 闲来无事,便想着研究一下Electron,没想到安装直接就卡住了 问题 npm ERR! RequestError: Hostname/IP does not match certificates altnames: Host: npm.taobao.org. is not in the certs altnames: DNS:*.tbcdn.cn, DNS:*.taobao.com, DNS:*.al…

pygame小游戏

代码存在一些bug,感兴趣可自行修改,游戏运行后玩法与吃金币游戏类似。(代码及结果比较粗糙,仅供参考) 注:(图片、音乐、音效文件老是上传上传不上,想要可私,也可以自己找…

CentOS 7 安装详细教程

​ 大家好,我是程序员小羊! 前言: CentOS 7 是一个稳定的企业级 Linux 发行版,广泛用于服务器环境。CentOS 7 是基于 Red Hat Enterprise Linux (RHEL) 构建的企业级 Linux 发行版,提供免费的、开源的操作系统&#xf…

JVM-Java虚拟机-一文读懂-小白秒懂,老鸟进阶,必考面经

目录 JVM定义 Java Virtual Machine组成结构 各部分详解 0、类加载器 1、栈是运行的单位,堆是存储的单位 2、栈中存放各个栈帧 3、方法区——多线程共享区域 JVM定义 运行Java程序的平台内存结构、 垃圾回收、 类加载、 性能调优、 JVM 自身优化技术、 执行引…

【Web前端】vue3整合eslint约束代码格式

一、整合eslint 整合eslint的两种方式: 在已有项目中整合eslint:# 安装eslint及其vue插件即可 npm i -D eslint eslint-plugin-vue创建项目时整合eslint: 提示 是否引入ESLint用于代码质量检测 时选择 是# 创建vue3项目 npx create-vue # 下…

sqlserver同一数据库还原实例冲突可以用[文件和文件组]来备份解决

1.将数据库恢复模式改为完整 2.备份 在数据库右键--任务--备份 选择文件和文件组 选择位置备份 3.还原 在数据库上右键--还原文件和文件组 或者还原时修改实例名称(没试过)

2024年8月14日(haproxy)

一、haproxy简介 官网https://www.haproxy.com/ 自由及开放源代码软件 HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负我均衡,以及基TCP和HTTP的应用程序代理。 HAProxy特别适用于那些负载特大的veb站点,这些站点通常又需要会活保或七层处理。HAProxy运…

【Qt】QWidget的geometry属性

geometry,意思是“几何”。可以将geometry视为是四个属性的统称。 x:横坐标 y:纵坐标 width:宽度 height:高度 API说明 geometry() 获取到控件的位置和尺⼨. 返回结果是⼀个 QRect, 包含了 x, y, width, height. 其中…

jar包扫描不到,idea如何通过Project Structure设置

目录 一、进入Project Structure二、添加你的项目进来三、手动添加依赖 很多时候jar包文件已经存在,但是无法使用,需要通过Project Structure设置 一、进入Project Structure 选择Modules->点击 二、添加你的项目进来 一直next,最后点…

论文阅读笔记:ST-MetaNet-2

目录 预备知识 定义1:城市交通 定义2:Geo-graph属性 问题1 方法 RNN 元学习器 元图注意力网络 元循环神经网络 预备知识 在本节中,我们介绍定义和问题陈述。为简洁起见,我们在表1中提供了一个注释表。 假设有个位置&…

Java - API

API全称"Application Programming Interface",指应用程序编程接口 API(JDK17.0)链接如下 : Overview (Java SE 17 & JDK 17) (oracle.com)https://docs.oracle.com/en/java/javase/17/docs/api/中文版: Java17中…

C++内存泄露检测-Windows平台VLD

一、安装Visual Leak Detector 下载地址:https://kinddragon.github.io/vld/ 安装过程就一路next即可,如果自定义安装目录的话,需要记住安装的目录,默认目录 C:\Program Files (x86)\Visual Leak Detector,这个目录下…

[独家原创]基于(牛顿拉夫逊)NRBO-TCN多变量回归预测(多输入单输出) Matlab代码

[独家原创]基于(牛顿拉夫逊)NRBO-TCN多变量回归预测(多输入单输出) Matlab代码 NRBO优化的超参数为:卷积核个数、正则化系数、初始化学习率 1.程序已经调试好,无需更改代码替换数据集即可运行!!!数据格式为excel&…

色轮在数据可视化中的应用

在数据可视化中,色彩的运用不仅仅是为了美观,更是为了传达信息、区分数据和提升图表的易读性。本文探讨色轮及其色彩公式的应用,帮助大家更好地运用色彩来提升数据可视化的效果。 1、色轮的基础概念 色轮是一个用于表示颜色之间关系的图形工…

Linux自动构建工具——make/makefile

目录 一、make/makefile是什么? 二、深入了解 1.基本命令 提示:以下是本篇文章正文内容,下面案例可供参考 一、make/makefile是什么? 在Linux中make是一条指令,makefile是文件。make的核心功能就是读取一个或者多个…

解决问题:Arcgis10.8“数据“-“导出至CAD“时就卡死了

问题现象:我们在使用Arcgis10.8软件,执行 “数据导出至CAD”操作时,会出现卡死的情况,步骤如下图所示: 解决方案:在菜单栏依次选择“地理处理”-“地理处理选项”,然后在“后台处理”和“发生错…

黄金市场展望:CPI数据引发关注,技术面看涨

亚市现货黄金行情 8月14日周三,亚市盘中现货黄金价格小幅下跌,目前交投在2462美元/盎司附近。投资者将重点关注即将公布的美国消费者物价指数(CPI)数据,预计这将对黄金市场产生重大影响。 美联储政策预期与CPI数据 市场…

IIC电路详细设计

下面我们来聊一聊IIC。 首先要知道,为什么IIC需要接上拉电阻?这里就需要承接到上一部分的内容:三极管。 注意到这样一句话:「连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能 」,这里就涉及到「漏极/集电极开路」、「上拉电阻」和「线与」两个概念…