链载Ai

标题: 【RAG】GraphRAG开源:查询聚焦摘要的图RAG方法 [打印本页]

作者: 链载Ai    时间: 3 小时前
标题: 【RAG】GraphRAG开源:查询聚焦摘要的图RAG方法

前言

传统的 RAG 方法在处理针对整个文本语料库的全局性问题时存在不足,例如查询:“数据中的前 5 个主题是什么?”

对于此类问题,是因为这类问题本质上是查询聚焦的摘要(Query-Focused Summarization, QFS)任务,而不是传统的显式检索任务。

Graph RAG 通过使用 LLM 构建基于图的文本索引,从源文档构建知识图谱。通过构建知识图谱,能够将复杂的、大规模文本数据集转化为易于理解和操作的知识结构,以便更好地理解实体(如人物、地点、机构等)之间的相互关系。

一、方法

1.1 源文档分块

该步骤是 Graph RAG 流程的基础,它决定了后续构建知识图谱和生成摘要的质量。主要需要考虑的就是源文档的分割粒度(《【RAG】Dense X Retrivel:合适的检索粒度对RAG的重要性(浅看命题粒度的定义及分解方法)》),需要决定输入文本从源文档中提取出来后,应该以何种粒度分割成文本块以供处理。这个决策会影响到后续步骤中 LLM 提取图索引元素的效率和效果。块大小的主要影响如下:

上图展示了在 HotPotQA 数据集上,使用不同大小的文本块(600、1200、2400 tokens)和 通用实体提取提示(entity extraction prompt)与 gpt-4-turbo 进行单次提取时,检测到的实体引用数量的变化。结果表明,使用较小的文本块(600 tokens)能够提取出几乎是使用较大文本块(2400 tokens)两倍的实体引用。

1.2 信息抽取(实例提取)

该步骤是构建图索引的关键环节,它确保了从文本数据中提取出有用的结构化信息(KG)(识别并提取源文本中每个文本块的图节点和边的实例),为后续的社区检测和摘要生成打下了基础。

方法:

上图中每个圆圈代表一个实体(例如,一个人、一个地点或一个组织),实体大小表示该实体具有的关系数量,颜色表示相似实体的分组。颜色分区是一种建立在图形结构之上的自下而上的聚类方法,它使我们能够回答不同抽象层次的问题。

1.3 实例提取->实例摘要

使用 LLM 提取实体、关系和声明的描述,这本身就是一种抽象摘要的形式。LLM 需要能够创建独立有意义的摘要,这些摘要可能暗示了文本中未明确陈述的概念(例如,隐含的关系)。通过摘要化过程,能够将大量文本信息浓缩成更加简洁、易于处理的格式,这有助于提高后续处理步骤的效率。并且,在处理长文本时,实例摘要有助于避免信息在大型语言模型的长上下文中被忽略或丢失的问题。

1.4 实例摘要->图社区

图模型构建-同质无向加权图:将实例摘要阶段得到的信息构建成一个同质无向加权图。在这个图中,实体作为节点,它们之间的关系作为边。边的权重可以表示为检测到的关系实例的归一化计数,这有助于反映关系的强度或频率。

社区检测算法

1.5 图社区到社区摘要

为每个社区创建报告式的摘要,这些摘要独立于其他社区,但共同构成了对整个数据集全局结构和语义的理解。社区摘要本身对于理解数据集的全局结构和语义非常有用,可以作为在没有具体问题时对整个语料库进行探索和理解的工具。

1.6 社区摘要到社区答案再到全局答案

二、实验

原文使用了两个大规模数据集来验证Graph RAG方法的有效性:一个包含1669个文本块的播客转录数据集(约100万个token)和一个包含3197个文本块的新闻文章数据集(约170万个token)。相当于10本小说。

通过与naive RAG和全局文本摘要方法的比较,GraphRAG在全面性和多样性上优势明显,尤其是在使用8k tokens上下文窗口时,测试的最小上下文窗口大小(8k)在所有比较中普遍表现更好,尤其是在全面性上(平均胜率为58.1%),同时在多样性(平均胜率=52.4%)和授权性(平均胜率=51.3%)上与更大的上下文尺寸表现相当。

还有一个私有数据集上的实验,链接如下:https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/

参考文献







欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5