GraphRAG (基于知识图谱检索增强生成) 通过将知识图谱 (KGs) 或图形数据库与大型语言模型 (LLMs) 集成,增强了传统的检索增强生成 (RAG) 方法。它利用图形数据库的结构化特性,将数据组织为节点和关系,以更高效准确地检索相关信息,并为生成响应提供更好的上下文,使LLMs感知到更多的信息。
通过将知识图谱作为结构化的、领域特定的上下文或事实信息的来源,GraphRAG使LLMs能够对问题提供更精确、上下文感知和相关的答案,特别是对于需要全面理解大量数据集合或单个大型文档中概括语义概念的复杂查询。
传统的向量搜索方法注重使用高维向量来处理非结构化数据,而GraphRAG借助知识图谱实现了对相互关联、异构信息的更细致理解和检索。这种结构化的方法提升了检索信息的上下文与深度,从而能够更准确、更相关地回答用户的查询,尤其在复杂或领域特定的主题上。
常见GraphRAG架构
尽管GraphRAG利用知识图谱的结构特性相对传统RAG有优势,但其实施面临独特的挑战。缺乏将知识图谱整合到RAG流程中的标准化方法导致存在多种实现方式,每种方式都有其自身的优势和考虑因素。此外,还需要一个已有的知识图谱,这增加了另一层复杂性。
以下是一些常见的GraphRAG架构:
语义聚类的知识图谱
知识图谱提供了数据的结构化表示,并使整个数据集具备推理能力。该流程从搜索用户查询开始,系统利用知识图谱和图结构机器学习模型获取相关信息。然后,通过基于知识图谱的聚类方法对获取的信息进行语义聚类。这些聚类信息丰富了LLM(语言模型)上下文窗口中的数据,使得LLM可以利用这个丰富的上下文生成回答。
最终的回答包括与知识图谱相关的引用,适用于数据分析、知识发现和研究应用。
知识图谱和向量数据库集成
此方法利用知识图谱和向量数据库来收集相关信息。知识图谱以捕捉向量块之间的关系为基础构建,包括文档层次结构。知识图谱在向量搜索结果中的检索块附近提供结构化实体信息,使提示得到有价值的附加背景信息。这个丰富的提示被输入到LLM进行处理,LLM生成一个回答。
最后,生成的答案返回给用户。此架构适用于客户支持、语义搜索和个性化推荐等用例。
知识图谱增强的问题回答流程
在这个架构中,知识图谱在向量检索之后用于增强响应,提供额外的事实。流程始于用户提供查询,接着计算查询嵌入。然后,在向量索引上进行向量相似度搜索,以识别知识图谱中相关实体。系统从图数据库中检索相关节点和属性,(如果找到)执行Cypher查询以检索关于这些实体的附加信息。检索到的信息被聚合成一个综合的上下文,传递给LLM生成响应。这种方法在医疗或法律环境中非常有益,其中始终会基于响应中的实体包括一个标准响应。
知识图谱增强的混合检索
这个GraphRAG架构采用了混合方法,将向量搜索、关键词搜索和专用图查询相结合,以便高效准确地检索相关信息。请注意,这里所说的“混合”不是常用的将向量和基于关键词的检索结合的定义,它还包括一个知识图检索步骤。
流程始于用户提交查询,然后进行混合检索过程,整合来自非结构化数据搜索和图数据搜索的结果。从向量和关键词索引的检索可以通过重新排名或排名融合技术进行初始增强。来自三种形式检索的结果会结合在一起,为LLM(语言模型)提供上下文,并将生成的回答提供给用户。
这个架构适用于企业搜索、文档检索和知识发现等用例。
基于知识图谱的检索增强和生成
在执行向量搜索之前,该架构利用知识图谱遍历和检索相关节点和边缘,丰富LLM的上下文窗口。
第一阶段是查询增强,LLM对用户的查询进行处理,提取关键实体和关系。对知识图谱中的节点属性进行向量搜索,以缩小所感兴趣的相关节点范围。
下一步是查询重写,通过检索到的子图生成Cypher查询,进一步缩小图中相关结构化信息的范围。从图遍历中检索到的数据用于丰富LLM的上下文窗口。
最后,LLM根据丰富的上下文生成响应。该架构适用于产品查找或财务报告生成等需要关注实体之间关系的场景。
主要挑战
构建一个全面准确的知识图谱需要对领域有深入的理解和图形建模的专业知识,这是一个复杂且资源密集型的过程。使用LLM自动化此过程仍处于早期阶段,可能具有困难和/或容易出错的特点。确保数据的质量、相关性和完整性至关重要。保持最新知识图谱的要求包括专业知识、资源和不断适应不断演化的数据。将来自多个来源的数据集成到具有不同模式和质量水平的知识图谱中,增加了完成此任务所需的复杂性和时间。
正如我们在之前的帖子中提到的那样,RAG 本身需要进行计算密集的实验来确定最佳的信息提取、分块、嵌入、检索和排序策略。对于探索不同的 GraphRAG 结构、设置和参数的计算密集型实验,也需要大量的资源。利用像 Ray 这样的分布式计算框架进行数据处理和嵌入计算,再加上一种高效且易于集成的图数据库,比如 Kuzu,可以促进大规模实验和系统优化。
GraphRAG的未来:洞察和建议
我们认为GraphRAG将会长期存在,并且已经成为RAG的自然延伸。使用知识图谱提供了另一种获得结构化信息的方式,这可以增强LLM在生成阶段使用的提示。以下是一些关于在组织中开始实施GraphRAG的建议:
-
首先,要熟悉“Naive”RAG(使用分块的矢量检索)。还应当精通运行实验并制定评估策略(在你的领域,什么样的结果被认为是“好的”?)。
-
努力获取用于知识图谱的数据源,这些数据源可以是现有的结构化数据,也可以是可以转换为知识图谱的非结构化文本。
-
熟悉图形数据库,了解如何将数据加载到其中,以及如何进行查询(Kuzu是一种易于设置的选项)。
-
从一个小的知识图谱开始,尝试将查询结果从图形传递给LLM作为上下文,并将其性能与你的天真RAG设置进行比较。
-
不要过早优化你的知识图谱。首先确定一个可以实现的GraphRAG架构。只有当你拥有完整的GraphRAG设置和评估流程后,你才能开始改进你的KG和数据模型。
-
将你的GraphRAG流程端到端运行,并确信结果确实比仅使用矢量或仅使用图形的方法好。
-
不要立即追求构建完美的GraphRAG应用。从一个更简单的设计开始有助于更好地量化与基准相比的检索结果,并且你可以通过添加更复杂的路由器和代理进行逐步改进。
-
随着你的GraphRAG计划的发展和需求的增长,你可能会发现自己需要能够处理更大数据量的复杂体系结构。为确保平稳过渡,明智的做法是选择能够与你的项目一起扩展的工具。工具应当灵活且具有成本效益,以适应对你的GraphRAG设置和设计的改进,从而使你能够根据需要进行调整和优化你的系统。
不少团队正在建设GraphRAG系统的早期阶段,在探索性阶段的进程中。我们需要了解已经实施的生产部署案例,这些案例能够评估提供真正的商业价值。
为了达到目标,我们需要更多为了适应GraphRAG系统而设计的基准数据集和评估方法,以帮助团队更好地衡量性能。像FinanceBench这样的基准数据集(https://arxiv.org/pdf/2311.11944),专门用于开放式问题回答,提供了一种有希望的研究手段,用于研究GraphRAG系统在生成回答中减少错误和提高事实准确性的能力。
如何学习大模型 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 的正确特征了。