之前的文章已经深入探讨了 RAG(检索增强生成)。今天,我们要介绍一篇名为 Graph RAG 的新论文。大语言模型(LLM)问世后不久,RAG 就成为了生成式 AI 领域的热门话题。但这些系统并非没有挑战。虽然它提升了 LLM 的功能,同时也带来了一系列新问题,每个问题都需要独特的解决方案。去年以来,已经发展出多种策略,让 RAG 系统变得更稳定、更灵活。今天,我们同样努力地将介绍 Graph RAG。
RAG 在处理针对整个文本集的全局性问题时表现不佳,比如询问“数据集的主要主题是什么?”,因为这本质上是一个查询聚焦的摘要任务,而不是一个直接的检索任务。Graph RAG 正是为了解决这类问题而设计的。那么,让我们开始吧。
涵盖的主题:
- 介绍 RAG
- 为什么使用图?
- Graph RAG 的应用
- RAG 是什么?
- 将 RAG 应用于私有数据集
- 总结
介绍 RAG:
简而言之,RAG 就是为我们的大语言模型(LLM)提供额外上下文的技术,以生成更准确、更具针对性的回答。虽然 LLM 在公开可用的数据上训练得非常聪明,但它们缺乏回答特定问题所需的上下文。通过 RAG,我们能为它们提供解答我们问题的必要上下文。
RAG 是一种向我们的 LLM 插入新知识或能力的方式,但这种知识插入并不是永久的。另一种向 LLM 添加新知识或能力的方法是通过对特定数据进行细致调整(Fine Tuning)。
通过细致调整添加新知识相当复杂、困难、昂贵,并且是永久的。甚至,细致调整添加的新能力可能会影响它之前拥有的知识。在细致调整过程中,我们无法控制哪些权重会被改变,因此哪些能力会增强或减弱。
现在,我们选择细致调整、RAG 还是两者的结合,完全取决于我们面对的任务。没有一种方法能适用于所有情况。
- 将文档分割成均匀的块。
- 每个块是一段原始文本。
- 为每个块生成嵌入(例如,使用 OpenAI 嵌入、sentence_transformer),通过编码器并将其存储在数据库中。
- 寻找最相似的 Top-K 编码块,获取这些块的原始文本,并将其作为上下文与提示一起提供给生成器。
为什么使用图?
图,由节点(顶点)和边(连接)组成,自18世纪以来就在数据表示中扮演着核心角色。它们在现代 AI 中尤为重要,理由有几个:
知识图谱用于存储关系:
知识图谱表示现实世界实体及其相互关系。在现实世界中,数据的自然排列往往就是图形结构的。比如,我们在社交媒体上形成的联系就遵循图形结构。
图有两个基本组成部分,节点代表实体(人、地点、事件),边代表关系,通常带有描述这些关系性质的标签。例如,用节点代表 Susannah 和 Salesforce,并通过一个标有“工作于”的边连接它们来表示“Susannah 在 Salesforce 工作”。
知识图谱帮助机器理解和模拟语义,提高 AI 响应的质量,并增强预测模型,如推荐引擎。
数据图用于在 AI 规模下存储和检索:
数据图存储复杂关系,并能高效检索数据。这里,节点代表数据对象,边代表这些对象之间的关系。例如,数据云中的数据图将层次关系简化为单一记录,提高查询处理速度。这种结构也有助于高效地实时数据检索,这对于需要快速响应大量数据集的许多 AI 应用至关重要。
Graph RAG 的应用是什么?
Graph RAG(图检索增强生成)是一种先进的方法,将基于图的数据结构与检索增强生成技术结合起来,以增强语言模型的能力。Graph RAG 旨在对规模化的私有文本库进行问答,能够处理用户问题的普遍性和需要索引的源文本数量。Graph RAG 使用 LLM 构建基于图的文本索引,然后利用它来回答全局性的问题。该过程分为两个阶段:
- 从源文档中提取实体知识图谱。
- 为所有紧密相关的实体群组预生成社区摘要。
给定一个问题,每个社区摘要用于生成部分回答,然后将所有部分回答汇总成最终用户的回答。
对于数据集规模在 100 万词元范围内的全局性问题,该论文显示,Graph RAG 在生成答案的全面性和多样性方面,相比于基础 RAG 模型有显著提升。
Graph RAG 是什么?
Graph RAG 是一个两步骤过程:首先,通过对私有数据进行索引创建由 LLM 派生的知识图谱。这些图谱作为 LLM 的记忆表示,可以被后续步骤用于更有效的检索。
系统的第二部分是利用这些预建索引的 LLM 协调机制,创建了一个更优的 RAG 流程,能够一次性理解整个数据集。
Graph RAG 特别实现了两件事:
- 提高搜索相关性。
- 实现可能需要非常大上下文的新场景。例如,发现数据趋势、进行摘要等。
它是如何做到的?
源文档 → 文本块
- 粒度:将源文档的输入文本分割成块。
- 权衡:更长的块需要更少的 LLM 调用,但可能因为较长的上下文窗口而降低召回率。
- 示例:在 HotPotQA 数据集上,600 词元的块大小提取的实体引用几乎是 2400 词元块大小的两倍。
文本块 → 元素实例
- 目标:从文本块中识别和提取图节点和边。
- 过程:使用 LLM 提示识别实体和关系,输出限定元组。
- 定制化:用特定领域的少数示例来定制提示。
- 效率:多轮“收获”确保在不牺牲块大小的情况下检测到更多实体。
元素实例 → 元素摘要
- 摘要:LLM 抽象并总结文本中的实体、关系和主张。
- 处理重复:尽管存在实体引用的潜在不一致性,但由于检测到密切相关的实体及其摘要,该方法具有韧性。
元素摘要 → 图社区
- 图建模:创建一个无向加权图,其中节点是实体,边是关系。
- 社区检测:使用 Leiden 算法将图分割成层次化社区,以实现高效的全局摘要。
图社区 → 社区摘要
- 摘要创建:为每个社区生成报告式摘要。
- 实用性:摘要有助于理解数据集的全局结构和语义,辅助回答全局查询。
社区摘要 → 社区回答 → 全局回答
- 查询处理:使用社区摘要生成回答。
- 中间回答:将摘要分成块,LLM 根据帮助度分数生成回答。
- 最终回答:将得分最高的中间回答合并成最终的全局回答。
将 RAG 应用于私有数据集
为了展示 GraphRAG 的有效性,研究人员提供了一个示例案例,我们从使用新闻文章中的暴力事件信息(VIINA)数据集开始进行调查。由于其复杂性和存在不同观点及片面信息,选择了这个数据集。这是一个足够新的、不包括在 LLM 基础模型训练中的现实世界测试案例。
我们从 2023 年 6 月的俄罗斯和乌克兰新闻来源的新闻文章开始,翻译成英文,以此创建我们将进行基于 LLM 检索的私有数据集。数据集的规模远远超出了 LLM 上下文窗口的容量,因此需要采用 RAG 方法。
我们首先进行一个探索性查询,将其提交给基线 RAG 系统和我们的新方法,GraphRAG:
查询:“Novorossiya 是什么?”
在这些结果中,我们可以看到两个系统都表现良好——突出显示了基线 RAG 表现良好的查询类型。让我们尝试一个需要连接点的查询:
查询:“Novorossiya 做了什么?”
基线 RAG 无法回答这个问题。查看插入到上下文窗口的源文档(图 1),没有文本段讨论 Novorossiya,导致这一失败。
相比之下,GraphRAG 方法发现了查询中的一个实体,Novorossiya。这使得 LLM 能够在图中定位自己,并产生了一个包含原始支持文本链接的优越回答。例如,下面的图 2 显示了 LLM 用于生成声明“Novorossiya 被涉嫌计划炸毁 ATM 机”的确切内容。我们看到了 LLM 用来支持特定银行是 Novorossiya 目标的断言的原始源文档的片段(经过英文翻译),通过图中存在的两个实体之间的关系。
通过使用 LLM 生成的知识图谱,GraphRAG 大大改进了 RAG 的“检索”部分,用更高相关性的内容填充上下文窗口,从而获得更好的答案并捕获证据来源。
能够信任并验证 LLM 生成结果的重要性始终存在。我们关心结果是否事实正确、连贯,并准确代表源材料中的内容。GraphRAG 提供了证据来源或源定位信息,因为它生成每个响应。拥有每个断言的引用来源也使人类用户能够快速、准确地直接针对原始源材料审计 LLM 的输出。
结论
这个想法看起来很酷,但其成功取决于 LLM 首先能够多好地提取关系,同时并非所有数据都是或可以以图形结构展示,这样的考虑会产生什么影响,尚待观察。
程序员为什么要学大模型?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
事实上,抢你饭碗的不是AI,而是会利用AI的人。
继科大讯飞、阿里、华为
等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?
与其焦虑……
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。
针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、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大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓