近日,蚂蚁集团知识引擎负责人梁磊,在外滩大会分享了团队在过去半年中,在知识图谱与大型语言模型融合研究方面的工作进展,发布了国内首个专业领域知识增强服务框架 KAG,助力构建具备知识增强功能的专业智能体。本文是报告内容的文字整理。
相关技术报告 arXiv 地址:https://arxiv.org/pdf/2409.13731
本次我们公布了 KAG 的整体技术报告。我们希望真正融合知识图谱的符号计算和向量检索的优势,因为它们在很多方面是互补的。同时,利用大语言模型的理解和生成能力,构建一个知识增强的大语言模型生成系统。KAG技术框架将持续迭代,技术报告也会不断更新。
我们即将在 OpenSPG 开源项目中发布 KAG 框架,
GitHub 地址:https://github.com/OpenSPG/KAG
01 大模型垂直领域应用的关键问题
经过近两年的研究与实践,业界已普遍认识到大语言模型的优势与局限性,以及其在特定行业应用中的挑战。虽然大语言模型展现了强大的理解与生成能力,但在专业领域中仍存在缺乏领域知识、难以进行复杂决策及可靠性不足等问题。我们认为“可信”是大语言模型在实际场景中落地的关键前提。
1.1 LLM 不具备严谨的思考能力
首先,大语言模型无法提供严谨的推理能力。例如,我们用“《1989 一念间》和《极品绝配》共同的主演是谁?”这个问题,分别测试了国内几款大型语言模型,结果显示回复的准确性和一致性较低。即便某些模型能给出答案,也存在逻辑错误或问题拆解不当的情况。随着条件变的复杂,如变换条件为“男主演” “女主演” 或添加时间约束,准确率和稳定性会不断下降。
为解决这些问题,行业内进行了诸多探索。比如,通过构建 Chain-of-Thought (COT) 模型,定义 Multiple/Tree/Graph 思维链模版,引导 LLM 合理拆解问题。今年以来,越来越多的研究聚焦于将 RAG 技术融入到大语言模型中,以弥补其在事实信息上的不足。进一步的发展则涉及 GraphRAG,即采用图结构来优化检索机制。
目前,引入外部知识库的方法被广泛应用,但即使是在引入了如 RAG 这样的技术,将特定领域的知识库或事实文档提供给大型语言模型进行重新生成时,仍不能完全保证生成答案的准确性。
1.2 事实、逻辑、精准性错误
下图左侧展示的是用大模型,对政府报告某个指标的解读示例,尽管业务人员已经提前做了标注,大模型仍然会加入自己的理解,导致信息失真或缺乏依据的错误。例如,提到某市在某省的排名首位,但从业务角度判断,这是不正确的。类似地,关于某银行 8000 万股权流拍的信息在原始文档中并不存在。更为严重的是,模型还会产生数字和逻辑方面的错误,原始文档中提供的业务指标属于 2022 年,生成的内容却标为 2023 年。
即使提供了外部知识库,召回过程中的不准确问题依然存在。右侧示例说明了基于向量计算的 RAG 方法存在的缺陷。例如,在查询如何查找养老金时,直接利用向量计算召回的文档,与业务专家定义的知识并不相关。
在垂直领域内,许多知识虽然在表面上看似不相似,但实际上紧密相关。例如,“养老金”属于“五险一金”的范畴,与国家政策密切相关,大模型不能对此类信息进行随意生成。因此,需要预定义的领域知识结构来约束模型的行为,并提供有效的知识输入。
1.3 通用 RAG 也难以解决 LLM 幻觉问题蚂蚁近期发布了一项关于 RAG 引发幻觉现象的测评报告。
通常人们认为,引入 RAG 和外部知识库后,就能有效避免大模型的幻觉问题。其实不然,这种方式产生的幻觉问题甚至更为隐蔽,不易被察觉。如下图所示,原文中提到功能饮料中的维生素、矿物质等成分对运动后补充身体营养、消除疲劳有益,而经模型重写后,可能被错误地描述为“对增加疲劳有一定作用”,这种误导性的信息会对用户造成困扰。
此外,还存在实体反转的问题,如将原句中“变成蛹后有 15-18 天”重写为“变成蛹后有 25-32 天”。当模型生成的内容达到数百甚至数千字时,这类细节错误会变得更难以发现。
根据评估结果显示,即便加入了 RAG 技术,大型语言模型仍然存在 30%-40% 的幻觉率,这是一个相当高的比例。因此,在垂直领域应用大型语言模型时,必须满足极高的专业性要求。
1.4 专业知识服务的挑战和要求
在真实的业务决策场景中,无论是生成研究报告还是处理车险理赔,解决复杂问题时都需要经过严格的步骤,包括问题规划、数据收集、执行决策以及生成和反馈等流程。在将大语言模型应用到专业领域时,也必须有一个严格且可控的决策过程。
在基于大模型提供专业知识服务时,为了更好地服务于社会和特定领域,必须满足以下几个条件:
- 首先,必须确保知识的准确性,包括知识边界的完整性、知识结构和语义的清晰性;
- 其次,需要具备逻辑严谨性、时间敏感性和数字敏感性;
- 最后,还需要完备的上下文信息,以方便在知识决策时获取完备的支持信息;
以上也是当前多数大模型所欠缺的能力。鉴于此,今年上半年我们进行了大量探索,并正式着手构建一个基于知识增强的、面向垂直领域的可控生成框架。
02 KAG:专业领域知识增强服务框架
下图展示了我们整体的知识增强生成框架 KAG(Knowledge-Enhanced Generation) 的原理,该框架是在 OpenSPG 开源项目基础上的升级。我们针对当前大语言模型与知识图谱结合的五个方面进行了增强:
首先,我们实现了知识表示的增强。原有知识图谱受到强 Schema 约束,导致应用门槛较高且数据较为稀疏,使得在回答垂直领域问题时经常无解。为此,我们对知识表示进行了面向大语言模型的优化升级,使知识图谱能够更好地支持大型语言模型的应用。
其次,图作为一个优秀的集成工具,可以更好地连接各类知识,无论是严谨的学术知识还是文本中的信息。
因此,我们创建了互索引结构,将原来的 term-based 倒排索引,升级成 graph-based 倒排索引。这样不仅能够有效地索引文档,还能保持文档间的语义关联性和实体间的连贯性。
第三,在推理过程中,我们采用了符号化拆解方式,以确保逻辑严谨性。语言模型生成的语言很难保证逻辑一致性,因此我们引入了 LogicForm 驱动的 Solver 和 Reasoning,来进行基于符号的拆解。
第四,为了弥合知识图谱构建成本与实际应用效率之间的差距,我们借鉴了开放信息抽取 (open information extraction) 的方法来构建知识图谱,这种方法大大降低了构建成本,但也引入了更多噪声。因此,我们引入了知识对齐 (knowledge alignment) 机制,利用概念知识完成开放信息与领域知识之间的对齐,旨在平衡开放信息抽取与语义对齐的需求。
最后,我们开发了 KAG model,旨在更好地融合大型语言模型与知识图谱的能力,实现更有效的协同。通过指令合成促进二者间的有机互动,最终目标是充分整合符号计算和向量检索的优势,充分发挥语言模型的理解和生成能力,从而推动其在垂直领域的应用和能力提升。
OpenSPG GitHubhttps://github.com/OpenSPG/openspg
下面将详细介绍这些关键升级的细节:
2.1 LLMs 友好的知识表示
我们首先对语义表示进行了升级,这是继去年 OpenSPG 项目开源后的进一步发展。OpenSPG 项目的初衷之一,就是将知识图谱从二元静态结构升级为多元动态结构。今年,我们在深度上下文感知方面取得了进展,增强了对文本上下文的理解,以便更好地服务于语言模型,提供更丰富的上下文信息。
当前的图结构主要分为两大流派:LPG (Labeled Property Graph) 和 RDF (Resource Description Framework)。LPG 能更好地兼容数据库,因为它具有 Schema 模式,而 RDF 则相对开放。为了更好地支持大型语言模型,并实现从数据 (data) 到信息 (information) 再到知识 (knowledge) 的转变,我们参考了 DIKW 层次范式来实现统一的融合。对图结构进行了升级,使得在同一实体空间中,既能进行 Schema 约束的建模也能进行无模式 (schema-free) 的建模。
此外,我们可以基于实体和关系对文档进行倒排索引,这样既可以在同一空间内完成图计算中的图遍历,也可以关联到相应的文档片段 (chunk),进行相关性的召回。
这里简要回顾一下今年大火的 GraphRAG 范式的两种主要做法:
一种是微软的 GraphRAG,实际上微软的 GraphRAG 并不算是严格意义上的 GraphRAG,它只是用知识图谱的方式组织了文档结构,做了分层摘要,并且最终用摘要来回答用户问题。这种方式反而会引入更多幻觉,这种做法在评估生成答案时,只考虑了流畅性、问题支持度和全面性,而没有从事实性角度进行评价。我们的测评显示,微软 GraphRAG 在事实回答准确率方面表现并不佳。
另一种以 HippoRAG 为代表,它采用图的方式构建倒排索引,并用图的方式召回文档来回答问题。在多跳信息问答上,相比传统的 Naive RAG 方法,HippoRAG表现出了显著提升。
我们希望能够在垂直领域实现更准确的事实性回答,同时尽量不破坏知识的分层结构。这意味着在同一领域内,既有专业且严谨的 Schema 约束知识,也有通过文档提取出的图结构信息或知识,以及原始文档。如果能够实现这些不同层级知识的融合,就可以构建一个从严格到相对宽松的决策范式。
2.2 互索引:结构化知识与文本数据互索引结构
关键升级二,我们从原有的 term-based 倒排索引升级到了 graph-based 倒排索引。当我们获取原始文档后,首先进行开放信息抽取。关于结构化构建的部分就不展开讲了,传统知识图谱中及我们开源的 OpenSPG 中都已经有了较为成熟的解决方案。
我们会逐步抽取文档中的关键元素及描述性信息,并对文本块 (chunk) 进行有效的语义切分,最终形成的图结构将包含三部分:具体业务实体、通用概念知识以及文本块。这样以来,我们既可以在图上进行遍历,也可以检索文本块,并进行有效的分析。如上图左侧所示,通过图结构可以更有效地组织文档间的关联。
这部分是我们与浙江大学合作的 OneKE 项目的升级。在今年 5 月发布的版本中,OneKE 主要支持结构化信息抽取,使得在较小参数量的大模型上也能取得与更大参数量大模型相媲美的效果。它在实体识别、关系抽取和事件抽取等方面表现出色。最近,我们又做了进一步升级,使其能够同时支持开放信息抽取。
2.3 混合推理:符号决策、向量检索与大模型混合推理
第三个升级是构建一个混合推理引擎。就像人类在回答问题前,要经过思考和规划一样,我们开发了一套技术范式,基于知识图谱来支撑严谨决策的问题。采用混合互索引的方式,既支持时间、数值、逻辑敏感的复杂决策执行,又能通过信息检索补充知识图谱的稀疏性和知识不足之处。近期 OpenAI 发布的 o1 模型也是在长链条逻辑推理上有了重大进步,但出于竞争优势的考虑,不向用户展示原始思维链。
在 KAG 框架中,我们采用符号驱动的问题求解方法,能够生成逻辑上可执行的 Logic form 表达式,即 Logic Query作为中间态的逻辑执行计划。获得 Logic Query 后,由于所有数据均基于图结构构建,我们就可以在图空间中进行操作。图空间内部存在分层结构,首先是逻辑严谨的知识,其次是开放的信息知识。
这使得我们可以分层决策,首先在逻辑严谨的知识层进行决策,如果没有找到答案,则在开放信息层继续决策,如果仍未找到答案,则在 chunk 空间进行关联检索,从而显著提高召回率和回答的准确性。
最后的生成阶段,目前我们仍在探索初期,目前沿用了业界一些主流方法,例如 query-focused summary,这种方法能根据 Query 结构来提取答案。传统知识图谱或索引的一个主要问题是索引构建与用户查询相分离,容易导致知识粒度不匹配,而通过 query-focused 总结方式可以更好地弥补这一差距。
下图展示了我们技术报告中提到的整体架构图,右侧是一个具体示例。例如,当我们询问“美国内战后,主张对南方各州实行严厉惩罚的政党在 2010 年控制了哪个机构?”时,系统会将其拆解成逻辑符号表达形式。这种表达方式可以直接转化为 KGDSL,但考虑到自然语言生成的函数表达的准确率和简洁性,我们选择采用这种形式来表示逻辑执行计划。
目前,我们采取了三阶段推理,在生成之前,首先在图谱存储空间中进行 exact match,接着进行 SPO 的 Retrieval,然后是 chunk 的 Retrieval,实现分层检索与推理。
在生成阶段,我们引入图谱知识来缓解或抑制大语言模型生成时产生的幻觉。我们发现,文本中抽取知识图谱时,文本与知识图谱之间形成了良好的结构化数据与文本映射关系。首先,从文本到结构化,可以提取出关键要素信息;其次,结构化的图谱使大语言模型熟悉基于此类图结构生成文本的任务形式。
因此,我们设计了文本到 SPO 及 SPO 到文本之间的双向映射任务,前者用于知识抽取,后者用于生成过程。通过这种方式合成语料,无论是用于 SFT 阶段还是强化对齐阶段,都能较好减少大型语言模型的幻觉。
通过原始文本可以抽取多个三元组,通过微调和强化对齐,将这些信息注入语言模型中,在生成时更好地遵循结构范式。我们将这一能力应用到内部业务中,例如左侧的区域风险报告生成场景。相较于原有的归档模型生成,幻觉率有了明显下降。我们认为这种方式是有效的,因此也将继续深入探索。
2.4 语义对齐:平衡信息检索与专业决策
第四个关键升级在于平衡专业决策与信息检索。信息检索本质上是对搜索引擎的升级,允许一定程度的错误率,但专业决策,错误的容忍度是很低。在统一的知识服务框架下,同时进行信息检索和专业决策是一项挑战。因此,我们对这一能力进行了升级,在顶层通过开放信息抽取获得结构化要素,在底层通过 Schema 约束构建更为严谨的知识。
最终,通过基于概念的语义对齐,构建一个基于 SPG 的领域知识图谱,能更好地兼容信息检索所需的开放抽取能力,和专业决策所需的 Schema 约束构建能力。
下面是一个简单的示例,展示了我们如何基于开放信息抽取构建一个语义对齐后的图谱。从左侧的原始文本开始,对其进行语义切分,再进一步信息抽取,即可建立实体之间的关联,此时图谱仍包含大量噪声。当前业界主流的 GraphRAG 解决方案仅达到 information extraction 阶段,即生成三元组图后直接写入图数据库。然而,语义对齐才是知识图谱构建最困难的部分。
为此,我们进行了大量探索,比如在提取的信息中运用图谱的传统方法,如实体链接、实体融合、概念与事实分层等,最终整个图结构的密度和语义完备性得到了显著改善。
此外,我们还在探索如何基于文档类知识进行概念分层和有效补全,并充分利用外部知识图谱和知识库。这方面我们正与浙江大学及OpenKG 合作推进 OneGraph 项目,期望通过 OneGraph 增强知识对齐能力,降低知识图谱构建成本。
除了开放域外,我们在垂直领域也进行了探索。垂直领域包含大量术语库、词汇库和概念库,例如医疗术语、法律术语和经济术语,这些术语对于大型语言模型来说可能难以完全掌握。因此,我们在开放抽取过程中尝试实现领域词汇和概念的注入,以提高抽取效率和与领域知识对齐的准确性。
经过优化,我们不仅验证了 KAG 在垂直领域的适应性,我们还在通用数据集多跳问答中与现有 RAG 方法进行了比较,发现它明显优于 SOTA 方法,在 2wiki 上 F1 相对提升 33.5%,在 hotpotQA 上相对提高 19.6% 。 我们正在继续优化这一框架,并通过端到端实验和消融实验指标证明了其有效性。通过逻辑符号驱动的推理和概念对齐的方式,我们证实了这一框架的有效性。
我们希望将这一技术能力推向社区,吸引更多关注者共同建设这一框架。为了验证该框架在垂直领域的适用性,今年以来我们一直支持蚂蚁智能助手在医疗和政务场景中的应用。在政务问答场景中,相较于传统的 Naive RAG 方法,准确率从 66% 提升到了 91%。在医疗问答方面,我们目前的准确率超过 80%,在更垂直的指标解读任务上,已达到 90% 以上的准确率,我们也在增加更多领域数据覆盖持续优化。这些场景证明了这套方法不仅适用于通用领域的信息检索,也适用于垂直领域的专业决策。
2.5 KAG 模型:定义 LLMs 与 KGs 之间的协同任务
最后一部分会简要介绍 KAG Model,其主要目的是降低大型语言模型与知识图谱结合的成本。直接访问诸如 GPT、QWen 等基础大模型的成本过高,我们发现通过指令合成,可以在较小模型上获得接近甚至匹敌更大模型的效果。
基于此,我们对大型语言模型和知识图谱的能力进行了对齐,特别是针对知识图谱所需的关键能力:
- 首先,自然语言理解能力。无论是面对用户查询还是原始文档,核心任务都是从文本中提取结构化信息,揭示信息间的关联和逻辑依赖;
- 其次,自然语言推理能力。对于图谱任务,我们希望通过自然语言推理提升概念补全、思维链和知识融合的效率。从语言模型的视角来看,当我们完成信息抽取后,需要增强信息之间的关联性。
- 最后,自然语言生成能力。传统知识图谱如 ConceptNet 或 WordNet 存在比较大的缺陷——缺乏 description,没有上下文支持。知识图谱维护成本高,原因之一是缺乏解释性信息。因此,在构建图谱时,我们要求对概念词汇附带描述信息,否则我们认为知识是不可靠的。而且仅有原始文本术语和短语片段是不足的,因此我们利用语言模型去生成通用的概念描述信息。
在大语言模型生成过程中,我们致力于有效注入知识结构,使其符合知识结构约束。我们发现知识图谱是一个良好的指令合成器,其结构化特性有助于更好地标记文本内部关联。通过知识图谱的语义明确、结构清晰的大规模概念图谱或垂直领域图谱,以及原始文本语料,可以合成大量指令。
例如,通过百科常识图谱中张学友与刘德华的关联,可以轻松合成多种指令,包括任务拆解逻辑结构指令,使其更好地拆解问题,借助图谱指导确保生成的指令可执行且有答案。不符合答案的指令将获负向评分,符合答案的指令则获正向奖励。还可以用于信息抽取、自然语言推理等。
针对现有的公开概念图谱,除了上下位、包含关系、逻辑因果关系外,还包含数十种语义关系,如归纳、演绎、溯因等经典认知科学中的问题模式,以及顺承、上位、包含、阻断等 30 多种概念语义关系,均可合成自然语言推理指令。这些模式都是专家多年总结的人类决策范式,若能注入语言模型,将有助于提升其推理和理解能力。
在模型能力方面,我们发现通过指令合成和语义对齐,可以使小型模型达到与大型模型相媲美的效果。在自然语言常识概念推理上,对 Llama3 8B 模型进行微调后,在概念补全等任务上的准确率高于 GPT3.5,且性能更优。
知识图谱合成的指令不针对任何特定排行榜,因此这些指令加入语言模型本身后,可以更好地增强其理解与推理能力。将左侧合成的语料添加到通用语言模型中后,整体提升效果良好,尽管在某些排行榜上表现可能有升有降,但总体上有所提升。
03 KAG 在垂直领域的典型应用
接下来将介绍 KAG 技术框架的 2 个实际应用实例。
今年以来,我们一方面支持业务需求,另一方面不断完善 KAG 框架。无论是支付宝生活管家的热点事件功能,还是地方风险报告分析场景,KAG 都能够生成逻辑上更为准确的研报。此外,支付宝 App 今年在政务办事和医疗健康两个重要功能升级中也应用了知识图谱技术。
查看视频
以上这是我们基于 OpenSPG 升级后的一个简单演示。给定任何开放的知识库或文档,可以快速构建知识图谱并完成回答。如果对准确率有一定的容忍度,用户只需要非常简单的操作即可完成。
本次我们公布了 KAG 的整体技术报告。我们希望真正融合知识图谱的符号计算和向量检索的优势,因为它们在很多方面是互补的。同时,利用大语言模型的理解和生成能力,构建一个知识增强的大语言模型生成系统。KAG技术框架将持续迭代,技术报告也会不断更新。
系统既能进行复杂的符号决策,又能在复杂符号决策无法满足需求时,通过向量检索进行补充。在框架的后续版本中,我们将提供一些用户可调的参数。这意味着,如果用户对准确率有极高要求,可以减少生成内容;如果对准确率有一定容忍度,则可以适当放宽标准。用户可以根据应用场景自主调节。
这套能力后续将在 OpenSPG 开源项目中发布,
大家可以通过 OpenSPG GitHub:https://github.com/OpenSPG/openspg
或“SPG 知识图谱”公众号保持关注
我们建立了 OpenSPG 技术交流群,欢迎对知识图谱技术感兴趣的同学,添加小助手微信加入:jqzn-robot。
文章推荐
蚂蚁知识图谱管理系统研究成果获国际顶会认可,KGFabric 论文入选 VLDB 2024
OpenSPG 首个 Release 版本发布,提供成熟可靠的知识构建解决方案
为什么说知识图谱 + RAG > 传统 RAG?