来自:PaperWeekly
AI Agents 是当下大模型领域备受关注的话题,用户可以引入多个扮演不同角色的 LLM Agents 参与到实际的任务中,Agents 之间会进行竞争和协作等多种形式的动态交互,进而产生惊人的群体智能效果。本文介绍了来自 KAUST 研究团队的大模型心智交互 CAMEL 框架(“骆驼”),CAMEL 框架是最早基于 ChatGPT 的 autonomous agents 知名项目,目前已被顶级人工智能会议 NeurIPS 2023 录用。
论文题目:
CAMEL: Communicative Agents for “Mind” Exploration of Large Scale Language Model Society
论文链接:
https://ghli.org/camel.pdf
代码链接:
https://github.com/camel-ai/camel
项目主页:
https://www.camel-ai.org/
“什么神奇的技巧让我们变得智能?窍门就是没有窍门。智慧的力量源于我们巨大的多样性,而不是任何单一的、完美的原则。”
——人工智能先驱 马文·明斯基(Marvin Minsky)[1]
目前来看,在机器通向高级智能的道路上,以 ChatGPT 为代表的大模型(LLMs)应该是必须经过的里程碑之一,它们以聊天对话的人机交互方式在多个领域的复杂任务解决方面取得了非常耀眼的成就。
随着 LLMs 的发展,AI Agents(AI 智能体)之间的交互框架也逐渐兴起,尤其是在一些复杂的专业领域,以角色扮演等模式预置的智能体完全有能力代替人类用户在任务中扮演的角色,同时,智能体之间通过以协作和竞争形式的动态交互往往能够带来意想不到的效果,这就是被 OpenAI 人工智能专家 Andrej Karpathy 等人看作是“通向 AGI 最重要的前沿研究方向”的 AI Agents。
该领域发展的时间线如下 [2]:
“CAMEL”(骆驼:大模型心智交互框架)- 发布于 2023.3.21
“AutoGPT” - 发布于 2023.3.30
“BabyGPT” - 发布于 2023.4.3
“Westworld” simulation(斯坦福西部世界小镇) — 发布于 2023.4.7
作为最早基于 ChatGPT 的 autonomous agents 知名项目,CAMEL 重点探索了一种称为角色扮演(role-playing)的新型合作代理框架,该框架可以有效缓解智能体对话过程中出现的错误现象,从而有效引导智能体完成各种复杂的任务,人类用户只需要输入一个初步的想法就可以启动整个过程。目前,CAMEL 已经被国际人工智能顶级会议 NeurIPS 2023 录用。
作者对 CAMEL 框架设计了灵活的模块化功能,包括不同代理的实现、各种专业领域的提示示例和 AI 数据探索框架等,因此 CAMEL 可以作为一个基础的 Agents 后端,支持 AI 研究者和开发者更加轻松地开发有关于多智能体系统、合作人工智能、博弈论模拟、社会分析、人工智能伦理等方面的应用。
具体的,作者通过涉及两种角色扮演的合作场景,生成了两个大型的指令数据集 AI Society 和 AI Code,以及两个单轮问答数据集 AI Math 和 AI Science,用于探索 LLM 涌现能力的研究。
CAMEL框架
下图展示了 CAMEL 中的 role-playing 框架,人类用户需要首先制定一个想要实现的想法或目标,例如:开发一个用于股票市场的交易机器人。这项任务涉及的角色是 AI 助理智能体(使其扮演 Python 程序员角色)和 AI 用户智能体(使其扮演股票交易员角色)。
作者首先为 CAMEL 设置了一个任务细化器(Task Specifier),该细化器会根据输入的想法来制定一个较为详细的实现步骤,随后 AI 助理智能体(AI Assistant)和 AI 用户智能体(AI User)通过聊天的方式来进行协作通信,各自一步步完成指定的任务。
其中协作通信通过系统级的消息传递机制来实现,令 为传递给 AI 助理智能体的系统消息, 为传递给 AI 用户智能体的系统消息。随后为 AI 助理智能体和 AI 用户智能体分别实例化为两个 ChatGPT 模型 和 ,相应得到 AI 助理智能体 和 AI 用户智能体 。
角色分配完成后,AI 助理智能体和 AI 用户智能体会按照指令跟随的方式协作完成任务,令 为时间 时刻获得的用户指令消息, 为 AI 助理智能体给出的解决方案,因而 时刻得到的对话消息集为:
在下一个时刻 ,AI 用户智能体 会根据历史对话消息集 ,来生成新的指令 。然后再将新指令消息与历史对话消息集一起传递给 AI 助理智能体 来生成新一时刻的解决方案:
更多技术细节,可以参考我们先前对 CAMEL 的报道。
CAMEL使用示例
CAMEL 内置的协作式 role-playing 框架可以在人类用户不具备专业知识的情况下,通过 Agents 之间的协作方式完成复杂任务,下图展示了 CAMEL 开发股票市场交易机器人的例子,其中 AI 助理智能体的扮演的角色是一名 Python 程序员,而 AI 用户智能体扮演的角色为一名股票交易员。
在 role-playing 框架中,AI 智能体都具有特定领域的专业知识,此时我们只需要指定一个原始想法的 Prompt,随后两个AI智能体就会围绕着这一想法展开工作,在上图中,用户智能体提出交易机器人需要有对股票评论的情绪分析功能,随后助理智能体直接给出了安装情绪分析和股票交易所需的 python 库的脚本。
随着任务的进行,用户智能体给出的指示也会越来越明确,上图中的指示为:定义一个函数以使用 Yahoo Finance API 获取特定股票的最新股价。助理智能体会根据该指示直接生成一段代码来解决需求。
2.2 具身智能体(embodied agent)
在先前的研究中,AI Agents 可以理解为在模拟一些操作,而没有与现实世界交互或使用外部工具执行操作,目前的 LLMs 已经具备与互联网或其他工具API交互的能力,CAMEL 也提供了能够在物理世界中执行各种操作的具身智能体(embodied agent),它们可以浏览互联网、阅读文档、创建图像、音频和视频等内容,甚至可以直接执行代码。
上图展示了 CAMEL 通过使用 embodied agent 调用 HuggingFace 提供的 Stable Diffusion 工具链生成骆驼科图像的样例,在这一过程中,embodied agent 首先会推理出骆驼科所包含的所有动物,随后调用扩散模型生成图像并进行保存。
2.3 critic在环(critic-in-the-loop)
为了增强 role-playing 框架的可控性,作者团队还为 CAMEL 设计了一种 critic-in-the-loop,这种机制受到了蒙特卡洛树搜索(MTCS)方法的启发,它可以结合人类偏好实现树搜索的决策逻辑来解决任务,CAMEL 可以设置一个中间评价智能体(critic)来根据用户智能体和助理智能体出的各种观点进行决策来完成最终任务,整体流程如下图所示。
考虑这样一个场景,我们让 CAMEL 主持一场很具体的科研项目讨论会,而科研项目的主题“大型语言模型”,CAMEL 可以将用户智能体的角色设置为一个博士后,将助理智能体的角色设置为博士生,而中间评价智能体的角色设置为教授。任务指示博士生来帮助博士后制定研究计划,需要围绕大模型的伦理展开研究。
在接到任务后,博士后智能体首先抛出了关于这一项目的三个观点,表明项目应该首先从调研大模型伦理方面的相关工作着手。随后教授智能体会根据这三个观点给出自己的看法。并且认为观点 2 最为合理的,即研究大模型歧视性算法。同时还会给出另外两个观点的缺陷,例如观点 1 缺乏更加清晰的结构,观点 3 的研究范围太窄等等。
在教授发言之后,博士生智能体会进行更加具体的项目规划,例如直接列出一些大模型伦理安全方向的相关文献,并且讨论如何开展具体的研究。
实验效果
本文的性能评估主要从三个方面进行,并且采用两个 gpt-3.5-turbo 作为实验智能体,实验的数据集使用 CAMEL 框架生成的四个 AI 数据集,其中 AI Society 和 AI Code 侧重于智能体的对话效果,而 AI Math 和 AI Science 侧重于智能体的问题解决能力。
3.1 Agent评估
在这一部分,作者从 AI Society 和 AI Code 数据集中分别随机选择 100 个任务进行评估,然后使用 CAMEL 框架和单个 gpt-3.5-turbo 进行对比实验,结果评估方面分为两部分,一方面由人类受试者对两种方法给出的解决方案给出 453 份投票数据,来决定哪种方案更加可行。另一方面,作者提示 GPT4 模型对两种方案直接给出评分,具体的对比数据如下表所示。
从上表中可以看出,CAMEL 框架给出的解决方案在人类评估和 GPT4 评估中均大幅优于 gpt-3.5-turbo 给出的解决方案,其中人类评估和 GPT4 评估的总体趋势高度一致。
3.2 使用GPT-4对ChatBot评估
在这一部分,作者在 CAMEL 生成的四个数据集上对 LLaMA-7B 模型进行了逐步的微调,通过向 LLM 中不断注入来自社会、代码、数学和科学等不同领域的知识,来观察模型对知识发现的接受效果。
作者首先从 AI Society 数据集开始,让模型了解人类的互动常识和社会动态,随后 AI Code 和其他数据集的注入,模型获得了编程逻辑和语法的知识,同时拓宽了模型对科学理论、经验观察和实验方法的理解。
上表展示了模型在20 个 Society 任务、20 个代码编写任务、20 个数学任务和 60 个科学任务上的测试效果,可以看到在每次添加数据集时,模型在已训练过的任务域上都会表现得更好。
3.3 HumanEval
为了进一步评估 CAMEL 框架的代码编写任务解决能力,作者在 HumanEval 和 HumanEval+ 两个评估基准上进行了实验,实验结果如下表所示。
上表中清楚地证明了 CAMEL 框架的卓越性能,它不仅远远超过了 LLaMA-7B 模型,而且还大大超过了 Vicuna-7B 模型,这表明使用 CAMEL 生成的数据集在增强 LLM 处理编码相关任务方面有独特的效果。
CAMEL AI开源社区
值得一提的是,CAMEL 作者团队正在构建了一个非常完善的 CAMEL AI 开源社区,社区 Github 仓库已经得到了 3600+ 的 star 数,社区中涵盖了 CAMEL 中各种智能体的实现、数据生成 pipeline、数据分析工具和已生成的数据集,以支持 AI Agents 及其他方面的研究,社区目前已吸引了诸多开源爱好者贡献代码。
距离 CAMEL 项目编写第一行代码到现在已有 9 个月,CAMEL-AI.org开源研究技术社区已经吸引超过 20 名来自 KAUST/剑桥/索邦大学/NUS/CMU/芝加哥大学/斯坦福/杜克大学/北大/上交/哈工大/西电/东北大学/成信大以及工业界等独立代码贡献者。社区正在寻找全职/兼职/实习贡献者、工程师和研究人员加入一起学习和探索如何推动构建智能体社会的边界,杰出贡献者有机会参与框架和其他研究项目论文的撰写投稿。
如果感兴趣加入 CAMEL-AI.org 的社区,可以将简历发送至 [email protected] 或者添加微信号 CamelAIOrg 进行咨询!
参考文献
[1] Minsky M. Society of mind[M]. Simon and Schuster, 1988.
[2] https://towardsdatascience.com/4-autonomous-ai-agents-you-need-to-know-d612a643fa92
备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群
id:DLNLPer,记得备注呦