使用大语言模型进行多智体因果发现

189 篇文章 0 订阅
93 篇文章 0 订阅

24年7月来自清华的论文“Multi-Agent Causal Discovery Using Large Language Models”。

大语言模型 (LLM) 利用来自大量文本语料库的海量专业知识,在因果发现任务中展现出巨大潜力。然而,LLM 在因果发现方面的多智体能力仍未得到充分探索。本文介绍一个通用框架来研究这一潜力。第一个是元智体模型,它完全依靠 LLM 智体之间的推理和讨论来进行因果发现。第二个是编码智体模型,它利用智体规划、编写和执行代码的能力,利用高级统计库进行因果发现。第三个是混合模型,它集成了元智体模型和编码智体模型方法,结合了多个智体的统计分析和推理技能。提出的框架有效利用 LLM 的专业知识、推理能力、多智能合作和统计因果方法,显示出良好的效果。

理解因果关系在各个科学领域都至关重要。虽然统计因果推断被广泛使用,但它严重依赖于假设的因果图。为了解决这一限制,数据驱动的方法已经发展起来,导致了统计因果发现 (SCD) 方法和用于评估的数据集创建。尽管 SCD 算法取得了进步,但如果没有领域知识,数据驱动的因果图可能会不准确。这种不准确性通常是由于 SCD 算法假设与现实世界现象不匹配造成的 (Reisach[2021])。结合专家知识可以缓解这个问题,但成本高昂。

大语言模型 (LLM) 的出现,其经过大量数据的训练,能够获得广泛的知识,从常识到数学和科学等特定领域。最近的研究表明,编写代码、生成长篇故事甚至推理能力等复杂行为都可以从大规模训练中产生(Wei [2023];Rozière [2024];Zhao [2023b];Yao [2023a])。LLM为获取更易于获取且更经济实惠的专家知识提供了一种有前途的替代方案。最近的研究(Kıcıman [2023];Choi [2022];Long [2024])试图利用这些能力进行基于元数据和基于知识的推理的因果发现,类似于人类领域专家。

然而,大多数方法尚未充分利用 LLM 的全部能力,即 LLM 的多智体方法。LLM 智体可以看作具有记忆、推理能力以及访问外部工具或 API(如计算器、网络搜索和代码编译器)能力的实体。基于智体的系统已展示出显著的解决问题的能力。然而,基于单智体的系统尽管具有自我反思能力,有时仍会出现幻觉(Li [2023];Shinn[2023],Madaan [2023])。受心智社会概念(明斯基 [1988])的启发,LLM 多智体系统讨论框架(如 MAD [2023])也应运而生。 ReConcile(Chen [2024a] 和 CMD Wang [2024] 已被提出来解决这些问题。这些 LLM 多智体系统不仅取得了令人印象深刻的结果,而且还使能力较弱的模型能够与优秀模型相媲美。

通用的 LLM 智体框架由核心组件组成:用户请求、智体/大脑、规划、记忆和工具。智体/大脑充当主要协调器,由提示模板激活。可以使用手工制作的、LLM 生成的或数据驱动的策略,通过特定细节对其进行分析以定义其角色。规划采用了诸如思维链和思维树之类的技术,对于复杂的任务,ReAct [Yao 2023b] 和 Reflexion [Shinn2023] 之类的反馈机制会根据过去的行为和观察完善规划。记忆存储智体的日志,其中短期记忆用于当前环境,长期记忆用于过去的行为。混合记忆将两者结合起来,以增强推理和经验积累。工具支持与外部环境(例如 API 和代码解释器)的交互。MRKL [Karpas 2022]、Toolformer 等框架[Schick2023]、Function Calling [OpenAI2024] 和 HuggingGPT [Shen 2023] 集成工具来有效地解决任务。

LLM-MA(多智体)系统主要采用三种通信范式:合作、竞争和辩论。在合作范式中,智体朝着共同的目标进行协作,通常交换信息以增强集体解决方案[Qian 2023]、[Chen 2024b]。在竞争范式中,智体朝着自己的目标努力,这可能会与其他智体的目标相冲突 [Zhao2023a]。辩论范式涉及智体参与争论互动,他们在其中提出和捍卫自己的观点或解决方案,同时批评他人的观点或解决方案。这种方法非常适合达成共识或更精细的解决方案(Li [2023];Liang [2023];Xiong [2023])。

Multi-Agent for Causality (MAC)

元-辩论模块是一个先进的系统,由三个智能体组成:两个因果辩论者(一个是正方,一个是反方)和一个因果判断者。这种结构模拟了人类辩论的动态和严谨性,特别是在因果发现领域。这个辩论模块的设计经过精心设计,以确保彻底检查因果发现中的关键要素,例如了解建立因果关系所需的时间顺序,以及识别可能扭曲主要变量之间感知关系的潜在混杂变量。每一方都通过提出不同的意见和观点来积极表达分歧,从而促进全面而激烈的辩论。此外,元辩论模块中的每个智体都使用 ReAct 提示技术。该技术集成了根据辩论期间获得的新信息或见解动态制定、修改和完善行动规划的能力。这种整合使智体能够参与更复杂和适应性更强的推理过程,从而紧密模仿人类的辩论和决策。

辩论过程始于一个元问题。最初,因果肯定方提出答案以及支持理由。随后,因果否定方对同一问题提供不同的观点来提供不同或相互冲突的观点。然后,因果判断者评估双方的回答,确定获胜者或确定是否需要进一步澄清。如果需要进一步的信息,因果判断者会提出具体的后续问题,促使辩论者澄清和阐述他们的初步主张。一旦彻底检查了所有相关信息,因果判断者就会做出最终裁决。

对于元问题,问题可能涉及某些方面,例如特定问题的适当算法、两个变量之间的因果关系或解决因果问题的分步方法,如图所示。正方根据构建的输入启动辩论过程。最终输出来自因果判断者的决定,反映了对双方提出的论点的全面评估。这一严格的过程确保结果是充分知情的并考虑到多个观点,从而增强了因果发现的稳健性。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zgIlqB2Q-1722441770518)(https://i-blog.csdnimg.cn/direct/c5ada243a68b4a32ae4846e17be35c0b.png)]

辩论编码模块利用统计算法通过结构化的两步过程实现精确的因果发现。该组由四个智体组成,分为两步:辩论算法和执行算法。

在初始阶段,三个智体以辩论形式参与,类似于元辩论模块的工作流程。然而,不同之处在于,肯定和否定智体会使用 3-5 个统计因果算法预先提示信息。此外,向这些智体提出的元问题经过专门策划,以确定在给定元数据的情况下应使用哪种算法,其中包括数据的描述和结构。辩论后,输出的是最适合特定数据集和问题的算法。与元辩论模块相比,此过程中的额外步骤是参与辩论(无论是肯定还是否定)的智体将提供实施所选算法的分步规划。

在第二阶段,因果编码执行器会接收上一阶段的规划以及观测数据。因果编码执行器负责编写、执行和调试代码。它根据辩论者在初始阶段选择的算法,在特定的 Python 库中预提示函数并提供参数。这种预提示至关重要,因为 LLM 可能会从其训练数据集中调用函数,而这些函数可能已经过时或不正确,从而导致错误和过度调试。执行代码后,因果编码执行器会输出因果图的矩阵表示。如图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5B3wDpK9-1722441770519)(https://i-blog.csdnimg.cn/direct/69f6f4b2159a4f9a924953b830c645e6.png)]

元智体模型的算法旨在识别数据集中变量之间的直接因果关系。它从输入数据 X = [x1, …, xn ] 开始。该算法的输出是一个图 G,其边为 Gij,其中 i 和 j 是索引。元智体算法概览如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L4f9vWtf-1722441770520)(https://i-blog.csdnimg.cn/direct/ac8d85dfdd1f4d1a8e339fd08ea6eb06.png)]

算法的输入是元问题 QX 和观察数据 OX ,输出是因果图 Gij 的构建。编码智体模型的算法旨在首先使用辩论格式生成因果分析规划来确定因果关系。生成规划后,将使用因果代码执行器使用观察数据执行该规划。编码智体算法概览如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RTJguJi2-1722441770520)(https://i-blog.csdnimg.cn/direct/0eb584359fed4e138343c3d3dc08eeec.png)]

混合类有两种组合:编码-辩论混合和辩论-编码混合。它们在内部架构、算法和输出方面与元智体模型和编码智体模型基本相同。不同之处在于它们的输入。

对于编码-辩论混合,给定元问题和观察数据的输入,将从算法 2 的编码智体模型中获得初始结果。还将提取图和实现最终图的拟议算法并将其输入到元智体模型中。

对于辩论-编码混合模型,初始图来自算法 1 的元智体模型。然后,该输出被视为先验知识或背景知识。它与元问题聚合在一起,并输入到算法 2 的编码智体模型中。它将选择合适的统计因果发现算法和规划。然后将该规划交给代码执行器执行,从而产生因果图的矩阵表示。算法概览如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ioEYtoYT-1722441770522)(https://i-blog.csdnimg.cn/direct/4ae27628186143afa4a74fd31808cec2.png)]

MAC中,智体的提示设计如图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZIpHYVRN-1722441770523)(https://i-blog.csdnimg.cn/direct/06c75f26a08c4f8192f6746e139a794c.png)]

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分布时滞是指在多系统中,由于通信传输的延迟或者计算时间等因素导致不同之间的信息传递存在一定的时间差。这种时滞在多系统的控制中是非常常见的,因为它会影响系统的稳定性和性能。 在Matlab中,可以使用一些工具箱或者自己编写程序来模拟含时滞的多一致性分析。以下是一个简单的例子,其中有两个,它们之间的通信存在时滞。 ```matlab % 定义系统参数 n = 2; % 数目 A = [1 1; 1 -1]; % 系统矩阵 B = [0.5 0; 0 0.5]; % 输入矩阵 C = [1 0; 0 1]; % 输出矩阵 D = zeros(n); % 直通矩阵 tau = 0.5; % 时滞 % 定义控制器参数 K = [1 0; 0 1]; % 控制器增益矩阵 L = [0.5 0; 0 0.5]; % 时滞补偿矩阵 % 定义状态空间模型 sys = ss(A-B*K-L*C,B,C,D); % 定义时滞状态空间模型 sys_tau = pade(sys,tau); % 定义初始状态 x0 = [1; 1]; % 模拟系统响应 tspan = 0:0.1:10; [u, t] = gensig('square', 10, tspan(end), 0.1); [y, t, x] = lsim(sys_tau,u,t,x0); % 画出系统响应曲线 subplot(2,1,1); plot(t, y(:,1), 'r', t, y(:,2), 'b'); legend('1', '2'); xlabel('时间'); ylabel('输出'); title('含时滞多一致性分析'); subplot(2,1,2); plot(t, x(:,1), 'r', t, x(:,2), 'b'); legend('1', '2'); xlabel('时间'); ylabel('状态'); title('含时滞多一致性分析'); ``` 代码中包含了一些基本的矩阵运算和Matlab内置函数,主要实现了以下几个步骤: 1. 定义系统矩阵A、输入矩阵B、输出矩阵C和直通矩阵D,以及时滞参数tau; 2. 定义控制器增益矩阵K和时滞补偿矩阵L; 3. 根据系统参数和控制器参数定义状态空间模型,使用pade函数将其转换为时滞状态空间模型; 4. 定义初始状态x0,并使用lsim函数模拟系统响应; 5. 画出系统响应曲线。 需要注意的是,本例只是一个简单的示例,实际的多一致性分析可能会更加复杂。同时,时滞的大小和分布方式也会对系统的稳定性和性能产生影响。因此,在实际应用中,需要根据具情况进行调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值