今天为大家分享一篇提升GraphRAG检索精度的文章,该论文由埃默里大学发表。
GRAG: Graph Retrieval-Augmented Generation
论文地址:https://arxiv.org/pdf/2405.16506
论文概述
尽管检索增强生成(RAG)通过生成语言模型提升了响应的准确性和相关性,但在需要同时处理文本和拓扑信息的图结构场景中却显得不足。简单的RAG方法固有地忽略了文本图的结构复杂性,从而在生成过程中留下了关键缺陷。
为了解决这一问题,作者引入了图检索增强生成(GRAG),它通过强调子图结构的重要性显著提升了检索和生成过程。与仅专注于基于文本实体检索的RAG方法不同,GRAG高度重视图拓扑结构,这对于生成上下文和事实连贯的响应至关重要。
GRAG方法包括四个主要阶段:k-hop图(ego-graph)的索引、图检索、软剪枝以减轻无关实体的影响,以及基于剪枝后的文本子图生成。
GRAG的核心工作流是通过检索文本子图并进行软剪枝,能够有效识别相关的子图结构,同时避免了全面子图搜索(该搜索为NP难问题)带来的计算不可行性。
此外,作者提出了一种新的提示策略,能够无损地将文本子图转换为层次化的文本描述。在图多跳推理基准上的广泛实验表明,在需要对文本图进行多跳推理的场景中,GRAG方法显著优于当前最先进的RAG方法,并有效减少了虚假信息的产生。
核心内容
GRAG的架构如上图所示。具体可以分为四个阶段:
1. 索引与图检索:
索引 (Indexing):在这个阶段,所有的k-hop图(ego-graph)会被嵌入为图嵌入(graph embeddings),这些图表示与文本相关的拓扑结构。k-hop图是从给定的中心节点开始,延伸到k跳范围内的节点和边。通过索引,这些图结构被高效存储,供后续检索使用。
图检索 (Graph Retrieval):接下来,给定查询 q 后,系统会将查询向量与索引的图嵌入进行比较,选出与查询最相似的前N个子图。该过程使用余弦相似度来计算查询与图嵌入之间的匹配度。尽管已经选择了最相关的子图,但这些子图仍然可能包含无关的实体和边,这需要在后续阶段中处理。
2. 生成阶段:
生成 (Generation):在生成阶段,剪枝后的会被转换为文本标记(text tokens),然后输入到大型语言模型(LLM)的嵌入层和注意力层中。图中的文本信息被编码为序列形式,进入生成模型来推理最终的答案。这一步生成的是结合了文本和拓扑结构的回答。
3. 软剪枝:
软剪枝 (Soft Pruning):此阶段通过逐元素距离计算,裁剪出不相关的节点和边。系统会基于图节点和边的属性与查询的相关性,对节点和边进行缩放,从而实现节点和边的软剪枝。这个过程通过引入MLP(多层感知机)来进行节点和边的剪枝,确保剔除不相关的信息,但保留对回答有用的图结构。
4. 分层描述生成:
分层描述生成 (Hierarchical Description):在最终阶段,剪枝后的子图会被转化为分层的文本描述。这些描述同时保留了文本和图的拓扑信息,形成层次化的结构,反映出图的多跳推理逻辑。通过这种分层策略,系统能够从子图中提取出结构化的文本信息,从而保证生成的回答既上下文连贯,又在图结构上保持一致。
总结
GRAG方法通过四个主要阶段有效地结合了图结构信息和文本信息:
-
索引与检索阶段关注从图中找到与查询相关的子图;
-
软剪枝阶段则去除与查询无关的图节点和边;
-
生成阶段将剪枝后的图转化为语言模型可处理的输入,进行最终答案生成;
-
分层描述生成通过层次化方式将图结构映射为文本,从而保留了拓扑与语义信息,确保生成的内容更具一致性和连贯性。
这个流程的设计特别适用于需要多跳推理的场景,确保生成的答案不仅在语义上准确,而且符合图结构中的推理逻辑。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。