大型语言模型(LLMs)已经展现出惊人的能力,但它们也面临着一些挑战,比如“幻觉”(生成虚假信息)、难以实时更新知识,以及推理过程不透明等。
为了解决这些问题,研究者们开始探索将知识图谱(KGs)融入检索增强生成(RAG)框架,形成了所谓的“KG-RAG”方法。这种结合不仅有望减少模型的“幻觉”,还能提升其推理能力和准确性。
然而,目前对于KG-RAG方法的系统性研究还比较缺乏,尤其是关于“何时用”和“如何用”的问题。今天,我们就来深入探讨一篇最新的研究成果,看看它如何为我们提供答案。
https://arxiv.org/pdf/2502.20854
RAG技术的三种范式
基础RAG(Basic RAG)
基础RAG是最简单的RAG架构,主要包括三个核心步骤:
-
索引:将文档分割成块,编码成向量后存储在向量数据库中。
-
检索:根据查询的语义相似度,从数据库中检索与查询最相关的Top k块。
-
生成:将检索到的相关块与原始查询一起输入到LLM(大型语言模型)中,生成最终答案。
图谱RAG(Graph RAG)
图谱RAG通过引入图结构化数据来增强基础RAG的能力,其主要特点包括:
-
图结构化索引:利用图数据库存储和检索信息,通过图结构捕捉数据之间的复杂关系。
-
双级检索策略:结合低层次的具体信息检索和高层次的广泛话题检索,提高检索的全面性和准确性。
-
动态更新:支持增量更新算法,能够快速适应新数据
Agent RAG
Agent RAG是RAG技术的最新范式,融合了智能代理(Agent)的设计模式,具有以下特点:
-
智能代理集成:通过将自主AI代理集成到RAG流程中,实现动态管理检索策略、迭代细化上下文理解,并适应性地调整工作流程。
-
多代理协同:支持单代理或多代理架构,每个代理负责特定任务或数据源,共同完成复杂的检索和生成任务。
-
灵活性和自适应性:能够根据查询类型和需求选择最优的处理路径,适应各种复杂场景。
知识图谱增强检索生成(KG-RAG):何时用、如何用?
虽然KG-RAG听起来很完美,但目前的研究还存在一些问题。首先,不同的研究在使用场景、数据集、KG-RAG配置和语言模型上都有很大的差异,就像雨后春笋般涌现的各种方法,缺乏统一的比较和分析。
为了解决这些问题,这篇研究论文通过重新实现和评估6种KG-RAG方法,并在7个不同场景的数据集上进行测试,分析了9种KG-RAG配置与17种语言模型的组合效果。研究的核心目标是找出KG-RAG在哪些情况下最有效,以及如何优化其配置。
任务领域与任务难度
要回答“何时使用KG-RAG”的问题,首先需要考虑任务场景。论文从两个角度对任务场景进行了分类:任务领域和任务难度。
-
开放域问答(Open-domain QA):这类任务需要通用的世界知识,例如“地球的自转方向是什么?”。
-
特定领域问答(Domain-specific QA):这类任务需要专业知识,例如医学咨询“我皮肤上有奇怪的疙瘩,会不会是病毒疣?”。
-
专业考试(Domain-specific Exam):这类任务是针对特定领域的资格考试,例如医学专业考试。
任务难度的划分目前还没有统一的标准。论文采用了两级分类:
-
L1难度:只需要基于明确事实的简单答案(单跳问题),例如“北京是中国的首都吗?”。
-
L2及以上难度:需要推理和整合多条信息(多跳问题),例如“为什么说维生素C可以增强免疫力?”
知识图谱(KG)的质量是决定KG-RAG效果的另一个重要因素。论文使用了针对不同数据集构建的KG,并在实验中对比了高质量KG和部分覆盖知识的KG对性能的影响。
如何使用KG-RAG?
论文对现有的KG-RAG方法进行了总结,提出了三个关键模块:检索前(Pre-Retrieval)、检索(Retrieval)**和**检索后(Post-Retrieval)。每个模块都有不同的配置方式,这些配置直接影响KG-RAG的性能。
检索前:查询增强
检索前阶段的核心问题是“检索什么内容”。论文总结了三种查询增强方法:
-
查询扩展(Query Expansion):通过逐步推理提取关键实体,帮助模型在检索时找到更相关的内容。
-
查询分解(Query Decomposition):将复杂的多跳问题分解为多个简单子问题,分别检索后再整合。
-
查询理解(Query Understanding):提取查询的主要思想,确保检索内容与查询主题一致。
检索:检索形式
检索阶段的核心问题是“如何组织检索到的知识”。检索到的知识可以以三种形式呈现:
-
事实(Fact):最基本的知识单元,以三元组(主体、谓语、宾语)形式呈现。
-
路径(Path):由多个相连的三元组组成,提供更丰富的上下文信息。
-
子图(Subgraph):结合路径和邻近实体信息,提供更全面的关系和模式。
检索后:提示设计
检索后阶段的核心问题是“如何引导模型利用检索到的知识”。论文总结了三种提示设计方法:
-
链式思考(Chain-of-Thought, CoT):通过逐步推理将复杂问题分解为多个中间步骤。
-
树状思考(Tree-of-Thought, ToT):允许模型同时探索和比较多条推理路径。
-
思维导图(MindMap):引导模型构建结构化的思维导图,整合检索到的知识并保留推理痕迹。
实证研究揭示的关键发现
研究问题与实验设置
RQ1:KG-RAG对开源LLM的提升效果如何?
RQ2:KG-RAG是否能让开源LLM超越商业LLM?
RQ3:不同KG-RAG配置的效果如何?
为了回答上述问题,论文设计了一系列实验:
-
数据集:选择了7个不同任务场景的数据集,包括开放域问答、特定领域问答和专业考试。
-
模型:对比了17种原始LLM和2种开源LLM(Qwen1.5-7B和Llama2-7B)结合6种KG-RAG方法(如KGRAG、ToG、MindMap等)的表现。
-
评估指标:使用了多种指标,如准确率(Correct)、错误率(Wrong)、失败率(Fail)、BERTScore、ROUGE Score等,以全面评估生成答案的质量。
KG-RAG是否能提升开源LLM?
在开放域问答(如CommonsenseQA)和特定领域问答(如GenMedGPT-5K)中,KG-RAG显著提升了开源LLM的性能。
但在临床对话场景(如CMCQA)中,KG-RAG的效果有限,这可能是因为临床任务的复杂性较高,需要更高质量的知识图谱来支持。
KG-RAG在低难度任务中表现更好,而在高难度任务(如多跳推理)中效果有限。这表明当前的KG-RAG方法更适合处理简单任务,但在复杂任务中可能无法充分发挥作用。
KG-RAG是否能让开源LLM超越商业LLM?
在特定领域任务中,KG-RAG增强的开源LLM可以与商业LLM相媲美,甚至在某些情况下超越它们。这表明KG-RAG在特定领域任务中具有显著价值。
在高难度任务中,尽管KG-RAG缩小了性能差距,但商业LLM仍然表现更好。这可能是因为商业LLM不仅拥有更丰富的知识,还具备更强的推理和泛化能力。
不同KG-RAG配置的效果如何?
查询增强
-
查询理解:在短问题中表现稳健,但提升效果有限。
-
查询扩展:适合短问题,能够提升语义相似性。
-
查询分解:适合长问题,但在短问题中效果不佳。
检索形式
-
事实(Fact)和路径(Path):在短问题中表现更好,能够提升生成答案的语义相似性。
-
子图(Subgraph):在长对话任务中表现相似,但在短问题中可能引入冗余信息。
提示策略
-
无提示(w/o Prompt):在特定领域任务中,不使用提示策略可能更适合整体答案质量评估。
-
链式思考(CoT)、树状思考(ToT)和思维导图(MindMap):虽然能够提升语言质量,但可能以牺牲整体答案质量为代价。
研究总结与展望
在特定领域任务中,KG-RAG能够显著增强开源LLM(如Llama2-7B)的表现,使其在某些场景下甚至可以与商业LLM相媲美。
在开放域问答中,KG-RAG的提升效果相对有限。这可能是因为开放域任务需要更广泛的知识覆盖,而当前的KG-RAG方法在知识广度上仍有不足。
-
查询增强方法:没有一种通用的查询增强方法适用于所有任务。最佳策略取决于任务的具体性质。例如,短问题更适合查询扩展,而长问题更适合查询分解。
-
检索形式的选择:检索形式(如事实、路径、子图)对性能的影响并不确定。虽然路径和事实形式在某些任务中表现更好,但在长对话任务中,不同检索形式的表现差异不大。
-
提示策略的影响:在特定领域任务中,直接从检索到的知识生成答案(不使用提示策略)通常在整体质量评估(如G-Eval)中表现更好。这表明在实际应用中,直接利用知识图谱生成答案可能更符合需求。
如何学习大模型 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 的正确特征了。