【论文精读】CAMEL: Communicative Agents for “Mind” Exploration of Large Language Model Society

14 篇文章 1 订阅

前言

一篇利用LLM通过多智能体对话的形式完成特定任务的工作,中稿于NeurIPS 2023,它最大的特色在于设计了丰富的规范约束prompt,只需要很少的人工干预,就可以让多智能体自动完成任务。


Paperhttps://openreview.net/pdf?id=3IyL2XWDkG
Codehttps://github.com/camel-ai/camel
FromNeurIPS 2023

Abstract

随着对话式语言模型的迅速发展,在复杂任务的解决上取得了显著的进展。然而,这些成功依赖于人类的输入来指引对话,这既具有挑战性又耗时。本文探讨了构建可扩展技术以促进沟通式智能体之间自主合作的潜力,并深入了解其认知的过程。为了解决自主合作的挑战,本文提出了一种名为角色扮演的新型沟通式智能体框架。方法设计使用初始prompt来引导沟通式智能体完成任务,同时保持与人类一致的意图。作者展示了如何通过角色扮演来生成对话数据,以研究智能体行为和能力,作者特别对多智能体环境的指令遵循合作进行了全面的研究。本文的贡献包括引入新的沟通式智能体框架,提供一种可扩展的方法来研究多代理系统的合作行为和功能,此外作者还开源了代码库以支持进一步研究:https://github.com/camel-ai/camel

1 Introduction

面对真实世界的复杂人物,通过需要多步进行解决,LLMs的快速发展在这方面取得了巨大成就,但是却依赖人类高质量的输入指导,这具有一定的挑战性且耗时,比如对于特定领域任务,一个缺乏相关领域知识的人很难创建合适的prompt来指导智能体完成任务。为了解决这个问题,关键是探索沟通式智能体如何独立运作。
本文探讨了构建可扩展技术的潜力,以促进通信主体之间的自主合作,并深入了解其认知的过程。当前的智能体自主合作会出现一些挑战,如角色翻转,指令重复,消息循环等,因此研究这些智能体与人类意图保持一致并探讨其有效合作的方法至关重要。为了解决这些问题,本文提出了一种名为角色扮演的新型合作智能体框架,具体来说,本文提出的方法采用角色扮演和初始prompt来自主引导沟通式智能体完成任务,人类只需要给出一个初步的想法来引导对话。
本文项目公开的库提供模块化功能,包括不同代理的实现、精心的prompt设计以及数据处理工具。作者希望这项工作可以成为未来各个领域研究基础。本文的角色扮演方法提供了一种高度可扩展的方式来生成对话数据,用于研究沟通式智能体的行为和能力。作者考虑到两种角色扮演的合作场景,生成了两个大型对话式、面向任务且遵循指令的数据集:AI Society和Code;为了探索LLM的涌现能力,作者还收集了两个单轮问答数据集:Math和Science。此外,作者还生成了一个错位数据集,它是对可能的恶意应用程序的模拟,展示了未对齐自主Agent系统的潜在风险。这些数据集可以帮助LLMs理解人类语言并做出反应。同时,角色扮演还提供了一种可扩展方法来创建对话指令跟踪数据,帮助更高级LLM的开发。在GPT-4和人类评估中,本文的框架优于GPT-3.5-turbo生成的解决方案,作者还在HumanEval和HumanEval+上评估了框架的代码生成能力。
本文的贡献如下:

  1. 引入一种新的合作式Agent框架,允许沟通式智能体自主协作完成任务。
  2. 框架提供了一种可扩展的方法研究多智能体系统的合作行为和能力。
  3. 实验证明LLM在本文的框架下能力显著提升。
  4. 项目开源。

2 Related Work

Communicative Agents

智能体通过自然语言沟通,从而解决复杂任务。AI智能体之间的通信可以在竞争环境中,也可以在合作环境中。协作式人工智能是指在与人类和其他人工智能系统协同工作以实现共同目标的人工智能系统。设计有效的协作人工智能系统是一个活跃的领域,需要解决一系列技术、伦理和社会挑战。本文的工作就是赋予智能体不同的角色,用它们各自的专业知识来解决共同任务。

Instructional LLMs and Prompt Engineering

略。

AI Alignment

AI对齐旨在确保AI系统能够遵循设计者设想的目标、兴趣和价值观。开发一致的AI系统对于实现预期同时避免意外后果至关重要。AI对齐研究的重点在于阻止AI模型产生各种伤害的、虚假的、操纵性的信息,实现高水平的一致性需要研究人员解决复杂的伦理、哲学和技术问题。

3 Methodology

本文关注的重点在于研究合作设置下的沟通式智能体。特别是拥有助理用户的场景,该场景下会预先给定初始的想法。智能体会将想法概念化为具体任务,并通过对话自主完成。

3.1 Role-playing Framework

image.png
本文提出的框架是一个用于研究多个沟通式智能体新颖的角色扮演方法。具体来说,对于每个任务,需要一名AI助手和用户智能体。当系统收到人类初步想法和角色分配后,任务指定智能体将提供详细的描述以使想法具体化,之后,AI助手和AI用户通过多轮对话形式互相配合完成指定任务。AI用户负责向AI助手发出指令,并引导对话完成任务。AI助手收到指令后给出特定的解决方案,如上图所示。

Human Input and Task Specifying

角色扮演的会话会从一个想法和人类的选定的角色中实例化。人类自身可能不知道如何实现这个想法,所以需要指定可以实现该想法的潜在角色,比如上图中,Python程序员可以与股票交易员合作,实现为股票市场开发交易机器人的想法。确定想法和角色后,任务特定的智能体会头脑风暴出特定的任务,这样AI助手就可以帮助AI用户完成输入的想法。需要注意的是,这些角色和想法都是通过prompt自动实现的,并不依赖人类输入。对于作者生成的Math和Science数据集,作者也是通过prompt自动生成问题的标题、子标题和问题本身。

AI Assistant-User Role Assignment

任务实例化后,系统会传递消息给每个智能体来声明其角色,AI助手的prompt为 P A \mathcal{P}_\mathcal{A} PA,AI用户的prompt为 P U \mathcal{P}_\mathcal{U} PU F 1 \mathcal{F}_\mathcal{1} F1 F 2 \mathcal{F}_\mathcal{2} F2分別代表两个LLM。上图中AI助手和AI用户分别被分配python程序员和股票交易员的角色。AI用户充当任务的规划者,参与交互式规划以确定AI助手的可行步骤。同时A助手充当任务的执行者,提供任务的解决方案,并将解决反馈给用户。

Conversation Towards Task-Solving

AI用户提供指令,AI助手给出满足指令的解决方案。消息集可以如下所示:
M t = { ( I 0 , S 0 ) , … , ( I t , S t ) } = { ( I i , S i ) } ∣ i = 0 t \mathcal{M}_t=\left\{\left(\mathcal{I}_0, \mathcal{S}_0\right), \ldots,\left(\mathcal{I}_t, \mathcal{S}_t\right)\right\}=\left.\left\{\left(\mathcal{I}_i, \mathcal{S}_i\right)\right\}\right|_{i=0} ^t Mt={(I0,S0),,(It,St)}={(Ii,Si)}i=0t
其中, I t \mathcal{I}_t It表示在时间 t 获得的用户指令消息, S t \mathcal{S}_t St表示AI助手的解决方案。而这二者可以通过下面的方式生成:
I t + 1 = U ( M t ) \mathcal{I}_{t+1} = \mathcal{U}({\mathcal{M}_t}) It+1=U(Mt)
S t + 1 = A ( M t , I t + 1 ) \mathcal{S}_{t+1} = \mathcal{A}({\mathcal{M}_t}, \mathcal{I}_{t+1}) St+1=A(Mt,It+1)
那么相应的,对于下一时刻的消息集,即可表示如下形式:
M t + 1 ← M t ∪ ( I t + 1 , S t + 1 ) \mathcal{M}_{t+1} \leftarrow \mathcal{M}_{t} \cup\left(\mathcal{I}_{t+1}, \mathcal{S}_{t+1}\right) Mt+1Mt(It+1,St+1)
上述过程可以轻松扩展到多个智能体场景。

Critic-In-The-Loop

为了增强整个过程的可控性,作者引入了一个能够提供建议和反馈的批评智能体,这使得解决任务时可以采用树搜索的策略。该智能体可以是AI智能体,也可以是人类本身。

3.2 Inception Prompting

Prompt工程是角色扮演框架的重要部分,它仅发生在角色扮演开始时,用于任务规范和角色分配。一旦会话生成,角色之间就会自动循环提示对方,因此本文的Prompt工程又被称为初始Prompt。它分为三个部分:

  • 任务说明Prompt P T \mathcal{P}_\mathcal{T} PT。包含AI助手和用户的角色信息。
  • 助手系统Prompt P A \mathcal{P}_\mathcal{A} PA。包含任务、角色、通信协议、终止条件、行为约束信息。
  • 用户系统Prompt P U \mathcal{P}_\mathcal{U} PU。包含任务、角色、通信协议、终止条件、行为约束信息。

其中 P A \mathcal{P}_\mathcal{A} PA P U \mathcal{P}_\mathcal{U} PU尽可能对称。提示模板如下图所示:
image.png

4 Experiments

实验采用两个gpt-3.5-turbo作为智能体,采用3.2节设计的初始Prompt来约束智能体实现沟通和自主合作。作者收集了名为CAMEL AI Society和CAMEL Code的对话数据集,以及名为CAMEL Math和CAMEL Science的问题解决方案对,分析评估它们的质量。此外作者还讨论了框架潜在的扩展,强调了未来AI社会可能得风险与机遇。

4.1 Role-Playing for AI Society

为了创建AI Society数据集,作者开发了一种可扩展的方法,遵循一系列步骤:

  1. 提示LLM为助手和用户生成尽可能多的角色。
  2. 要求LLM生成一系列任务,这些任务可以通过上一步生成的角色合作完成。
  3. 向LLM传递特定任务提示让任务变得具体。

该数据集生成了50个助手和50个用户以及10个任务,总共产生25000个对话,具体内容可见原文附录。生成数据集过程中,作者发现了四个挑战:

  • 角色翻转。对话期间,助理和用户可能会交换角色。一个解决方法是不让助手提问。
  • 助手重复用户的指令,而不是执行。
  • 不稳定的回复。它会说我会(I will),但最终却不能兑现。
  • 消息无限循环:助手和用户进入无意义对话循环,如反复感谢或说再见。

附录中有四种挑战的示例。这些问题强调了合作AI开发的任务的复杂性以及克服该挑战的必要性。
最后是终止条件,助手和用户智能体之间的对话是遵循的特定格式,以确保一致和准确的数据生成,因此还需要额外的条件在必要时终止聊天。这些条件如下:

  • 如果用户三轮都不给出指令,对话终止。
  • 如果助手向用户发出指令,则出现角色反转,结束对话。
  • 如果用户认为任务完成,会提出任务终止token。
  • 达到token上限,对话终止。
  • 设置最大对话限制,本文是40次。

5 Evaluation

5.1 Agent Evaluation

为了评估CAMEL的性能,作者进行了两种类型的评估,人类评估和GPT4评估。作者随机从Society和Code数据集中各选择100个任务,利用GPT4对CAMEL的解决内容进行摘要,提出统一的解决方案。该解决方案和gpt-3.5解决相同任务的结果进行了比较。
对于人类评估,向参与人员展示CAMEL和gpt-3.5的解决结果,通过投票选出最好的结果,人类评估只在AI Society上进行,因为评估代码对人类较困难。
对于GPT4评估,作者提示GPT4对两个解决方案进行评分,并决定哪个方案更好。
结果如下表所示,可以看到CAMEL大幅领先GPT-3.5,并且人类评估和GPT4评估高度一致。
image.png

5.2 GPT4 for ChatBot Evaluation

本节利用之前生成的数据,微调LLaMA 7B模型。通过整合Society、Code、Math和Science等不同领域数据集,作者期望模型能够提高对这些领域的理解能力。
作者按照Society、Code、Math和Science的顺序在相应的数据集上对模型进行微调,模型在20项人工智能协会相关任务、20项编码任务、20项数学任务和60项科学任务上进行了测试。结果如下表所示:
image.png
可以看到,每次增加新的数据,模型在新域上面的表现就会更好,值得注意的是,在某些情况下,也会对别的领域有着相应的改进,这是因为该数据集包含了其它数据集上的任务。最后根据组合的结果,作者发现从AI Society到code到math再到science的发展,凸显了AI模型在获取多功能、适应性强的知识库方面的潜力。

5.3 HumanEval(+)

image.png
作者在HumanEval和HumanEval+上进行了评估,可以看到CAMEL的卓越性能。

6 Conclusion

本文探索了对话式智能体之间自主合作的潜力,并提出了一种名为角色扮演的合作式智能体框架。本文的方法只需最少的人工干预,就能自主协作完成任务。通过分析表明实现自主合作是挑战性的。本文的框架为研究多智能体系统的合作提供了可扩展的方法,并提供了应对相应挑战的策略。

阅读总结

LLM智能体方法开山级别的工作,通过初始的prompt,以及详细的约束和规范prompt的限制,帮助多方Agent通过对话的形式完成任务。由于这个领域还是很新颖,因此缺少相应的评估实验,当然在这个工作的官网上可以试用该模型,从而验证CAMEL的能力。最后利用这篇工作生成了一系列领域的数据集,来微调得到CAMEL-7B模型,从而和其它模型进行对比,以显示其性能的优越性,但是这里我认为有些画蛇添足,堆砌工作量了,因为和本文的目标以及CAMEL本身并没有太大的关系。

  • 18
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HERODING77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值