目录
摘要
本周阅读的论文题目是《KAG: Boosting LLMs in Professional Domains via Knowledge Augmented Generation》(《KAG:通过知识增强生成提升专业领域的大型语言模型》)。最近开发的检索增强生成(RAG)技术使得构建特定领域的应用变得高效。然而,它也存在局限性,包括向量相似性与知识推理的相关性差距,以及对知识逻辑(如数值、时间关系、专家规则等)的不敏感,这些都阻碍了专业知识服务的有效性。在本文中介绍了一个名为知识增强生成(KAG)的专业领域知识服务框架,KAG旨在通过充分利用知识图谱(KG)和向量检索的优势,通过五个关键方面双向增强大型语言模型(LLMs)和KG来解决上述挑战,以提高生成和推理性能:(1)LLM友好的知识表示,(2)知识图谱与原始块之间的互索引,(3)逻辑形式引导的混合推理引擎,(4)与语义推理的知识对齐,(5)KAG 的模型能力增强。 与RAG方法相比,KAG在QA、2wiki以及专业性方面都取得了显著提升。
Abstract
This week's paper is titled "KAG: Boosting LLMs in Professional Domains via Knowledge Augmented Generation." The recently developed Retrieval Enhanced Generation (RAG) technique makes it efficient to build domain-specific applications. However, it also has limitations, including the correlation gap between vector similarity and knowledge reasoning, and the insensitivity to knowledge logic (such as numerical values, time relationships, expert rules, etc.), which hinder the effectiveness of professional knowledge services. In this paper, a specialized domain knowledge service framework called Knowledge Augmentation Generation (KAG) is introduced, which aims to solve the above challenges by leveraging the advantages of Knowledge Graph (KG) and vector retrieval by bidirectionally augmenting large language models (LLMs) and KG in five key aspects to improve generation and inference performance: (1) LLM-friendly knowledge representation, (2) cross-indexing between knowledge graph and primitive blocks, (3) a hybrid inference engine guided by logical forms, (4) alignment with the knowledge of semantic reasoning, and (5) enhancement of KAG's model capabilities. Compared to the RAG methodology, KAG has achieved significant improvements in QA, 2wiki, and professionalism.
文献链接🔗:KAG: Boosting LLMs in Professional Domains via Knowledge Augmented Generation
1 引言
最近,检索增强生成(RAG)技术迅速发展,为大型语言模型(LLMs)赋予了获取特定领域知识的能力。这是通过利用外部检索系统实现的,从而显著减少了答案幻觉的发生,并允许在特定领域高效构建应用程序。为了提高 RAG 系统在多跳和跨段落任务中的性能,引入了以强大推理能力著称的知识图谱,包括GraphRAG、DALK、SUGRE、ToG 2.0、GRAG、GNN-RAG和HippoRAG。
尽管RAG及其优化解决了由缺乏特定领域知识和实时更新信息引起的幻觉问题的大部分,但生成的文本仍然缺乏连贯性和逻辑性,使其无法产生正确和有价值的答案,尤其是在法律、医学和科学等需要分析推理的专业领域。这一不足可以归因于三个主要原因。首先,现实世界的业务流程通常需要基于知识片段之间特定关系的推理来收集回答问题所需的相关信息。然而,RAG通常依赖于文本或向量的相似性来检索参考信息,这可能导致搜索结果不完整和重复。其次,现实世界的流程往往涉及逻辑或数值推理,例如确定一组数据在时间序列中是增加还是减少,而语言模型使用的下一个标记预测机制在处理这类问题方面仍然相对较弱。
与知识图谱的技术方法可以用来解决这些问题。首先,知识图谱通过显式语义组织信息;基本知识单元是SPO三元组,包括实体及其之间的关系。实体具有明确的实体类型,以及关系。具有相同意义但表达方式不同的实体可以通过实体归一化进行统一,从而减少冗余并增强知识的互联性。在检索过程中,使用查询语法(如SPARQL和 SQL)可以明确指定实体类型,减轻来自同名或类似实体的噪声,并允许根据查询要求指定关系进行推理性知识检索,而不是无目的地扩展到类似但关键的相关内容。同时,由于知识图谱的查询结果具有显式语义,它们可以用作具有特定意义的变量。 这使得进一步利用LLM的规划和函数调用功能成为可能,其中检索结果被替换为变量作为函数参数,以完成确定性推理,如数值计算和集合运算。
为了解决上述挑战并满足专业领域知识服务的要求,本文提出了知识增强生成(KAG),它充分利用了知识图谱(KG)和检索增强生成(RAG)技术的互补特性。它不仅仅是将图结构集成到知识库处理过程中,还将知识图谱的语义类型和关系以及KGQA(知识图谱问答)中常用的逻辑形式纳入检索和生成过程。KAG涉及以下几个模块的优化:
- 提出了一个LLM友好的知识表示框架 LLMFriSPG。本文参考DIKW(数据、信息、知识)的层次结构,将SPG升级为对LLMs友好的版本,命名为 LLMFriSPG,使其兼容无模式信息提取和同类型知识(如实体类型、事件类型)的模式约束专家知识构建,并支持图结构和原始文本块之间的互索引表示,从而便于构建基于图结构的倒排索引,并促进逻辑形式的统一表示、推理和检索;
- 提出了一种逻辑形式引导的混合求解和推理引擎。它包括三种类型的操作符:规划、推理和检索,将自然语言问题转化为结合语言和符号的问题解决过程。过程中的每一步都可以利用不同的操作符,如精确匹配检索、文本检索、数值计算或语义推理,从而实现四个不同问题解决过程的集成:检索、知识图谱推理、语言推理和数值计算;
- 提出了一种基于语义推理的知识对齐方法。将领域知识定义为各种语义关系,如同义词、上位词和包含关系。语义推理在离线知识图谱索引和在线检索阶段中均进行,使通过自动化生成的碎片化知识能够通过领域知识进行对齐和连接。在离线索引阶段,它可以提高知识的标准化和连通性,在在线问答阶段,它可以作为用户问题和准确索引之间的桥梁;
- 提出了一个KAG模型。为了支持KAG框架操作所需的能力,如索引构建、检索、问题理解、语义推理和摘要,增强了三个特定能力:通用LLMs自然语言理解(NLU)、自然语言推理(NLI)和自然语言生成(NLG),以在每个功能模块中实现更好的性能。
2 KAG
如上图所示,KAG框架由三部分组成:KAG-Builder、KAG-Solver和KAG-Model:
- KAG-Builder用于构建离线索引:在此模块中,提出了LLM友好知识表示框架以及知识结构和文本块之间的互索引;
- 在KAG-Solver模块中,引入了一种逻辑形式引导的混合推理求解器,该求解器集成了LLM推理、知识推理和数学逻辑推理;
- 此外,通过语义推理进行知识对齐,以增强KAG-Builder和KAG-Solver中知识表示和检索的准确性;
- KAG-Model根据通用语言模型优化每个模块所需的能力,从而提高所有模块的性能。
2.1 LLM友好知识表示(LLMFriSPG)
为了为LLMs定义一个更友好的知识语义表示,本文从三个方面升级了SPG(Semantic-enhanced Programmable Graph,即语义增强可编程知识图谱):深度文本上下文感知、动态属性和知识分层,并将其命名为LLMFriSPG,如下图所示:
其中:
- 实体实例和事件实例统称为实例;
- SPG属性分为知识和信息领域,也称为静态和动态区域,与具有强模式约束和开放信息表示的决策专业知识以及文档检索索引知识兼容;
- 红色虚线表示从信息提炼为知识的融合和挖掘过程;
- 增强的文档块表示为提供了可追溯和可解释的文本上下文。
可表示为:
ℳ = {𝒯, ρ, 𝒞, ℒ}
其中:
- ℳ 代表LLMFriSPG中定义的所有类型;
- 𝒯 代表所有实体类型(EntityType)(例如下图中的“Person”)、事件类型类(EventType)以及所有与LPG(Labeled Property Graph,标签属性图)语法声明兼容的预定义属性;
- 𝒞 代表所有概念类型类(ConceptType)、概念及其关系,每个概念树的根节点是一个与LPG语法兼容的概念类型类(如上图中的“TaxoOfPerson”),每个概念节点都有一个独特的概念类型类;
- ρ 代表从实例到概念的归纳关系;
- ℒ 代表定义在逻辑关系和逻辑概念上的可执行规则全集。
对于𝒯 :
其中:
代表类型
的所有属性和关系;
代表领域专家预先定义的部分;
表示以临时方式添加的部分;
表示系统内置属性,例如支持块(supporting_chunks)、描述(description)、摘要(summary)和归属(belongTo)。
对于任何实例 ,将
的所有类型表示为
:
- 支持块表示包含实例
的所有文本块集合,用户在KAG构建阶段定义块生成策略和块的最大长度;
- 描述表示特定于类
的一般描述信息:
- 值得注意的是,添加到类型
和实例
的描述的意义不同,当描述附加到
时,表示该类型的全局描述;
- 相反,当它与实例
相关联时,表示与原始文档上下文一致的通用描述信息;
- 这种描述可以有效地帮助LLM理解特定实例或类型的精确含义,并可用于信息提取、实体链接和摘要生成等任务。
- 值得注意的是,添加到类型
- 摘要表示
或
在原始文档上下文中的概要;
- 归属表示从实例到概念的归纳语义,每个实体类型或事件类型都可以通过归属与概念类型相关联。
值得注意的是:
- 𝒯 和𝒞 有不同的功能:
采用面向对象原则以更好地匹配LPG的表示,而𝒞 由基于文本的概念树管理;
和
可以分别实例化:也就是说,它们共享相同的类声明,但在实例存储空间中,预定义的静态属性和实时添加的动态属性可以共存,但是KAG也支持只实例化其中一个;这种方法可以更好地平衡专业决策和信息检索的应用场景,一般信息检索场景主要实例化动态属性,而专业决策应用场景主要实例化静态属性,用户可以根据业务场景需求在易用性和专业性之间取得平衡;
和
共享相同的概念术语:概念是独立于特定文档或实例的通用常识知识,不同实例被链接到同一个概念节点,以达到分类实例的目的,KAG可以通过概念图实现LLM与实例之间的语义对齐,概念也可以用作知识检索的导航。
如下图所示,为了更准确地定义信息和知识层次结构,本文将知识和信息表示分为三个层次:
- 知识层定义为
(KG Schema-constraint),它代表符合领域模式约束并经过总结、集成和评估的领域知识;
- 图信息层定义为
(KG schema-free),它代表通过信息提取获得实体和关系等图数据;
- 原始块层定义为
(Raw Chunks),它代表语义分割后的原始文档块;
并且:
- 知识层(
)严格遵循SPG语义规范,并支持在严格的模式约束下构建知识体系和定义逻辑规则,SPG要求领域知识必须具有预定义的模式约束,确保了知识的高准确性和逻辑的严密性;然而,这种依赖于人工标注的构建方式,使得其构建成本较高,且信息的完整性有待提高;
- 图信息层(
)与知识层(
)共享实体类型、事件类型和概念体系,并为
提供了有效的信息补充;
- 图信息层(
)与原始块层(
)之间构建的支撑块、摘要和描述边,形成了基于图结构的倒排索引,极大地提高了
的信息完整性,使其成为
的有力原始文本上下文补充。
如上图右侧所示,在特定领域应用中,、
和
分别代表了它们在解决目标领域问题时的知识覆盖范围:
- 如果应用对知识准确性和逻辑严密性有更高的要求,则需要构建更多的领域结构化知识,并投入更多的专家资源以扩大
的覆盖范围;
- 如果应用更注重检索效率,并对信息的一定损失或错误有一定的容忍度,则应扩大
的覆盖范围,充分利用KAG的自动化知识构建能力,减少专家资源的消耗。
2.2 互指索引
KAG构建器(KAG-Builder)包括三个紧密相连的流程:结构化信息获取、知识语义对齐和图存储写入。主要目标包括:
- 在图结构与文本块之间构建互索引,为图结构提供更丰富的描述性上下文;
- 利用概念语义图对不同粒度的知识进行对齐,减少噪声,增强图的连通性。
上图展示了KAG-Builder处理领域非结构化文档的流水线。流程从左至右:
- 首先,输入文档,将文档进行语义分块;
- 接着,将语义块通过信息抽取获取短语和三元组;
- 然后,通过语义对齐进行消歧和整合;
- 最终,生成的知识图谱被存储起来。
如下图是一个KAG-Builder的示例:
2.2.1 语义分块
基于文档的结构层次和段落之间的内在逻辑联系,利用系统内置提示(prompts)实现了语义分块过程。这种语义分块产生的块既符合长度约束(特别是针对LLM的上下文窗口大小约束),又保持语义连贯性,确保每个块内的内容在主题上是一致的。
在 中定义了“块实体类型”,包含 id、摘要和主文本等字段。语义分割后得到的每个块将被写入一个“块”实例,其中id是一个由articleID、paraCode、idInPara通过连接符“#”拼接而成的复合字段,以确保连续的块在id空间中是相邻的,其中:
- articleID代表全局唯一的文章ID;
- paraCode代表文章中的段落代码;
- idInPara 段落中每个块的顺序代码;
因此,内容上的邻接关系在它们的标识符上也表现为顺序上的邻接。
原始文档与其分割出的块之间建立了双向关系,便于在文档内容的不同粒度间进行导航和理解上下文。这种结构化的分割方法不仅优化了与大型语言模型的兼容性,还保留了并增强了文档的内在语义结构和关联性。
2.2.2 更具描述性的上下文信息提取
在给定数据集的基础上,采用大语言模型来提取实体、事件、概念和关系,构建知识图谱。
采用的大语言模型可以是无需微调的LLM(如GPT-3.5、DeepSeek、QWen等)或微调的小尺寸大模型Hum。
然后,构建 与
之间的互索引结构,实现跨文档的实体和关系链接。分为三个步骤:
- 首先,逐块提取实体集
;
- 其次,提取与所有实体相关联的事件集
,并迭代提取实体集
中所有实体之间的关系集
;
- 最后,完成实例与其
之间的所有上位关系。
为了后续的知识对齐阶段提供便利,并解决Wikidata和ConceptNet等知识短语识别度低的问题,在实体提取阶段,使用LLMs为每个实例 生成内置属性描述、摘要、语义类型、
、描述 语义类型,根据
、
的结构将它们存储在
实例存储中,并按照
和
的结构进行组织。
2.2.3 领域知识注入与约束
当开放信息抽取(openIE)应用于专业领域时,可能会引入不相关的噪声。这些噪声和不相关的语料库可能会显著降低LLMs的性能,因此将提取的信息与领域知识对齐是一个难题。
KAG中的领域知识对齐能力包括:
领域术语和概念注入。采用迭代提取方法:
- 首先,将领域概念和术语及其描述存储在KG存储中;
- 然后,通过openIE提取文档中的所有实例,执行向量检索以获得所有可能的概念和术语集
;
- 最后,将概念和术语集添加到提取提示中,并进行另一次提取,以获得与领域知识大部分对齐的集合
。
- 模式约束提取。在垂直专业领域中,如药品说明书、体检报告、政务、在线订单数据、结构化数据表等,文档之间的数据结构具有强烈的一致性,更适合采用模式约束进行信息提取,结构化提取也便于知识管理和质量提升。对于同一实体类型,如Person,可以预定义属性和关系,如name、gender、placeOfBirth、(Person, hasFather, Person)、(Person, hasFriend, Person),也可以直接通过openIE提取三元组,如(Jay Chou, spgClass, Person)、(Jay Chou, constellation, Capricorn)、(Jay Chou, record company, Universal Music Group)。
- 按文档类型预定义知识结构。专业文件如药品说明书、政务文件和法律定义通常具有相对标准化的文档结构。每种类型的文档可以定义为一个实体类型,不同的段落代表实体的不同属性。以政务为例,可以预定义政府事务实体类型及其属性,如行政区划、服务程序、所需材料、服务地点和目标群体。划分的块是不同属性的值。如果用户询问“在西湖区申请住房公积金需要哪些材料?”,可以直接提取对应属性所需材料的块来回答这个问题,避免LLM重新生成可能引起的幻觉。
2.2.4 文本块向量和知识结构之间的互索引
KAG的互索引机制遵循LLMFriSPG的语义表示,是一套知识管理和存储方案,涵盖四个核心数据结构:
- 共享模式,作为项目层面预设的SPG类的粗粒度类型,囊括了实体类型、概念类型和事件类型,它们作为高层分类,例如人物、组织、地理位置、日期、生物、作品、事件;
- 实例图,囊括了
和
中的所有事件和实体实例,无论是通过无模式的开放信息抽取还是通过模式约束的结构化抽取得到的实例,均存储于KG存储中;
- 文本块,是一种特殊的实体节点,符合块实体类型的定义;
- 概念图,作为知识对齐的核心,由一系列概念及其关系构成,概念节点代表了实例的细粒度类型,通过关系预测,实例节点能够与概念节点相连,从而获得其细粒度的语义类型。
此外,还有两种存储结构:
- KG存储,将KG数据结构存储于LPG数据库中,例如TuGraph、Neo4J;
- 向量存储,将文本和向量存储于向量存储引擎中,如ElasticSearch、Milvus,或是LPG引擎内置的向量存储。
2.3 逻辑形式求解器
在攻克复杂问题的道路上,通常遵循三大核心步骤:规划、推理和检索:
- 规划:将问题拆解是一种规划行为,旨在明确接下来的解题方向;
- 推理:包括基于拆解后的问题检索相关信息,根据检索结果推导出问题的答案,或者在现有信息不足以解答时,对子问题进行进一步的拆解;
- 检索:为了寻找能够作为原始问题或拆解后的子问题参考依据的内容。
在传统RAG中,由于各模块间的互动基于自然语言的向量表达,因此常常出现偏差。
借鉴知识图谱问答中常用的逻辑形式,设计了一种具备推理与检索功能的可执行语言,这种语言能够将问题拆解为多个逻辑表达式,每个表达式都可能涵盖检索或逻辑运算的功能。这一过程通过互索引机制实现。同时,受到ReSP的启发,KAG设计了一种基于反思和全局记忆的多轮解题机制:
- 首先,将当前问题
分解为一系列逻辑形式的子问题
,然后通过混合推理来逐一解决;
- 如果能够通过结构化知识的多跳推理直接得到确切答案,系统将直接返回结果;
- 若非如此,系统将进行反思:将与
相关的答案和检索结果存入全局记忆,并判断问题是否已解决;
- 如果问题仍未解决,系统将生成额外问题并进入下一轮迭代。
伪代码如下:
上图展示了该过程,左侧展示了知识图谱构建过程,右侧则展示了整个推理和迭代流程。
这种逻辑形式语言具有以下三大优势:
- 采用符号语言,增强了问题拆解和推理的严谨性与可解释性;
- 充分利用LLMFriSPG的层次化表示,通过符号图结构引导事实和文本知识的检索;
- 整合问题拆解与检索流程,简化了系统复杂度。
上图展示了一个该框架下的多轮对话情景。
- 首轮对话中,尽管无法精确得知瘟疫发生的次数,但提取的信息显示:“威尼斯,这位音乐巨匠维瓦尔第的诞生地,曾遭受过毁灭性的黑死病侵袭,也就是人们常说的大瘟疫。这场由鼠疫杆菌引发的瘟疫在欧亚大陆造成了 7500 万至 2 亿人的死亡,尤其在 1347 至 1351 年的欧洲达到了顶峰。这场瘟疫给欧洲带来了剧烈的动荡。虽然威尼斯没有详细的瘟疫发生记录,但可以肯定的是,这座城市在 14 世纪中期受到了冲击。”;
- 经过两轮迭代后,最终确定瘟疫在威尼斯发生了 22 次。
2.3.1 逻辑形式规划
如上表所示,逻辑函数是一系列执行动作表示。通过精心规划这些表达式的组合,可以将复杂问题拆解,进而推理出精细的解决方案:
- 检索:依据SPO检索所得的知识和信息,同一表达式中不应重复出现
、
、
;查询时可对
、
、
施加约束;多跳查询需要多次检索;若当前变量指向之前提及的变量,则变量名需与所引用变量名一致,仅需提供变量名;首次引用时指定知识类型和名称。
- 排序:对检索结果进行排序,其中:
代表检索到的SPO(主体-谓语-宾语)的变量名(
,
或
,
,
);
定义排序方向,
表示升序,
表示降序;
表示输出前N个结果。
- 数学:执行数学运算,其中:
使用LaTeX语法,可对检索结果(集合)或常数进行计算;
表示计算结果,可用作后续操作中的变量名。
- 推理:根据检索或计算结果回答问题。
、
可以是检索到的SPO的变量名或常数。运算符
分别表示
蕴含
、
大于
、
小于
和
等于
。
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 知识对齐
利用信息提取构建知识图谱索引和基于向量相似度的检索在知识对齐方面存在三个主要缺陷:
- 知识间语义关系错位:正确答案与查询之间通常需要特定的语义关系,例如“包含”、“导致”和“属于”。然而,检索过程所依赖的相似性是一种缺乏属性和方向的弱语义度量,可能导致内容检索不精确;
- 知识粒度不一致:开放信息抽取带来的知识粒度差异、噪声和不相关性问题对知识管理构成了巨大挑战。语言的多样性导致了众多的同义词或类似节点,使得知识元素间的连通性降低,检索召回率不完整;
- 与领域知识结构不匹配:特定领域内缺乏有组织、系统化的知识。本应相互关联的知识呈现碎片化,导致检索内容缺乏专业性。
为解决这些问题,本文提出了一种解决方案,通过语义推理利用概念图来增强离线索引和在线检索,包括知识实例标准化、实例到概念的链接、语义关系完善和领域知识注入等任务:
- 在提取阶段为每个实例、概念或关系添加了描述性文本信息,以提高其可解释性和上下文相关性;
- KAG支持注入领域概念和术语知识,以减少垂直领域中知识粒度不匹配造成的噪声问题。
概念推理的目标是充分利用向量检索和概念推理,基于前述知识结构完成概念关系,提高领域知识图谱的准确性和连通性。
如上表所示,总结了检索和推理通常需要的六种语义关系:
- synonym:同义词
- isA:是...的一种类型,上位关系
- isPartOf:是...的一部分,包含关系
- contains:包含
- belongTo:属于,归纳关系
- causes:导致,因果关系
更多语义关系参考链接🔗:Semantic Classification of Concept · OpenSPG
2.4.1 增强索引
通过语义推理增强索引的过程,实际是利用大型语言模型预测索引项之间的语义关系或相关知识元素,涵盖以下策略:
知识实例的消歧和融合:以实体 为例,首先,利用实体
的直接关联和描述信息来预测同义词关系,从而获得实体的同义词实例集
。接着,从同义词集
中确定目标实体
。最终,应用实体融合规则,将同义词集
中剩余实例的属性和关系复制到目标实体
,并将其名称添加为目标实体
的同义词,同时立即删除这些剩余实例;
预测实例与概念间的关系:对于每个知识实例(例如事件、实体),预测其对应的概念,并添加推导出的三元组 到知识索引中。比如:<Chamber, belongTo, Legislative Body>意味着Chamber属于分类中的立法机构;
完善概念及其相互关系:在提取过程中,利用概念推理来完善语义类型和 之间的所有上位词和
关系。比如,可以在提取阶段得知Chamber的语义类型是“立法机构”,其
是“组织”。通过语义完善,能够得出<Legislative Body, isA, Government Agency>, <Government Agency, isA, Organization>。这样的语义完善使得
空间的三元组信息更加完整,节点之间的连通性也更加紧密。
2.4.2 增强检索
在检索阶段,使用语义关系推理根据逻辑形式中的短语和类型来搜索知识图谱索引。对于逻辑形式中提到的类型或关系,采用结合语义关系推理与相似度检索的方法,以替代传统的相似度检索方法。
这种检索方法使检索路径更加专业和逻辑化,从而获得正确答案:
- 首先,混合推理进行精确的类型匹配和实体链接;
- 如果类型匹配失败,则进行语义推理。如下图所示,如果类型“政党”匹配失败,则使用语义推理预测“政党”包含“政治派别”,并从“政治派别”开始进行推理或路径计算。
2.5 KAG模型
KAG涵盖了两个核心计算流程:离线构建索引和在线处理查询与生成答案。
在小规模语言模型盛行的时代,这些任务通常需要两个独立的处理流程,每个流程都包含多个特定任务的NLP模型。这种设计不仅增加了应用系统的复杂性,提高了搭建成本,还因为模块间的错误传播而不可避免地带来了级联损失。与此相对,大型语言模型作为一种能力复合体,有潜力将这些流程统一为一个集成的、同步的端到端推理过程。
如上图,索引构建和问答生成的过程包含相似的步骤。这两个流程都可以概括为分类、实体识别、实体关系识别、语义对齐、嵌入以及信息块、实例或查询聚焦的摘要。
- 分类、实体识别和实体关系识别可以归为自然语言理解(NLU);
- 语义对齐和嵌入可以归类为自然语言推理(NLI);
- 信息块、实例或查询聚焦的摘要可以归入自然语言生成(NLG)。
一个 RAG 系统依赖的自然语言处理的三大核心能力是NLU、NLI和NLG。
为了减少将模型串联成流水线所带来的级联损失,将多个推理过程融合为单一推理过程。
总结
为了在垂直领域构建专业知识服务,充分发挥符号知识图谱和参数化LLMs的能力和优势,同时显著降低领域知识图谱的构建成本,本文提出了 KAG 框架,并尝试加速其在专业领域的应用。在本文中,详细介绍了专业知识服务必须具备的知识准确性、信息完整性和逻辑严谨性等关键特征。同时,还介绍了如LLMs友好知识表示、知识结构和文本块互索引、语义推理知识对齐、逻辑形式引导的混合推理与求解以及KAG模型等创新。
未来仍需探索更多工作以持续降低KG构建成本,并提高推理的可解释性和透明度,例如多知识提取、基于OneGraph的知识对齐、领域知识注入、大规模指令合成、知识逻辑约束的幻觉抑制等。
下周将对KAG代码部分做详细解读。