专栏名称: 顶层架构领域
专注核心架构领域知识、经典干货总结、技术领域趋势跟踪,以通俗易懂的方式传播——复杂的事简单化
目录
相关文章推荐
江南都市报  ·  俄罗斯天然气设施被炸毁 ·  4 小时前  
江南都市报  ·  俄罗斯天然气设施被炸毁 ·  4 小时前  
知产宝  ·  综合案例 | ... ·  昨天  
参考消息  ·  武契奇:如果消息属实,我愿意辞职 ·  2 天前  
知识产权那点事  ·  公安部公布依法严厉打击侵权假冒犯罪维护消费者 ... ·  2 天前  
51好读  ›  专栏  ›  顶层架构领域

微软 GraphRAG 与 传统 RAG 架构设计精髓

顶层架构领域  · 公众号  ·  · 2024-07-11 08:30

正文

点击上方 蓝色 顶层架构领域 ”,关注精彩与你分享

在数据洪流不断涌来的今天,如何高效且精准地从浩瀚的信息海洋中提炼出有价值的资讯,成为了自然语言处理领域待解决的关键问题。传统的检索增强生成(RAG)架构,以其独特的检索与生成结合的方式,在一定程度上满足了这一需求,为信息处理带来了便捷。然而,随着应用场景的复杂化,传统RAG在处理全局性、深层次语义信息上的局限性逐渐显现。

正是在这样的背景下,微软创新性地推出了GraphRAG(图的检索增强生成)架构,它不仅保留了传统RAG架构中的精华部分——即快速检索与生成高质量响应的能力,更在此基础上引入了知识图谱这一革命性的技术元素。通过精心构建的知识图谱,GraphRAG实现了对信息结构的深度挖掘与全局性把握,使得其在处理复杂语义关系和多主题问题时展现出前所未有的优势。下面本文将针对 GraphRAG 与 传统 RAG 架构设计分别进行分析。

一、传统 RAG 架构设计思想

1、 文档编码
传统RAG首先会对输入的文档进行预处理,如分词、去除停用词等。接着,利用自然语言处理(NLP)技术,如词嵌入或Transformer模型,将文档中的每个词或短语转换为高维向量,形成文档的向量表示。
2、 信息检索
在文档编码完成后,RAG架构会利用这些向量在已有的知识库中进行相似度计算,找到与输入文档最相关或最匹配的信息。知识库可以包括预训练的模型、外部数据库、历史问答对等。
3、 融合生成
检索到相关信息后,RAG架构会将这些信息与原始输入文档进行融合。融合的方法可以是通过某种权重机制、注意力机制等,使得原始文档与检索到的信息能够相互补充。最后,基于融合后的信息,RAG架构会生成相应的响应或输出。

二、微软 GraphRAG架构设计思想

1、 知识图谱构建
GraphRAG架构的核心在于其知识图谱的构建。 微软利用大型语言模型(LLM)从源文档中提取实体、关系和属性等信息。这些信息被组织成一个结构化的知识图谱,图谱中的节点代表实体,边代表实体之间的关系。
2、 社区检测与摘要
在知识图谱构建完成后,GraphRAG会使用社区检测算法(如Leiden算法等)来识别图谱中紧密相关的实体组(社区)。 每个社区代表一个特定的主题或领域,GraphRAG会为每个社区生成一个摘要,这个摘要能够概括该社区的主要内容或特点。
3、 查询聚焦生成
当用户输入查询时,GraphRAG会根据查询内容在知识图谱中查找相关的社区和摘要。GraphRAG会基于这些相关的社区和摘要生成部分响应,每个响应都针对查询中的某个方面或主题。最后,GraphRAG会将所有相关的部分响应进行汇总和整合,形成一个完整的全局答案。
如上这是论文的一个截图,描述了 Graph RAG 处理流程。

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

三、微软 GraphRAG 与传统 RAG 架构设计对比分析

全局性 :传统RAG更侧重于局部信息的匹配和融合,而GraphRAG通过知识图谱和社区检测机制能够捕获全局信息,提供更全面、准确的回答。
结构化表示 :GraphRAG使用知识图谱来表示信息,这种结构化的表示方式使得信息更加清晰、易于理解和推理。而传统RAG则更依赖于向量序列来表示信息,基线 RAG 难以将各个点连接起来。
性能优势 :GraphRAG的模块化设计使得在索引和查询时能够并行处理多个社区和摘要,提高了处理效率。

四、GraphRAG 系统的简单使用示例

环境要求:
Python 3.10-3.12






请到「今天看啥」查看全文