论文学习(四):Reflective Multi-Agent Collaboration based on Large Language Models

一、文章与作者

1.原文地址:Reflective Multi-Agent Collaboration based on Large Language Models

2.作者:

一二作、和通讯均来自人大的高瓴人工智能实验室

二、背景

1.出发点

        首先是基于LLMs的Muti-Agent在解决复杂问题上的能力已经得到了验证,但是前人工作人有欠缺,主要体现在没能很好的开发不同agent的合作能力,作者团队最初的想法是通过利用大量的合作数据去微调Agent,但是模型参数的改变可能会影响模型的通用能力,所以作者在论文中使用的是一个自我反思的机制,通过让Agent自我反思,对自己的答案进行修改。思维图如下:

2.大致想法

        如果直接让模型对自己给出的答案进行反思,这显然是比较困难的,所以作者在论文中设计了一个反思器专门针对Agent进行反思。那要怎么去评估反思器的效果呢?我们可以先看一下反思器的一个大致工作流程:

        首先面对环境给出的一个问题,Agent系统与环境不断进行交互,最终给环境一个解答,环境根据解答打出一个分数rλ,然后将这个分数以及Agent系统与环境的交互记录给到反思器,反思器反思过后,去更新给Agent的Prompt。之后再针对这同一个问题,再进行一轮交互,得到的分数为rλ+1,那么这轮反思的得分其实很显然就是rλ+1 - r λ

3. 挑战与解决

        那么要想实现这样一个反思器有什么样的挑战呢?作者在文中提出了一个COPPER框架,又是怎么解决这样一个挑战的呢?

三、方法

 我们来分模块看一看论文中提到的框架

1.多agent合作

论文中针对不同问题使用到了这两种muti-agent合作策略,就是让不同的agent去担任不同的角色。对于每个Agent也是一个Actor

Actor Prompt = 角色设定 + 交互记录 +当前环境状态

容易想到当Agent系统与环境交互次数增加时,交互历史可能会超过LLMs的token限制    ->  引入一个上下文模型 从每个agent的视角去递归的更新交互历史, 更新之后的记录作为agent的短时记忆存储。

Actor Prompt = 角色设定 + 短时记忆 + 当前环境状态
 

2.多Agent反思

可以看到这里就使用了一个共享的反思器,那是如何通过这一个共享反思器就实现个性化反思的呢?其实也很简单,我们看一下Reflector的Prompt就知道了

reflection prompt = 角色设定 + 每个agent的短时记忆  + 环境 reward

其实就是把角色设定加到了prompt里面。那针对每个agent反思之后的结果又作为它们各自的长时记忆储存起来,这样Actor Prompt又变为

Actor prompt = 角色设定 + 长时记忆 + 短时记忆 + 当前环境状态

通过这样一个设计,其实就已经解决了之前提到的第二个挑战了,那第一个挑战又是怎么解决的呢?

3.共享反思器的优化

对于第一个挑战,其实就是因为不清楚每个Agent的具体反思贡献,可能导致“懒反思,即对于”,即某些Agent做出的反思可能并不是一个高质量的反思。因此需要做的就是对反思器进行一个优化,使得针对每个Agent做出的反思都尽可能的高质量。具体操作上主要也分三步:

3.1 反思器输入输出对收集

输入(x):     reflection prompt = 角色设定 + 每个agent的短时记忆  + 环境 reward

输出(y):      针对某个agent的反思

针对多个问题,使用反思器对agent的回答进行多轮反思,得到D ={(xi,yi)}

3.2 反事实奖励的获取

所谓反事实奖励,我查到的资料是说因为这个reward实际上是不存在的,是构造出来的,所以称之为反事实reward。接下来看它如何获取:

step1:获取系统反思奖励 Overrall Reward,这里和之前背景部分介绍的一致,将反思前后的分时相减即可。

step2:边缘化某个agent的反思(该agent的反思不加入actor prompt),获取边缘化后的系统反思Margin Reward,在边缘化之后的做法和step1其实一样

step3:二者的差值即为该agent的反事实奖励,更新数据D ={(xi,yi,Gi)}

这样得到的counterfactual reward其实就是针对这个被边缘化之后的agent在这轮反思中的贡献

3.Proximal Policy Optimization(近端策略优化)

接下来就是拿刚才获得的数据对反思器进行一个PPO强化学习,大致步骤如下:

Step1: 采用得到正分的反思 监督微调一个反思器

Step2: 根据 D ={(xi,yi,Gi)} ,训练一个回归模型用于评估产生反思的质量

Step3:利用该评估模型,对反思器进行强化学习             目标:最大化reward

通过这样一个强化学习,想要达到的目标就是反思器针对每个Agent产生的反思都是比较高质量的一个反思。

四、实验

得到结论如下:

1.多智能体反思在特定问题中能显著提高表现

2.COPPER比LongChat和GPT-3.5拥有更好的反思能力

3.与Retrofomer比较,COPPER能更快通过多智能体合作提高性能

消融实验就是为了证明框架中每个模块的必要性。

此后作者还做了挺多辅助实验的,有把模块的具体使用模型进行替换,证明模块的普适性等。

五、总结

本文做的工作主要有:
1.通过反事实PPO机制训练了一个共享反思器。   反事实奖励缓解了不同agent的信用分配问题。  共享反思器不仅能够个性化反思,还能够减少计算资源和提高训练稳定性
2.提出的COPPER框架在三个开源数据集上,反思能力都超过基准

        该博客对论文的解读可能涉及博主的个人看法,目的也主要是为了博主的自我梳理,这里对可能造成的困惑和不满道歉,如有侵权请联系我😄

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值