当前位置: 首页 > news >正文

autogen论文解读 - Sun

论文背景

该论文介绍的是微软的一个多智能体框架,曾经获得了ICLR2024大会LLM智能体专题研讨会最佳论文。

img

在开发基于LLM的复杂应用程序时遇到了很多问题:

  • 以往的研究往往基于单个LLM 智能体,但这无法解决复杂任务,因为它可能缺乏特定领域的知识、工具使用能力或持续的推理和纠错机制。

    如autogpt,langchain等大多是围绕单智能体设计的,缺乏对多智能体协作的原生支持

  • 基于多智能体系统的通用性不足

    如metagpt和软件开发流程深度耦合

框架方法

img

在顶部的子图中,可以看到autogen内置了一些代理,其中conversableagent是最高级的抽象类,而Assistantagent和UserProxyAgent都是它的子类,除此之外还有统一的对话接口和参数,如send,receive等,还可以对代理进行定制,从而实现多样化的代理模式。GroupChatManager可以看成是一个扩展,使用这个功能可以解决更加复杂的任务。

在中间的子图中展现了一个双代理系统中对话编程的示例,我们可以自定义回复函数,如图中当没有人类输入时,会执行消息中的代码进行回复,如果有人类输入,就把人类输入当作回复。这里其实有个疑问,如果没有人类输入并且消息中也没有代码,是不是就返回空消息了。其实这里是一个高度简化的代码示例,如果出现这样的情况会自动回退到默认的回复机制,调用LLM进行自然语言回复。通过这样的设置可以让两个智能体进行自然的对话,相当于控制流在驱动对话。在启动initiate函数时,默认是在A与B之间对话,在自定义的generate函数中,可以通过对话内容,异常或者LLM推理动态决定下一个接收者。它可以主动暂停当前对话流,并通过init函数发起和另一个智能体的对话, 那么控制流就都在每个智能体内部。而不用额外的控制平面来进行调度,大大简化了开发。

底部的子图展现了对话的进行,可以看到刚开始useragent发送给assistant画图的消息,然后assistant调用generate函数产生代码和回复,在人类没有输入的情况下,useragent自动执行代码产生报错并进行回复,assistant继续调用generate生成纠正,整个对话自主进行,无需额外的控制模块。

数据集说明

autogen的应用领域非常广泛,论文中有7个例子,可以开发基于数学问题求解,检索增强聊天(Rag),多代理编码,对话式国际象棋等应用。不同的应用对应的autogen智能体设计框架也有区别,这里主要介绍数学问题求解和rag系统两个实验以及结果。

在数学问题求解实验中,主要使用了MATH 数据集。它包括代数、计数与概率、几何、中级代数、数论、预备代数和预微积分等领域的题目,每个领域都包含问题和对应的解答。还提供问题的难度等级和类型信息。

img

在rag系统实验中主要使用了Natural Questions数据集,这个数据集包含真实用户向 Google 搜索提出的问题,以及从 Wikipedia 中找到的答案。

img

格式如图所示。

除此之外,还会标注出文档中的长答案和短答案。

实验结果

在数学问题求解实验中采用了定性和定量评估。
对于所有评估,都使用GPT-4作为基础模型

img

在定性评估中,采用了MATH数据集中的两个5级问题,分别涉及简化平方根分数和数论问题,每个问题测试三次。上图中展示了相关评估结果。可以看到autogen表现得最好,其他框架都存在各种各样得问题。

img

定量评估如上图所示,一共两组实验,一组是涉及120个5级数学问题,涵盖6个类别,第二组是对整个测试集进行的实验。其中Chatgpt+code和+plugin都是商业级的应用,只能在网页端测试,只能手动操作,并且有每小时消息量限制。所以测试只测试了120个5级数学问题。在debate和langchain中,由于其在小数据集上表现都不太好,所以没有进行更进一步的测试。可以看到autogen在解决数学问题上的表现非常不错。

img

在autogen开发的rag系统中采用了两个代理之间的交互式检索,以上是交互式检索和单次检索的对比。因为检索时会寻找和问题向量相似度最匹配的文本。当第一次没找到时,用户代理会反馈update,这样会去寻找向量数据库中下一条最相似的文档片段,整个过程可以重复多次。

img

如上图所示,红色表示没有使用交互式检索的表现,DPR是一种基线方法。可以看到autogen在rag系统上的表现也很不错,交互式检索对系统也有一定的提升。

下图是autogen和其他多智能体框架的对比

img

有些多智能体框架只适合解决特定的问题

在autogen中,可以根据当前的对话内容或任务进展,动态地选择下一个发言者或调整对话流程。

http://www.hskmm.com/?act=detail&tid=27432

相关文章:

  • 高效仿真:功耗与散热攻略
  • Vue的nextTick函数作用
  • #6515. 「雅礼集训 2018 Day10」贪玩蓝月
  • 公告
  • 车企数据治理平台化实战:从数据孤岛到全链路治理的架构演进
  • 磁盘的管理
  • 完整教程:Java中的缓存机制与分布式缓存实现!
  • jsconfig.json-vscode或cursor ctrl点击@路径,快速到达
  • C# 弃元模式:从语法糖到性能利器的深度解析
  • 2025钣金加工厂家最新推荐榜:精密工艺与定制服务口碑之选
  • python查询数据信息,分析前了解表格结构
  • 减少磁盘延迟的方法
  • AutoCAD 2025 CAD 安装包中文永久免费免激活破解版下载 附图文安装教程
  • nmcli修改ip地址
  • 静态库与动态库:开发者必知的底层逻辑与实践技巧
  • 从C到pwn入门
  • 基于MATLAB的三轴航天器姿态控制的仿真
  • golang基础语法(四) 数组 - 教程
  • for循环s.length()-1,s为空时的一直执行循环的问题
  • 自适应工作负载的智能系统构建技术解析
  • aardio获取exe路径
  • 分布式系统学习(一):相关概念及理论
  • AI元人文构想的新启发:从自动驾驶困境到通用价值智能的构建——声明Ai研究
  • mido配置 DNS 服务器
  • 磁盘调度算法
  • 牛客周赛 Round 112
  • CF497E Subsequences Return
  • Flutter 中运用 Color 的最优方案
  • 竞争自适应重加权采样(CARS)算法在光谱数据变量选择中的解决方案
  • 2025 最新超声波清洗机厂家推荐排行榜:工业 / 精密 / 实验室等多场景适配厂商权威榜单全自动/大型/工业/单槽/多槽超声波清洗机厂家推荐