链载Ai

标题: KAG:RAG已经不够了,知识增强生成才是王道,提升朴素RAG一倍性能 [打印本页]

作者: 链载Ai    时间: 4 小时前
标题: KAG:RAG已经不够了,知识增强生成才是王道,提升朴素RAG一倍性能

KAG:RAG已经不够了,知识增强生成才是王道,提升朴素RAG一倍性能

发布时间:2024 年 09 月 24 日

RAG

KAG: Boosting LLMs in Professional Domains via Knowledge Augmented Generation

新推出的检索增强生成 (RAG) 技术虽能高效构建领域应用,但受限于模糊检索、通用语言模型的“幻觉”问题及复杂系统中的级联损失,专业知识服务效果受阻。在科学计算、医学和法律等领域,知识精准、信息完整及规则逻辑严密尤为关键。为此,我们推出知识增强生成 (KAG) 框架,通过双向增强大型语言模型 (LLM) 和知识图谱 (KG),提升生成与推理能力,涵盖五大关键增强:LLM 友好的知识语义表示、知识图谱与原始块的相互索引、逻辑形式引导的混合推理、基于语义推理的知识对齐及 KAG 模型。多跳问答测试显示,KAG 显著超越现有 RAG 方法,F1 提升 19.6% 至 33.4%。应用于蚂蚁集团的电子政务与电子健康问答,专业性大幅提升。即将在开源 KG 引擎 OpenSPG 上原生支持 KAG,助力开发者轻松构建严谨知识决策或便捷信息检索服务。


1. 为什么要提出KAG框架

检索增强生成(RAG)技术得到广泛运用,利用外部检索系统,显著提升大语言模型的时效性,并大幅减少模型幻觉。

为了进一步提升RAG在多跳任务、跨段落任务的性能,作者引入了知识图谱,包括GraphRAG、DALK、SUGRE、ToG 2.0 和 HippoRAG 等。

尽管 RAG 及其优化方案已经解决了因知识缺乏和更新导致的大部分幻觉问题,但生成的文本仍然缺乏连贯性和逻辑性,难以产生正确且有价值的答案,尤其是在法律、医学和科学等需要分析推理的专业领域:

为了解决以上问题,本篇论文作者提出了知识增强生成(Knowledge Augmented Generation,KAG)。

2. KAG框架

KAG框架充分利用知识图谱和RAG技术的互补优势。不仅将图结构整合到知识库,还将知识图谱的语义类型、关系以及知识图谱问答(KGQA)整合到KAG中。

如上图所示,KAG 架构由三大核心组成:KAG-Builder、KAG-Solver 和 KAG-Model。

2.1 知识表示框架 LMFriSPG

为了定义一个对大型语言模型更友好的知识语义表达方式,作者对 SPG 进行了三大方面的升级:深化文本上下文意识、动态属性和知识分层,并将其命名为 LLMFriSPG。

SPG:Semantic-enhanced Programmable Graph,语义增强可编程知识图谱。

上图展示了 LLMFriSPG:一个专为大型语言模型(LLM)设计的友好型知识表示框架。

LLMFriSPG将实例与概念区分开来,通过概念实现与 LLMs 的对接。

SPG 的属性被划分为知识区和信息区,也就是静态区和动态区,分别与具有严格模式约束的决策专业知识以及具有开放信息表示的文档检索索引知识相兼容。

图中的红色虚线描绘了从信息提炼为知识的融合与挖掘过程。增强的文档块表示方法为 LLMs 提供了可追溯且易于解读的文本上下文。

ℳ={?,ρ,?,ℒ}

其中 ℳ 代表 LLMFriSPG 定义的所有类型

? 代表所有实体类型(EntityType)(例如上图中的“人”)、事件类型类(EventType)以及所有与 LPG 语法声明兼容的预定义属性。

? 代表所有概念类型类(ConceptType)、概念及其关系,每个概念树的根节点是一个与 LPG 语法兼容的概念类型类(如上图中的“人的概念分类”),每个概念节点都有一个独特的概念类型类。

ρ 代表从实例到概念的归纳关系。

ℓ 代表定义在逻辑关系和逻辑概念上的可执行规则全集。

如上图,作者将知识和信息表示分为三个层次:

如上图右侧所示,在特定领域应用中,R(KGcs)、R(KGf r)和R(RC)分别代表了它们在解决目标领域问题时的知识覆盖范围。

2.2 互索引(Mutual Indexing)

KAG 构建器(KAG-Builder)包括三个紧密相连的流程:结构化信息获取、知识语义对齐和图存储写入。主要目标包括:

上图展示了 KAG 构建器处理领域非结构化文档的流水线。流程从左至右:

上图是一个 KAG Builder 的示例。

2.2.1 语义分块( Semantic Chunking)

基于文档的结构层次和段落间的内在逻辑联系,利用系统内置提示实现了语义分块过程。产生的文本块既符合长度限制(特别是为了适应 LLM 的上下文窗口大小限制),又保持了语义连贯性,确保每个块的内容在主题上紧密相关。

在 RC 中定义了“块实体类型”,包含 id、摘要和主文本等字段。语义分割后得到的每个块将被写入一个“块”实例,其中 id 是一个由 articleID、paraCode、idInPara 通过连接器#拼接而成的复合字段,这样做是为了确保连续的块在 id 空间中是相邻的。

内容上的邻接关系在它们的标识符上也表现为顺序上的邻接。

原始文档与其分割出的块之间建立了双向关系,便于在文档内容的不同粒度间进行导航和理解上下文。这种结构化的分割方法不仅优化了与大型语言模型的兼容性,还保留了并增强了文档的内在语义结构和关联性。

2.2.2 信息提取与更丰富的描述性上下文

在给定数据集的基础上,采用大语言模型来提取实体、事件、概念和关系,构建知识图谱 KGf。

采用的大语言模型可以是无需微调的大型语言模型(LLM)(如 GPT-3.5、DeepSeek、QWen 等)或微调的小尺寸大模型 Hum。

然后,构建 KGfr 与 RC 之间的互索引结构,实现跨文档的实体和关系链接。分为三个步骤:

为了后续的知识对齐阶段提供便利,并解决 Wikidata和 ConceptNet等知识短语识别度低的问题,在实体提取阶段,使用 LLMs 为每个实例 e 生成内置属性描述、摘要、semanticType、spgClass、描述 semanticType,根据 e.description、e.summary 的结构将它们存储在 e 实例存储中,并按照<e, belongTo, semanticType>和<e, hasClass, spgClass>的结构进行组织。

2.2.3 领域知识注入和约束

当开放信息抽取(openIE)应用于专业领域时,可能会引入不相关的噪声。这些噪声和不相关的语料库可能会显著降低 LLMs 的性能。因此将提取的信息与领域知识对齐是一个难题。

KAG 中的领域知识对齐能力包括:

2.2.4 文本块向量与知识结构的互索引

KAG 的互索引机制遵循 LLMFriSPG 的语义表示,是一套知识管理和存储方案。涵盖四个核心数据结构:

此外,还有两种存储结构:

2.3 逻辑形式求解器

在攻克复杂问题的道路上,通常遵循三大核心步骤:规划、推理和检索。

在传统 RAG 中,由于各模块间的互动基于自然语言的向量表达,因此常常出现偏差。借鉴知识图谱问答中常用的逻辑形式,设计了一种具备推理与检索功能的可执行语言。这种语言能够将问题拆解为多个逻辑表达式,每个表达式都可能涵盖检索或逻辑运算的功能。这一过程通过互索引机制实现。

同时,受到 ReSP 的启发,设计了一种基于反思和全局记忆的多轮解题机制。

上图展示了该过程。左侧展示了知识图谱构建过程,右侧则展示了整个推理和迭代流程。

这种逻辑形式语言具有以下三大优势:

上图展示了一个该框架下的多轮对话情景。

2.3.1 逻辑形式规划

如上表所示,逻辑函数是一系列执行动作表示。通过精心规划这些表达式的组合,可以将复杂问题拆解,进而推理出精细的解决方案。

2.3.2 推理的逻辑形式

当自然语言表述的查询语句用于搜索时,往往存在逻辑上的模糊性,比如“寻找含有蔬菜或水果的图片”与“寻找含有蔬菜和水果的图片”。不论是文本搜索还是向量搜索,这两类查询的相似度极高,但它们的答案却可能截然不同。

对于包含逻辑推理过程的问题,如涉及“与”、“或”、“非”以及交集和差集的情况,也是同样的道理。

因此,采用逻辑形式来表达问题,以便能够清晰地描述语义关系。与 IRCOT 类似,把复杂的原始问题拆解,并规划出多种执行动作,包括多步骤的信息检索、数值计算、逻辑推理和语义推导。每个子问题都通过逻辑形式函数来表达,子问题之间的联系则通过变量引用来建立。

在此过程中,GraphRetrieval 模块依据逻辑形式子句执行知识图谱结构检索,获取结构化的图结果。另一个关键模块 HybridRetrieval 则结合自然语言表述的子问题和逻辑函数,全面检索文档和子图信息。

上图展示了该过程的一个案例。

2.3.3 检索的逻辑形式

在传统的 RAG 模型中,通过计算问题与文档片段嵌入之间的相似度(如余弦相似度)来实现信息检索,其中嵌入模型的语义表达能力至关重要。这通常包括稀疏编码器(如 BM25)和密集检索器(基于 BERT 架构的预训练语言模型)。稀疏与密集嵌入方法各自捕捉不同的关联特征,通过利用彼此的互补信息,相得益彰。

目前,将这两种方法结合的常见做法是将两种搜索方式的得分进行集成,但在实际操作中,不同问题可能需要不同的搜索策略,尤其是在需要多跳推理的问题上。当查询包含专有名词、人物、地点、时间、数字和坐标时,预训练模型的表现力可能受限,此时需要更精确的文本索引。而对于更接近文本段落表达的查询,如场景描述、行为动作和抽象概念,这两种方法可能会在某些问题中结合使用。

在设计逻辑形式时,可以有效地融合这两种检索方法。当需要将关键字信息作为明确的过滤条件时,可以在检索函数中指定选择条件,实现结构化检索。

例如,对于查询“在杭州西湖区申请残疾证需要哪些文件?”,检索函数可以表示为:

Retrieval(s=s1:Event[applying for a disability certificate], p=p1:support_chunks, o=o1:Chunk, s.location=West Lake, Hangzhou)

这种方法利用建立不同的索引(稀疏或密集)来支持精确搜索或根据需求进行模糊搜索。

此外,当无法使用逻辑函数检索以 SPO 形式存在的结构化知识时,可以采用其他方法。

包括半结构化检索,即利用逻辑函数搜索信息块,以及非结构化检索。

非结构化检索涵盖了如增强型检索(RAG),通过自然语言表达的子问题来检索相关的文本块。

2.4 知识对齐

利用信息提取构建知识图谱索引和基于向量相似度的检索在知识对齐方面存在三个主要缺陷:

为解决这些问题,作者提出了一种解决方案:通过语义推理利用概念图来增强离线索引和在线检索。

包括知识实例标准化、实例到概念的链接、语义关系完善和领域知识注入等任务。

概念推理的目标是充分利用向量检索和概念推理,基于前述知识结构完成概念关系,提高领域知识图谱的准确性和连通性。

如上表所示,总结了检索和推理通常需要的六种语义关系。

2.4.1 增强索引

通过语义推理增强索引的过程,实际是利用大型语言模型预测索引项之间的语义关系或相关知识元素,涵盖四种策略:

2.4.2 增强检索

在检索阶段,使用语义关系推理根据逻辑形式中的短语和类型来搜索知识图谱索引。对于逻辑形式中提到的类型或关系,采用结合语义关系推理与相似度检索的方法,以替代传统的相似度检索方法。

这种检索方法使检索路径更加专业和逻辑化,从而获得正确答案。

2.5 KAG 模型

KAG 涵盖了两个核心计算流程:

在小规模语言模型盛行的时代,这些任务通常需要两个独立的处理流程,每个流程都包含多个特定任务的 NLP 模型。这种设计不仅增加了应用系统的复杂性,提高了搭建成本,还因为模块间的错误传播而不可避免地带来了级联损失。与此相对,大型语言模型作为一种能力复合体,有潜力将这些流程统一为一个集成的、同步的端到端推理过程。

如上图,索引构建和问答生成的过程包含相似的步骤。这两个流程都可以概括为分类、实体识别、实体关系识别、语义对齐、嵌入以及信息块、实例或查询聚焦的摘要。

一个 RAG 系统依赖的自然语言处理的三大核心能力是 NLU、NLI 和 NLG。

为了减少将模型串联成流水线所带来的级联损失,将多个推理过程融合为单一推理过程

2.5.1 NLU(自然语言理解)

NLU 自然语言处理的基石之一,涵盖了文本分类、命名实体识别、关系抽取、主宾语提取、触发词识别、事件论元抽取、事件抽取以及机器阅读理解等多个方面。

为提升模型的理解力:

利用此数据集对选定的基础模型进行监督式微调后,模型在下游任务中表现出更强的 NLU 能力。指令重构策略主要包括以下三种类型:

因此,对于收集到的 NLU 任务,通过 LLM 内的自省过程总结任务描述,创建包含任务描述的训练数据。为增强任务多样性,还采用启发式策略改写任务描述和答案,使模型能更准确地理解不同任务描述之间的差异,并根据指令完成任务。

对六个基础模型进行了微调:qwen2、llama2、baichuan2、llama3、mistral、phi3,并使用 OpenCompass 上记录的六个理解基准进行性能验证。下表展示了模型微调后的对比效果。

2.5.2 自然语言推理

NLI 任务旨在推断特定短语间的语义联系,包括实体链接、消除歧义、分类体系扩展、上位词识别和文本蕴含等。

在知识库问答系统中,自然语言的多样性和模糊性,以及短语间微妙的语义联系,常常需要依靠 NLU 基础上的 NLI 任务来进一步对齐或检索相关信息。

在 KAG 过程中,语义推理是一项核心能力。通过 NLI 任务和通用推理问答任务来评估模型性能,如上图。评估结果显示,KAG 模型在语义推理相关任务上取得显著提升:

2.5.3 自然语言生成

开发了两种高效率的微调方法,专为特定领域场景设计,以期生成的内容能够更贴近实际场景的需求:即 K-LoRA 和 AKGF(Alignment with KG Feedback)。

K-LoRA 预训练:利用知识生成答案与从文本中提取知识是相反的过程。通过逆向操作前述的提取流程,能够创建一个“三元组到文本”的生成任务。经过大量实例的深入微调,模型学会识别知识图谱注入的信息格式,并能够习得目标文本的特定领域语言风格。为提高效率,继续采用基于 LoRA 的 SFT 策略,并将此步骤中获得的 LoRA 称为 K-LoRA。

与 KG 反馈的对齐:模型在回答中可能因过拟合等原因产生错误。借鉴了 RLHF 方法,希望 KG 充当自动评估器,对当前回答的知识准确性提供反馈,引导模型进一步优化。通过不同的输入格式或随机种子为每个查询生成多种回答。然后,利用 KG 对这些回答进行评分和排序。评分过程通过比较生成的答案与 KG 中的知识来判断其正确性。奖励由正确匹配的知识三元组数量决定。

选取两个生物医学问答数据集 CMedQA 和 BioASQ 来评估模型性能。

如上图,生成性能显著提升。

2.5.4 单次推理

大多数检索增强型系统由一系列展示模型、检索器和生成模型组成,导致系统复杂度高、构建成本昂贵,以及由于模块间错误传播而不可避免的级联损失。

因此,作者提出了一种高效的单次统一生成和检索(OneGen)模型,允许任何大型语言模型(LLM)在单次前向传递中同时进行生成和检索。受到大型语言模型在文本嵌入方面最新进展的启发,通过增加特殊标记(即检索标记)扩展了原有词汇表,并将检索任务分配给自回归生成的检索标记。

在训练过程中,检索标记仅通过对比学习参与表示微调,其他输出标记则按语言模型目标进行训练。在推理阶段,利用检索标记进行高效的按需检索。不同于以往至少需要两个模型分别负责检索和生成的流水线方法,OneGen 将这两者统一在一个模型中,从而省去了单独的检索器需求,大幅降低了系统复杂性。

实验结果如上表所示:

3. 效果评估

3.1 总体效果

上表展示了问答系统的端到端性能。在基于 ChatGPT-3.5 作为核心模型的 RAG 框架中,HippoRAG 的表现超过了 NativeRAG。

HippoRAG 采用了仿人类长期记忆的策略,促进了外部文档中的知识与 LLMs 的持续融合,显著提升了问答性能。然而,考虑到使用 ChatGPT-3.5 的高昂经济成本,选择了 DeepSeek-V2 API 作为替代方案。

平均来看,结合 DeepSeek-V2 API 的 IRCoT + HippoRAG 配置在性能上略胜 ChatGPT-3.5 一筹。

KAG 框架与 IRCoT + HippoRAG 相比,在 HotpotQA、2WikiMultiHopQA 和 MuSiQue 数据集上的 EM 分别提升了 11.5%、19.8%和 10.5%,F1 分数分别提高了 12.5%、19.1%和 12.2%。

这些性能上的飞跃主要归功于框架中更高效的索引构建、知识对齐和混合解题库的开发。

上表中展示了单步和多步检索器的检索性能。实验结果显示,多步检索器通常比单步检索器表现更佳。分析发现:

3.2 消融实验

3.3.1 知识图谱索引消融实验

在图谱索引构建阶段,提出以下两种替代方案:

3.3.2 推理与检索消融实验

多轮自省机制。引入了 ReSP的多轮自省机制,以评估逻辑形式求解器是否已经充分回答了问题。如果答案不尽完善,系统将迭代产生补充问题,直至全局记忆中的信息充足。对最大迭代次数 n 的影响进行了分析,记作 refn。当 n=1 时,意味着自省机制未启动。在推理和检索阶段,我们设计了以下三种替代方案:

3.3.3 消融实验结果

知识图谱索引效果

将知识对齐整合到知识图谱互索引中后,CRref3 的前 5 个召回率分别提升了 9.2%,28.4%和 9.5%,平均增幅达到 15.7%。经过知识对齐增强,关系密度显著增加,频率-出度图整体右移。

1 跳图谱明显右移,说明加入的语义结构增加了每个节点的邻接节点数,提高了图谱的密集度。

2 跳和 3 跳图谱呈现不均匀分布,左侧稀疏,右侧密集。K_Alignment 优化前后的对比显示,数据集中的节点普遍右移,左侧变得更为稀疏,表明原本邻接节点较少的节点获得了新的连接,导致了这一现象。

表明新增的语义关系有效增强了图谱的连通性,进而提升了文档的召回率。

图谱推理分析

在召回率方面,LFSHref3 在同一图谱索引的基础上相较于 CRref3 有显著提升,前 5 个召回率分别提高了 15%,32.2%和 12.7%,平均增长 19.9%。这一改进主要归功于两个因素:

由于 LFref3 基于子图进行查询回答,无法直接与 LFSHref3 在召回率上进行比较,但可以通过 F1 分数来衡量。与 LFSHref3 相比,LFref3 基于检索到的子图回答问题的比例分别为 33%,34%和 18%。LFref3 的 F1 分数下降了 2.2%,0.1%和 0.5%,而计算时间分别减少了 12%,22%和 18%。

性能下降的案例分析揭示了构建阶段的错误或不完整的 SPO 导致子查询答案出错,最终导致错误答案。这一问题将在案例研究中详细讨论。计算时间的减少主要是由于 SPO 的检索效率比文档片段更高。

在工业应用中,计算时间是一个至关重要的指标。尽管 LFrefn 可能引入一些错误,但这些错误可以通过图谱的纠正和完善来改善。值得注意的是,在当前实验中,我们为了减少计算时间,接受了度量标准的轻微下降,这为工业应用提供了一个可行的改进方向。

为了分析最大迭代次数参数 n 对结果的影响,比较了 LFref1 与 LFref3,发现 F1 分数分别下降了 0.6%,1.6%和 4.8%。

基于 LFref3 的实验数据显示,迭代 1 次的比例为 97.2%,94.8%和 87.9%;LFSHref1 与 LFSHref3 相比,F1 分数分别下降了 0.2%,1.2%和 4.4%。

基于 LFSHref3 的实验数据显示,迭代 1 次的比例为 98.3%,95.2%和 84.1%,显示出与 F1 分数降低的正相关性。






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5