ICLR 2024 Oral | GitHub狂揽30k星!MetaGPT:增强多智能体协作能力
点击下方卡片,关注“CVer”公众号
AI/CV重磅干货,第一时间送达
AI/CV重磅干货,第一时间送达
扫描下方二维码,加入CVer学术星球,可以获得最新顶会/顶刊上的论文idea和CV从入门到精通资料,及最前沿应用!发论文搞科研,强烈推荐!
转载自:将门创投
LLM Agent领域第一高分论文,全网Star数最高的多智能体框架。MetaGPT - 结合元编程思想,嵌入SOPs来增强大规模语言模型(LLMs)在多智能体协作上的能力。通过角色专业化,工作流管理和灵活的消息机制,使其成为通用性和可移植性高的多智能体框架。结合迭代式的反馈机制,MetaGPT在多个基准测试上取得了最先进的性能。结合人类社会实践的SOPs,启发了未来对于多智能体社会的研究和探索,也可视为对基于LLM的多智能体框架进行调节的早期尝试。
受此启发,DeepWisdom团队在2023年6月开源了MetaGPT框架,火爆全网,并联合KAUST AI中心、厦门大学、CUHK(SZ)、南京大学、UPenn以及UCB等众多高校机构的学者进行了广泛深入的研究,为多智能体协作锚定了有效范式。MetaGPT创新性地将SOPs编码为智能体的设计规范和协议,进而实现了人类领域知识的自动嵌入。这一工作为更好地理解和模拟人类工作流程提供了新的途径,为自主智能体在各种任务中的表现和适应性带来了新的可能性。
在这项研究中,研究者首先在代码补全任务上对MetaGPT的效果进行了测试。在公开数据集HumanEval和MBPP上,MetaGPT分别取得了85.9%和87.7%的新的最先进水平(SoTA)。与此同时,研究团队构建了一个包含70个典型软件开发任务的数据集SoftwareDev,并将MetaGPT的表现与其他Agent框架的开源工作[1][2][3][4]进行了比较。结果显示,MetaGPT在任务完成率和生成的代码质量方面表现出显著的优势,表明MetaGPT在软件开发领域具有出色的性能。
论文题目:
MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework
论文链接:
https://arxiv.org/abs/2308.00352
代码链接:
https://github.com/geekan/MetaGPT
一、动机
随着LLM能力的不断提升,基于LLM的智能体来解决各种任务在学术界和工业界的兴趣日益增长。值得注意的是,对于采用多个智能体协作解决特定领域问题的研究仍处于早期阶段。现有研究[3][4][5]主要集中在通过角色扮演机制和通信拓扑设定来增强任务理解和推理决策能力。尽管取得了一定进展,但这些方法仍然依赖于直接的对话形式,缺乏对智能体行为的标准规范和约束。近期的一些工作也指出,基于对话形式的多智能体系统可能面临信息不一致、歧义以及可能的无效重复和无限循环等问题[5][6]。
相较之下,人类工作流程中的标准操作流程(SOPs)不仅明确定义了参与角色的分工和拓扑结构,还建立了角色产出结果的标准规范。研究表明,明确定义的SOPs可以提高任务执行的一致性和准确性,确保最终结果符合规定的质量标准。因此,为解决多智能体协作中的挑战,作者设计了基于LLM的智能体元编程框架MetaGPT。
MetaGPT要求智能体以专家形式参与协作,并按要求生成结构化的输出,例如高质量的需求文档、架构设计图和流程图等。结构化的输出对于单个智能体即是更高层次的思维链(Chain-of-Thought),对于下游角色则是语义清晰、目标明确的上下文(Context)。
二、方法
在MetaGPT的框架中,作者将SOPs的概念对齐至角色专业化、通信协议设计以及迭代式的可执行反馈设计。
2.1 角色专业化
通过明确定义的角色分工,复杂的工作得以分解为更小、更具体的任务。如下图所示,不同专业的角色,初始化为不同的目标和约束,以及不同的专业技能。如产品经理角色可以使用网络搜索工具,而工程师角色可以执行代码。与此同时,每个角色都默认遵循ReAct的行为模式。
MetaGPT 软件开发流程示意图,表明定义明确的SOPs可以带来较好的效果
2.2 通信协议设计
在实际应用中,自然语言虽然具备语义的丰富性,但由于其非结构化的特性,在消息传递过程中常常会导致信息的歪曲甚至重要内容的丢失。为解决这一问题,作者约束智能体以结构化的输出(包括文档和图表)参与协作,来提高信息的清晰度和完整性。为验证这一设计,作者设计了多种软件开发任务,通过生成代码的可执行性以及生产力指标强调结构化输出在协作中的关键性。
在多智能体协作过程中,为提高通信效率,MetaGPT引入了基于消息共享的发布-订阅机制(Publish-Subscribe Mechanism)。如上图所示,共享消息池允许直接交换消息,任何智能体都可以透明地访问来自其他智能体的消息,无需询问并等待响应。订阅机制使智能体更倾向于接收与自我任务相关的信息,避免分心于不相关的细节。同时,每个智能体可直接从共享消息池中检索所需信息,形成自我记忆。
2.3 可执行反馈
智能体根据环境反馈进行自我优化和主动更新,是智能体具备自主意识的表现。在软件开发任务上,MetaGPT为工程师的智能体设计了可执行反馈机制,以进行代码质量自动优化。具体而言,工程师编写并执行相应的单元测试用例,通过观察到的执行结果,递归地进行决策和自我提示,实现自动debug。这种设计-测试-反馈的迭代过程持续进行,直到单元测试通过或达到最大重试次数。
三、实验
3.1 实验设置
在代码生成能力上,作者采用了两个公开基准数据集:HumanEval和MBPP,并报告Pass@1指标。另外,他们还收集了涵盖70个典型软件开发任务(如迷你游戏、数据可视化、图像处理等)的数据集SoftwareDev,并进行了多个智能体开源框架的对比,对多个软件开发任务的可执行性和生产效率上进行了统计分析和定性说明。
3.2 实验结果
如下图所示,MetaGPT在HumanEval和MBPP基准测试中均优于之前的方法,分别达到了85.9%和87.7%。相比于GPT-4的结果,MetaGPT在HumanEval数据集上相对提升了28.2%,而加入可执行反馈机制分别在HumanEval和MBPP上提升了4.2%和5.4%。
MetaGPT在SoftwareDev上运行结果展示
MetaGPT在软件开发任务中的高可执行性和相对较短的运行时间表明了其在实际应用中的实用性和效率。更多实验设置细节可参考论文,代码细节将持续更新github。
论文链接:
https://arxiv.org/abs/2308.00352
代码链接:
https://github.com/geekan/MetaGPT
四、总结与展望
在CVer微信公众号后台回复:论文,即可下载论文和代码链接!快学起来!
计算机视觉技术交流群成立
扫描下方二维码,或者添加微信:CVer444,即可添加CVer小助手微信,便可申请加入CVer-计算机视觉微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer、NeRF等。
一定要备注:研究方向+地点+学校/公司+昵称(如目标检测+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲扫码或加微信号: CVer444,进交流群
CVer计算机视觉(知识星球)来了!想要了解最新最快最好的CV/DL/AI论文速递、优质实战项目、AI行业前沿、从入门到精通学习教程等资料,欢迎扫描下方二维码,加入CVer计算机视觉(知识星球),已汇集近万人!
▲扫码加入星球学习
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看
▲扫码或加微信号: CVer444,进交流群
CVer计算机视觉(知识星球)来了!想要了解最新最快最好的CV/DL/AI论文速递、优质实战项目、AI行业前沿、从入门到精通学习教程等资料,欢迎扫描下方二维码,加入CVer计算机视觉(知识星球),已汇集近万人!
▲扫码加入星球学习
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看
微信扫码关注该文公众号作者