RAG 的魔力在于,它能够让 AI 准确的找到所需的信息,并且通过 LLM 的语言能力将其巧妙的编入回答中。
RAG 代表了自然语言处理领域的一项强大进步,有效地融合了生成模型和检索模型的优势。
当一个 RAG 系统遇到查询时,它能够熟练地从知识库中检索相关信息,并将这些数据无缝地整合到回答中,从而增强答案的准确性和丰富性。
而 GraphRAG 则是 RAG 的更高级演进。
本文将介绍 GraphRAG 的结构和功能,以及 GraphRAG 相对于传统 RAG 的优势。
同时,本文还将探索 GraphRAG 在各个行业和研究领域的潜在应用以及讨论开发和实施GraphRAG 技术所面临的挑战和未来方向。
标准的 RAG 系统及其结构
一个标准的 RAG 系统由三个主要部分组成:
检索器
检索器组件可以在知识库或大量文档中搜索相关信息。这个搜索过程经常使用相似性搜索算法和文本的密集向量表示。
文本的密集向量表示”指的是使用高维向量来表示文本信息的技术。这些向量通常是在嵌入空间中训练得到的,每个向量的每个维度都包含了一部分关于该文本的语义信息。这种表示方法使得计算机能够以数值形式理解和处理文本,从而进行相似性搜索、分类、聚类等任务。
生成器
将检索到的信息和初始问题作为 LLM 的输入来生成回答。
知识库
检索器用于查找文档或信息的数据库。
建立 RAG 系统的第一步是通过文档索引和嵌入来建立知识库。
-
通过索引文档和创建嵌入来准备知识库。
-
训练或微调检索器模型,这样可以高效地搜索这个知识库。
-
实现一个生成器模型,通常来说,是一个预训练的 LLM。
-
将这些组件集成到一起,让他们能够无缝衔接。
RAG 的缺点
-
难以关联分散的信息:当 AI 回答问题的时候,需要通过共享属性遍历不同的信息片段来提供新的综合见解时,RAG 的表现还不算太好。
-
RAG 在需要整体理解大量数据集合或单个大型文档的摘要语义概念时会有一定的困难。
什么是 GraphRAG?
GraphRAG 是 RAG 的高级版本,它结合了图结构数据。
传统的知识库通常是由一组独立的文档组成的,每个文档之间没有显式的连接或关系。
而在 GraphRAG 中,知识库被表示为一个由实体(例如人物、地点、事件等)和这些实体之间的关系组成的网络。
这样,信息就不再是孤立存在的,而是通过这些关系相互连接和关联起来的。
这种表示方法更能够反映现实世界中的复杂关联,使得系统可以更好地理解和利用这些信息。
GraphRAG 相较于 RAG 的优势
关系上下文
GraphRAG 可以捕捉并利用不同信息片段之间的关系,提供更丰富的上下文。
多跳推理 (Multi-hop Reasoning)
图结构使系统能够跟随关系链,促进更复杂的推理。
多跳推理(Multi-hop Reasoning)是一种高级推理能力,它允许系统通过多个中间步骤连接不同的信息片段来得出结论或生成答案。
结构化知识表示
相对于平坦独立的文档结构,图结构可以更自然地表示实体之间的层次和非层次关系。
更高的效率
图结构可以使某些类型的查询更高效,特别是那些涉及关系遍历的查询。
GraphRAG 的工作流程
以下是其工作原理:
查询处理
输入查询被分析并转换为适合图查询的格式。
这个过程包括将自然语言查询映射到图结构中的相关节点和关系。
图遍历
系统开始在图结构中进行遍历,沿着相关关系查找连接的信息。
它会根据查询的需求,探索图中的不同节点和边来找到与查询相关的子图。
子图(Subgraph)是一个图的一个部分,包含原图中的一些节点和这些节点之间的边。在 GraphRAG 中,子图通常表示与特定查询相关的一个小型网络,它捕捉了原图中某些相互关联的实体及其关系。
子图检索
与 RAG 检索单独的信息片段不同,GraphRAG 检索的是捕捉互联上下文的相关子图。这些子图包含了与查询相关的多个实体及其关系。
信息整合
系统将检索到的子图信息进行整合和处理,形成一个连贯的上下文。
这个步骤可能涉及去除冗余信息和消除信息冲突。
响应生成
整合后的图信息和输入查询一起被送入 LLM,生成最终的回答。
语言模型会利用图结构中的丰富上下文信息来生成更准确和详细的答案。
RAG 和 GraphRAG 的主要区别
知识表示:RAG 使用平坦独立的文档结构,而 GraphRAG 使用图结构。
检索机制:RAG 通常使用向量相似性搜索,而 GraphRAG 使用图遍历算法。
上下文理解:GraphRAG 能够捕捉更复杂的多步关系,而 RAG 可能会遗漏这些关系。
推理能力:GraphRAG 的结构允许对互联信息进行更复杂的推理。
GraphRAG 的挑战与应用
挑战
图构建:构建和维护准确、最新的知识图谱可能会非常复杂且资源密集。
可扩展性:随着图的增大,高效的遍历和检索变得更加具有挑战性。
查询解释:将自然语言查询转换为有效的图查询并非易事。
整合复杂性:将来自多个子图的信息连贯地整合在一起可能也会有一定的挑战。
应用
法律研究:帮助导航复杂的法律、先例和案例研究网络。
医疗:协助理解医学知识、病历和治疗选项中的复杂关系。
金融分析:帮助分析复杂的金融网络和依赖关系。
社会网络分析:探索复杂的社会结构和互动。
知识管理:通过捕捉和利用组织关系和层级结构,增强企业知识库。
总结
GraphRAG 是一种结构化、层次化的 RAG 方法。它利用图结构的力量,可以提供更细致和更丰富的上下文的信息检索和响应的生成方法。
尽管在实现的复杂性和可扩展性方面存在一些挑战,但在各个领域的潜在应用使其成为进一步研究和发展的一个有前景的领域。
如何学习大模型 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 的正确特征了。