AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


​ODA:基于观察驱动的智能体,用于集成LLMs和知识图谱
发布日期:2024-04-17 08:21:25 浏览次数: 1758


摘要

在各种自然语言处理任务中,大型语言模型(LLMs)和知识图谱(KGs)的集成取得了显著成功。然而,现有的集成LLMs和KGs的方法往往仅基于LLM对问题的分析来导航任务解决过程,忽视了KGs中蕴含的丰富认知潜力。为了解决这一问题,我们引入了基于观察驱动的智能体(ODA),这是一个专为涉及KGs的任务量身定制的AI智能体框架。ODA通过全局观察融入KG推理能力,通过观察、行动和反思的循环范式增强推理能力。面对观察过程中知识的指数级增长,我们创新性地设计了一个递归观察机制。随后,我们将观察到的知识整合到行动和反思模块中。通过大量实验,ODA在几个数据集上展现出最先进的性能,特别是在准确性方面取得了12.87%和8.9%的改进。我们的代码和数据可在ODA上获得。

引言

大型语言模型(LLMs)(Touvron等,2023;Scao等,2022;Muennighoff等,2022;Brown等,2020)在各种自然语言处理任务中展现出非凡的能力。尽管它们取得了令人瞩目的成就,但LLMs往往难以对需要超出其预训练内容的专业知识的查询提供准确的响应。针对这一限制,一种自然而有前途的方法涉及集成外部知识源,如知识图谱(KGs),以增强LLM的推理能力。KGs提供结构化、明确和可解释的知识表示,为克服LLMs固有限制提供了一种协同方法。LLMs与KGs的融合在最近的研究中引起了极大兴趣,支撑着广泛的应用(Pan等,2024),强调了各种应用(Zhang等,2023;Do等,2024;Sun等,2023b)。

图1:LLM与KG集成的示例。观察到的实体显示为白色,未观察到的实体显示为灰色。智能体选择的实体以回答问题的方式突出显示为黄色。

解决集成KG和LLMs任务的现有方法可以分为两组。第一组涉及根据特定问题从KG中检索相关三元组(Wang等,2023b;Luo等,2024;Jiang等,2023)。第二部分采用探索-利用策略,根据问题在图中引导知识利用过程(Sun等,2023b;Guo等,2023)。然而,这两类方法仅仅依靠LLM对问题的分析来导航任务解决过程,忽视了KGs中蕴含的丰富认知潜力。KGs存储了大量信息丰富且符号化的事实,应当与LLM一起深度参与推理过程,而不仅仅被视为知识的静态存储库(Pan等,2024)。正如图1上部面板中的示例,LLM分析问题并导向实体The Call of The WildNarrative location关系。然而,该实体有许多具有该关系的邻近实体,导致LLM错误地推断Canada为答案。相比之下,底部面板展示了KG如何提供揭示The Call of The WildWhite Fang共享位置Yukon的关键模式。如果LLM事先观察到这些信息,它将准确地引导其推理过程朝向正确答案(如底部面板所示)。因此,LLM应采用全局观察,以整合KG中蕴含的广泛知识和复杂模式。实现这一目标面临两个主要挑战:首先,对KG的全局观察可能导致三元组数量的指数增长。如图1上部面板所示,完全处理The Call of the Wild的所有3跳连接是不切实际的。其次,将这种全面观察整合到LLMs现有的推理范式中也带来另一个挑战。如何将观察与LLM的推理过程结合起来对于解决任务至关重要。

受此启发,我们引入了一种新颖的框架,即基于观察驱动的智能体(ODA),旨在充分自主地整合LLM和KG的能力。ODA作为专为KG中心任务设计的AI智能体。ODA参与观察、行动和反思的循环范式。在ODA中,我们设计了一个新颖的观察模块,以有效地绘制KG的自主推理模式。我们的观察模块通过递归进展避免了三元组的指数增长问题。这种方法确保了ODA整合KG和LLM的能力,同时减轻了与KG中过多数据相关的挑战,提高了效率和准确性。在观察阶段之后,ODA通过自主将LLM推理得出的见解与观察到的KG模式相融合来采取行动。ODA可以执行三种不同类型的行动:邻居探索、路径发现和回答。随后,ODA反思其内部状态,考虑其行动的结果和先前的观察。这种迭代过程将持续进行,直到ODA完成手头的任务。

我们进行了大量实验,以验证ODA在四个数据集上的有效性:QALD10-en、T-REx、Zero-Shot RE和Creak。值得注意的是,与竞争基线相比,我们的方法在QALD10-en和T-REx数据集上实现了最先进的性能。具体来说,在QALD10-en和T-REx数据集上,我们观察到准确性分别提高了12.87%和8.9%。我们总结贡献如下:

  • 我们提出了ODA,一种专为KG中心任务量身定制的AI智能体。ODA进行观察以整合KG的推理能力。

  • 我们进一步设计了行动和反思模块,将观察整合到LLM推理中。这种策略利用了KG和LLM的自主推理之间的协同作用。

  • 我们在四个数据集上进行实验,并取得了最先进的性能。

方法

在这项工作中,我们旨在解决与KG相关的任务。让代表用户问题。任务可以定义为在给定问题、任务相关实体和表示为的知识图谱下生成答案。形式上,任务可以表示为:

ODA采用迭代方法解决KG中心任务中固有的挑战。与现有方法不同,这些方法将LLMs和KGs耦合在一起,并仅依靠分析LLM的查询,ODA将观察到的知识自主整合到整个推理过程中,从而做出更明智的决策。为实现这一目标,我们的ODA系统如图2所示,主要由三个关键模块组成,用于任务解决:

  • 观察:该模块有效地观察和处理来自KG环境的相关知识。在每次迭代i中,它构建一个观察子图(表示为Oi)。通过利用从KG中获取的见解和模式,这个子图被自主地整合到一个推理LLM中。这种协同整合使ODA从LLM和KG中获得了增强的能力,使其能够更有效地处理任务。

  • 行动:利用观察子图Oi和ODA记忆(表示为M<i),行动模块,表示为ai,战略性地选择最适合在KG上执行的行动,确保准确回答问题。

  • 反思:利用观察子图Oi,反思模块通过反思从行动步骤中获得的知识提供反馈。反思的知识然后存储在记忆Mi中,用于下一次迭代,促进持续推理。

通过这个迭代过程,ODA在每次迭代i动态更新其观察子图Oi和记忆Mi。每个模块将在接下来的部分详细讨论。

图2:ODA的整体框架。

观察

观察模块专门设计用于检查全局KG知识并在KG环境中导航自主推理过程。在每次迭代i中,它利用任务相关实体Ei和问题q生成一个观察子图Oi。这个过程可以被公式化为

最初,任务相关实体通过问题q中嵌入的实体填充。

对于KG中心任务,观察会导致节点数量爆炸的问题。为了解决观察子图更新过程中的可扩展性挑战,我们提出了一个D轮观察策略,其中D表示最大跳数。每个轮次包括两个步骤:更新和精炼。更新步骤专注于扩展子图,而精炼步骤确保其适当大小,同时不丢失重要信息。 对于每个实体 e ∈ Ei,观察模块在跳数 d 处将观察实体初始化为集合 Ed = *{e}*,其中 d 表示知识图谱中的当前搜索深度。两步更新和优化过程针对每个实体 e 迭代,直到达到 D。具体细节如下:

更新:

  • 对于 中的每个实体 ,从知识图谱中提取相邻三元组。每个三元组采用 的形式,其中 表示关系, 表示尾实体。

  • 通过测量问题与 组合的嵌入之间的余弦相似度来计算问题与三元组之间的相似度分数*:

  • 与实体相关的所有三元组根据它们的相似度分数降序排列。

  • 将前 N 个三元组添加到观察子图 Oi 中。

优化:

  • 进一步通过保留具有最高相似度分数的前 P % 的前 N 个三元组来优化前 N 个三元组。

  • 从优化后的前 P % 三元组中识别尾实体作为下一次迭代的起始观察实体

图 3:ODA 的示例工作流程。在本例中,ODA 以实体 Johann Wolfgang von Goethe 开始观察。在左侧的第一次迭代中,选择 Johann Wolfgang von Goethe 的邻居探索,并将反射三元组 (Johann Wolfgang von Goethe, 未婚伴侣, Lili Schöneman) 存储在内存中。随后,Lili Schöneman 的观察引导 ODA 选择邻居探索动作,并导致将三元组 (Lili Schöneman, 出生地, Offenbach am Main) 存储在内存中,如右侧所示。一旦积累了足够的知识,ODA 触发答案动作,正确识别 Offenbach am Main 作为答案。

算法 1 观察

要求:问题 ,限制

初始化任务相关实体 为问题中的实体

对于 ,执行以下操作:

设定

初始化观察实体

当 $d<d$ 时执行以下操作:<="" p="">

对于 中的实体执行以下操作:

提取相邻三元组

结束

对于 三元组执行以下操作:

计算余弦相似度

结束

对三元组的相似度分数进行排序

将前 个三元组添加到

从前 中提取前 个三元组

使用前 中的 更新

增加

结束

结束

动作

利用 LLM 的能力,动作模块制定战略提示以生成最佳动作。基于其记忆 $M_{<i}$,观察子图 $o_i$="" 和历史动作="" $a_{<i}$,oda="" 选择最准确的动作="" $a_i$。<="" p="">$$a_i=\operatorname{Action}\left(\left[O_i, a_{<i}, m_{<i}\right]\right)="" $$=""

  • 邻居探索: 该动作探索任务相关实体 中实体的知识图邻域,检索所有相邻三元组。这有助于为 ODA 建立上下文并理解知识图谱中的相互关系。

  • 路径发现: 针对任务相关实体 Ei 中的两个实体,该动作搜索连接它们的所有可能路径。每条路径由相互连接的三元组组成,使 ODA 能够探索各种连接并可能揭示隐藏的关系。

  • 答案: 仅当所需信息存在于记忆 M<i 中时,此动作才会回答问题。

选择答案动作后,ODA 将停止观察、动作和反思的迭代循环。利用记忆 M<i 中的可靠知识,它可以直接为问题制定答案。另外,如果选择了邻居探索或路径发现动作,ODA 将从知识图谱中战略性地提取相关知识作为一组三元组。然后,这些提取的三元组将被送入后续的反思步骤进行进一步处理。这里使用的提示可以在表 7 中找到。

实验

2.3 反思

反思模块在评估动作步骤生成的三元组方面发挥关键作用,并随后更新 ODA 记忆 。专为知识图任务设计,记忆 采用子图格式,由与知识图谱的固有结构相一致的路径网络组成,旨在优化效率和相关性。 中的每条路径都包含一组三元组。通过自动集成观察子图 和现有记忆 $M_{<i}$,反思模块提供宝贵的反馈,指导未来的决策制定。这个过程可以形式化为:< p="">$$M_i=\text { Reflection }\left(\left[O_i, a_i, M_{<i}\right]\right) $$="" 结构化为路径网络,反思模块导航这些路径,以确定首个适合整合反射三元组的路径。这种适应性源自将所选路径中最后一个三元组的尾部 与反射三元组的实体 对齐。如果找到匹配的路径,则将反射三元组追加。否则,将基于反射三元组创建新路径。反射三元组的最大大小表示为 。</i}$,反思模块提供宝贵的反馈,指导未来的决策制定。这个过程可以形式化为:<>

随后,反射三元组中的尾实体被指定为下一次迭代的任务相关实体。反思模块使用的具体提示描述可在表 8 中找到。

观察、动作和反思模块在迭代过程中协作,直到触发答案动作或达到最大迭代次数为止。图 3 描述了观察、动作和反思如何共同工作。

表 1:数据集统计。实体 表示从数据集中所有问题中导出的实体大小。

数据集

为了评估我们的 ODA 的性能,我们在四个知识库问答数据集上进行实验:QALD10-en(Perevalov 等,2022)、Creak(Onoe 等,2021)、T-REx(Elsahar 等,2018)和 Zero-Shot RE(Petroni 等,2021)。每个数据集的详细规格见表 1。我们使用 Hits@1(Sun 等,2019)准确率与精确匹配作为评估指标。

设置

我们使用 GPT-4(OpenAI,2023)模型作为 ODA,通过 OpenAI API 进行实验。在实验过程中,我们始终将 GPT-4 的温度值配置为 0.4,并将最大标记长度设置为 500。

在观察步骤中,我们根据初步实验调整了关键参数。我们将 Pt 设置为 10,将 Nt 设置为 50。此外,ODA 循环的最大迭代次数限制为 8。最后,最大跳数 D 设置为 3。至于反思模块,我们将反射三元组的大小 K 设置为 15。

为了建立 Wikidata 知识图数据库并从中检索信息,我们使用了 simple-wikidata-db Python 库。该库提供各种脚本,用于下载 Wikidata 转储,将其组织成分段文件,并在这些分段文件中执行分布式查询。具体来说,我们在五个 AWS EC2 实例上部署了 Wikidata 转储,每个实例都包含一个 768GB 机器和 48 个核心。

考虑到我们的 ODA 在与知识图谱的持续交互中起着重要作用,我们发现在 AWS 上实时提取所需的 Wikidata 知识的平均完成时间为每个 QALD10-en 数据集中的问题-答案对为 50 秒。然而,随着 KBQA 数据集的扩大,使用 AWS 上的 Wikidata 数据库的成本变得极其昂贵。因此,为了解决涉及的计算费用,我们通过为每个 KBQA 数据集生成离线子图的方式提出了解决方案。这个离线子图捕获了每个数据集中实体的 3 跳半径内的所有三元组,包括实体和涉及的关系的属性。值得注意的是,为 T-REx 数据集生成这样的子图,其中包含 4943 个实体(如表 1 中列出的),在实践中大约需要 54 分钟 42.834 秒。

基准模型

为了全面评估 ODA 的有效性,我们针对各种类别的几种 SOTA 模型进行了严格的基准测试。比较涵盖了各种模型,从不使用外部知识的基于提示的方法开始。这些方法包括使用 GPT-3.5 和 GPT-4 进行直接回答,以及 Self-Consistency(Wang 等,2023c)和 CoT(Sun 等,2023b)。另一方面,考虑了结合知识的模型,这些模型采用了精细调整技术,如 SPARQL-QA(Santana 等,2022)、RACo(Yu 等,2022)、RAG(Petroni 等,2021)和 Re2G(Glass 等,2022)。此外,还有 ToG(Sun 等,2023a)模型,它将 LLM 与 KG 集成以增强问答能力。

主要结果

我们的ODA方法在表2中表现优异。平均而言,与使用GPT-4直接回答相比,我们的方法的准确率提高了高达19.58%,与微调模型相比提高了19.28%,与TOG相比提高了7.09%。这些结果显示了我们的方法相对于其他最先进方法的效率和有效性。

此外,我们的ODA在各种数据集上明显优于基于提示的方法,特别是在Zero-Shot REx和QALD10-en上分别提高了65.50%和23.77%。这些结果强调了利用外部知识图谱进行推理和完成问答任务的重要性。

与微调方法相比,我们的ODA方法表现出更优异的性能。具体而言,我们的方法在QALD10-en数据集上的性能提高了21.27%,在Creak数据集上提高了6.99%,在Zero-Shot RE数据集上提高了50.56%。值得注意的是,尽管无需明确训练,但我们的方法所采用的LLM和KG之间的交互比数据驱动的微调技术更为有效。

我们的ODA方法在大多数数据集上表现出明显的性能提升,与TOG方法相比,分别提高了12.87%(QALD10-en)、8.9%(T-REx)和7%(Zero-Shot RE),尽管两种方法都利用了大型语言模型和知识图谱。这种性能差异突显了我们的观察模块的关键作用以及从KG中自主整合推理的有效性。具体而言,我们的方法在QALD10-en数据集上表现出更强大的性能,该数据集以其多跳和复杂推理要求而闻名。这一成就强调了我们的ODA方法有效利用知识图谱中的丰富知识和模式,无缝结合LLM和KG的自主推理优势,成功解决复杂问题。

讨论

为了更好地理解影响我们的ODA的关键因素,我们进行了广泛的分析实验。为了节约计算资源,我们保留了先前提到的数据集(QALD10-en、Creak、T-REx和Zero-Shot RE),但对Creak、T-REx和Zero-Shot RE分别随机抽取了400个示例。

观察效果

为了评估观察模块的有效性,我们对没有观察的模型进行了全面实验。在行动步骤中,ODA仅基于记忆中的知识选择行动。随后,反射步骤根据行动输出的三元组进行反射,并在没有观察指导的情况下更新记忆。

表2:不同方法的性能比较。粗体分数代表所有基于GPT的零-shot方法中的最佳性能。微调的SOTA包括:1:SPARQL-QA(Santana等,2022),2:RACo(Yu等,2022),3:Re2G(Glass等,2022),4:RAG(Petroni等,2021)。

通过对所有数据集进行统计比较,评估了带有和不带有观察的ODA的性能(见表3)。结果显示,带有观察的ODA优于不带观察的ODA,平均提高了3.14%。具体而言,在QALD10-en数据集上,带有观察的ODA比不带观察的ODA提高了5.41%。由于QALD10-en涉及多跳推理,带有观察的ODA的性能提升表明观察模块增强了代理的推理能力,从而实现更准确的行动选择和反思。

我们可以通过一个实际案例进一步说明观察模块的好处。在这种情况下(见表5),问题是“杰克·伦敦最著名的两部作品《野性的呼唤》和《白牙》分别设定在哪里?”。没有观察,ODA生成了记忆,如“(野性的呼唤,叙事地点,加拿大)”,最终给出了错误答案“加拿大”。然而,通过观察模块,ODA正确推理了记忆,如“(野性的呼唤,叙事地点,育空),(白牙,叙事地点,育空)”。因此,带有观察的ODA给出了正确答案“育空”。这个案例说明了观察模块如何提高了行动选择和反思的准确性,从而增强了ODA的推理能力。

通过整合观察信息,ODA的推理能力得到了显著提升,因此产生了准确的答案。这种提升源自观察模块和KG的自主推理能力之间的协同作用,以及LLM进一步增强这些优势。

观察对反思的影响

在这一部分,我们讨论了观察对反思模块的影响。设计了三种非观察反思方法,以验证观察是否可以增强反思的有效性。基于相似度的方法涉及通过计算相似度来反思行动步骤的三元组。在这种方法中,首先根据r + t和问题之间的相似度分数对三元组进行排序。然后选择前K个三元组,并将其存储在记忆中以供下一次迭代使用。基于随机的方法从行动输出中随机选择K个三元组,并将其存储在记忆中。最后,生成的事实方法为存储创建K个与自然语言问题相关的事实。所有方法使用K = 15。

表3展示了我们的ODA在所有三种非观察方法上的优势。与基于相似度的方法相比,它的平均准确率提高了2.48%,与基于随机的方法相比提高了6.00%,与生成的事实方法相比提高了3.66%。

在特定情况下(见表6),当回答“东京都的首府是什么?”时,生成的事实方法导致了问题性事实,如“东京是东京的首都,东京是日本的首都”。这些实际上是LLM根据给定问题创造的幻觉。它们误导了代理,导致了错误答案。相比之下,我们的ODA利用观察进行反思产生了事实知识“(东京,首都,新宿)”,从而使ODA能够正确回答问题。

表3:消融比较

表3的研究结果表明,观察使反思模块能够生成更准确的记忆,从而提高了ODA的问答准确性。这一结果强调了利用KG的自主推理能力和促进KG与LLM之间深度协作的价值。

不同骨干模型的性能

我们通过分析ODA对T-REx和QALD10-en数据集的影响来评估ODA在不同骨干模型上的有效性。如表4所示,ODA方法在使用GPT-3.5和GPT-4直接回答的方法上表现出色。值得注意的是,在QALD10-en数据集上,ODA与使用GPT-3.5模型直接回答相比,取得了显著的30.4%改进。这个实验表明了ODA在不同LLM上的泛化能力。

表4:使用不同骨干模型进行性能比较

相关工作

KG增强LLM 知识图增强语言模型在处理需要与知识图整合的任务时采用了两种主要方法。第一种方法涉及从知识图中提取相关三元组以回答提出的问题。Wang等人(2023b)促使LLM生成结构化为三元组的显式知识证据,而Jiang等人(2023)开发了专门的界面,从结构化数据中收集相关证据,使LLM能够专注于基于这些信息的推理任务。类似地,Luo等人(2024)采用规划-检索-推理框架,生成由知识图支持的关系路径,从而增强LLM的推理能力。Baek等人(2023)通过评估问题和相关事实之间的语义相似性,检索与输入问题相关的事实,并相应地将这些事实前置到输入中。与此同时,Li等人(2023)通过从KG中调整推理依据来迭代地完善推理原理。Wang等人(2023a)使用预定义模板解析复杂问题,从知识图中检索实体,并相应生成答案。

第二种方法采用探索-利用策略,指导图内知识利用过程。Sun等人(2023b)在知识图上执行迭代的波束搜索,以识别最有前途的推理路径并报告结果。Guo等人(2023)通过一个迭代过程有选择地累积来自知识图的支持信息,该过程结合LLM的见解来解决问题。

AI代理 在AI代理领域,Yao等人(2022)利用LLM交替生成推理轨迹和特定任务操作。Wu等人(2023)设计了一个适应性强、对话性强且能够利用LLM、人类输入和辅助工具组合运行的代理框架。Chen等人(2023)专注于创建能够解决复杂任务的专家代理。

结论

在这项工作中,我们为KG中心任务设计了ODA框架。在ODA中,我们引入了KG观察。 为了自主地结合知识图谱(KG)的推理能力和大语言模型(LLM),我们首先提出了观察方法,以减轻在处理复杂任务时知识图谱中三元组数量激增的问题。然后,我们将这种观察融入到行动和反思模块中,进一步提升整体性能。我们进行了大量实验,结果清楚地表明了我们框架的有效性,突出了其在四个知识库问答(KBQA)数据集上提升性能的能力,特别是在处理复杂问题方面。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询