多步推理无需训练性能提升10%!斯坦福开源通用框架OctoTools
ccwgpt 2025-05-02 09:24 6 浏览 0 评论
编辑:LRS
【新智元导读】OctoTools通过标准化工具卡和规划器,帮助LLMs高效完成复杂任务,无需额外训练。在16个任务中表现优异,比其他方法平均准确率高出9.3%,尤其在多步推理和工具使用方面优势明显。
大型语言模型(LLMs)目前仍然很难处理需要多步骤推理、特定领域知识或外部工具集成的复杂任务,有研究工作探索了使用预先构建的外部工具来增强LLMs处理复杂任务的能力,但这些方法需要对模型进行微调或额外训练以实现工具的集成,在不同任务之间难以灵活适应。
现有的方法要么依赖于静态的、预定义的工具集,要么缺乏高效的工具选择和规划机制,这种低效性会导致任务执行出错、计算成本增加,以及在应用于新领域时适应性受限。
传统增强LLMs的方法包括少量样本提示(few-shot prompting)、思维链(chain-of-thought reasoning)以及与外部工具接口的功能调用API;有的框架如LangChain和AutoGen允许LLMs够使用外部资源,但通常智能用于指定应用场景或需要大量的预配置,没有提供一种统一的多步骤规划和执行方法,因此在处理复杂推理问题时效果不佳。
此外,大多数现有方法缺乏对工具选择的结构化方法,导致执行效率低下。
最近,斯坦福大学推出一个无需训练、用户友好且易于扩展的开源智能体框架OctoTools框架,包含对工具选择的结构化方法,大幅提高执行效率的同时,还能够解决跨多个领域的复杂推理。
OctoTools引入了标准化的工具卡来封装工具功能,一个用于高级和低级规划的规划器(planner),以及一个执行工具使用的执行器(executor)。
论文链接:https://arxiv.org/pdf/2502.11271
代码链接:https://github.com/octotools/octotools
研究人员在16个不同的任务(包括MathVista、MMLU-Pro、MedQA和GAIA-Text)上验证了OctoTools的通用性,比GPT-4o的平均准确率提高了9.3%
此外,当提供相同的工具集时,OctoTools的性能全面优于AutoGen、GPT-Functions和LangChain,最多提高了10.6%的性能,在任务规划、有效工具使用和多步问题解决方面具有非常大的优势。
OctoTools框架
OctoTools框架的核心设计理念是让人工智能系统能够高效地使用外部工具,而无需额外的训练或框架调整。
主要包含工具卡片、规划器、执行器,还包含一个任务指定的工具集优化算法,能够学习为下游任务选择最有用的工具子集。
整个过程不断迭代,直到找到完整的解决方案。
工具卡片(Tool Cards)
工具卡片定义了工具使用的元数据,每个工具卡片的设计与框架是相对独立的,用户可以在不修改底层框架或智能体逻辑的情况下,轻松集成各种工具。
新的工具卡片可以无缝集成到框架中,而无需进行额外的训练或对框架进行调整,极大提高了工具的可扩展性和灵活性。
每个工具卡片代表一个工具及其必要的元数据,包括工具的名称、输入和输出类型,以及命令示例,为规划器和执行器提供了开发者的指导建议。
比如,图像描述工具(Image_Captioner_Tool)指出「在复杂场景中可能会出错」以及「可以考虑使用其他工具进行验证」;目标检测工具(Object_Detector_Tool)注明了其在检测对象方面的限制。
为了确保交互上的一致性,每个工具卡片都实现了两个标准功能:
execute()函数封装了工具的核心功能,例如生成代码片段或执行目标检测,执行结果以结构化格式存储,以支持不同的输出类型,例如生成的代码、检测到的目标或存储的文件;
get_metadata()函数允许规划器和执行器动态评估工具的能力,并理解其使用限制。
规划器(Planner)
规划器负责从宏观和微观两个层面进行规划,不仅关注整体目标,还会逐步细化每一步的动作,确保任务能够高效、精准地执行。
初始化
规划器首先会检查工具箱,加载所有工具卡片,每个工具都带有描述其输入输出模式和使用限制的元数据。
为了更高效地使用工具,规划器会根据专家建议或通过少量示例(few-shot)进行优化,选出工具子集。
查询分析与动作预测
当输入一个查询时,规划器会根据其初始化信息,为工具的使用制定一个初步的、宏观的计划:总结查询的目标,分析所需的技能,识别相关的工具,并特别指出需要验证的环节,确保每个后续的子目标都与原始查询保持一致。
随后,在每步内会提出一个行动(微观计划),实时细化并执行每个子目标,根据新信息或反馈进行调整。
上下文验证与解决方案总结
在每次执行命令后,上下文验证器会检查当前上下文是否已经解决了问题,是否所有子目标都已满足,并识别是否有模糊处理。
如果问题仍未解决,规划器会继续进入下一个循环,预测下一个动作。
整合答案时,会结合中间工具的输出,追溯推理步骤,并以简洁、用户友好的方式呈现最终解决方案。
执行器(Executor)
执行器负责生成可执行的命令,调用工具,并将结构化的结果保存在上下文中。
命令预测
当规划器预测出动作时,命令生成器(由语言模型驱动)会创建一个低层次的命令,形式为可执行的Python脚本,调用指定工具,并提供必要的输入,同时完成数据准备工作。
命令执行
命令执行器会在Python环境中运行生成的命令,并获取结果,包括工具的输出、日志或错误信息。轨迹保留了采取的动作、生成的代码以及获得的结果的清晰历史记录。
针对任务优化工具集
OctoTools工具箱包含多种工具,涵盖了不同的模态和技能,启用所有可用工具时具有很强的通用性,当为某个任务提供少量验证样本时,选出工具子集可以进一步提高效率和性能表现。
研究人员提出了一种自动化的算法为每个任务优化工具集配置,采用贪心搜索策略将计算复杂度降低到O(n),与工具数量线性相关。
实验结果
主要结论
研究人员对比了工具集优化后的框架OctoTools与其他三种基线方法的性能,包括:
1. 零样本(zero-shot):基础语言模型(gpt-4o-2024-08-06)直接回答问题,没有任何额外的提示;
2. 思维链(chain-of-thought,CoT):基础语言模型被提示“逐步思考”,以生成逐步推理的过程;
3. OctoTools基础版(OctoTools-base):仅使用基础工具,不进行任何外部集成。
在16个基准测试中,OctoTools在性能上取得了显著提升,比零样本和连贯推理基线分别高出9.3%和7.7%,比零样本(高出4.2%)和思维链(高出2.6%)的性能更强,表明该框架的逐步推理能力对性能的提升有显著贡献,即使不依赖外部工具集成也是如此。
其他智能体框架
研究人员还对比了三种常用的通用人工智能(GenAI)智能体框架:
1. GPT-Functions:使用GPT-4o通过函数调用用户指定的工具;
2. LangChain:提供多智能体协作、长期记忆和工具使用能力;
3. AutoGen:能够创建多个具有工具使用能力的自主智能体。
为了公平对比每个系统在多步骤中规划和使用工具的能力,研究人员将所有智能体框架(包括OctoTools)配置为使用相同的底层模型(GPT-4o)和超参数,使用相同的工具集,最大推理步数为10步,时间限制为300秒。
总体而言,OctoTools的表现优于其他智能体框架,平均准确率比AutoGen高出10.6%,比GPT-Functions高出7.5%,比LangChain高出7.3%
相关推荐
- 迈向群体智能 | 智源发布首个跨本体具身大小脑协作框架
-
允中发自凹非寺量子位|公众号QbitAI3月29日,智源研究院在2025中关村论坛“未来人工智能先锋论坛”上发布首个跨本体具身大小脑协作框架RoboOS与开源具身大脑RoboBrain,可实...
- 大模型对接微信个人号,极空间部署AstrBot机器人,万事不求百度
-
「亲爱的粉丝朋友们好啊!今天熊猫又来介绍好玩有趣的Docker项目了,喜欢的记得点个关注哦!」引言前两天熊猫发过一篇关于如何在极空间部署AstrBot并对接QQ消息平台的文章,不过其实QQ现在已经很少...
- Seata,让分布式事务不再是难题!实战分享带你领略Seata的魅力!
-
终身学习、乐于分享、共同成长!前言Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA和XA事务模式,为用户打造一站式的...
- 常见分布式事务解决方案(分布式事务解决的问题)
-
1.两阶段提交(2PC)原理:分为准备阶段(协调者询问参与者是否可提交)和提交阶段(协调者根据参与者反馈决定提交或回滚)。优点:强一致性,适用于数据库层(如XA协议)。缺点:同步阻塞:所有参与者阻塞...
- 分布式事务:从崩溃到高可用,程序员必须掌握的实战方案!
-
“支付成功,但订单状态未更新!”、“库存扣减后,交易却回滚了!”——如果你在分布式系统中踩过这些“天坑”,这篇文章就是你的救命稻草!本文将手把手拆解分布式事务的核心痛点和6大主流解决方案,用代码实战+...
- 谈谈对分布式事务的一点理解和解决方案
-
分布式事务首先,做系统拆分的时候几乎都会遇到分布式事务的问题,一个仿真的案例如下:项目初期,由于用户体量不大,订单模块和钱包模块共库共应用(大war包时代),模块调用可以简化为本地事务操作,这样做只要...
- 一篇教你通过Seata解决分布式事务问题
-
1 Seata介绍Seata是由阿里中间件团队发起的开源分布式事务框架项目,依赖支持本地ACID事务的关系型数据库,可以高效并且对业务0侵入的方式解决微服务场景下面临的分布式事务问题,目前提供AT...
- Seata分布式事务详解(原理流程及4种模式)
-
Seata分布式事务是SpringCloudAlibaba的核心组件,也是构建分布式的基石,下面我就全面来详解Seata@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合...
- 分布式事务最终一致性解决方案有哪些?MQ、TCC、saga如何实现?
-
JTA方案适用于单体架构多数据源时实现分布式事务,但对于微服务间的分布式事务就无能为力了,我们需要使用其他的方案实现分布式事务。1、本地消息表本地消息表的核心思想是将分布式事务拆分成本地事务进行处理...
- 彻底掌握分布式事务2PC、3PC模型(分布式事务视频教程)
-
原文:https://mp.weixin.qq.com/s/_zhntxv07GEz9ktAKuj70Q作者:马龙台工作中使用最多的是本地事务,但是在对单一项目拆分为SOA、微服务之后,就会牵扯出分...
- Seata分布式事务框架关于Annotation的SAGA模式分析
-
SAGAAnnotation是ApacheSeata版本2.3.0中引入的功能,它提供了一种使用Java注解而不是传统的JSON配置或编程API来实现SAGA事务模式的声明...
- 分布式事务,原理简单,写起来全是坑
-
今天我们就一起来看下另一种模式,XA模式!其实我觉得seata中的四种不同的分布式事务模式,学完AT、TCC以及XA就够了,Saga不好玩,而且长事务本身就有很多问题,也不推荐使用。S...
- 内存空间节约利器redis的bitmap(位图)应用场景有哪些你知道吗
-
在前面我们分享过一次Redis常用数据结构和使用场景,文章对Redis基本使用做了一个简单的API说明,但是对于其中String类型中的bitmap(位图)我们需要重点说明一下,因为他的作用真的不容忽...
- 分布式事务原理详解(图文全面总结)
-
分布式事务是非常核心的分布式系统,也是大厂经常考察对象,下面我就重点详解分布式事务及原理实现@mikechen本文作者:陈睿|mikechen文章来源:mikechen.cc分布式事务分布式事务指的是...
- 大家平时天天说的分布式系统到底是什么东西?
-
目录从单块系统说起团队越来越大,业务越来越复杂分布式出现:庞大系统分而治之分布式系统所带来的技术问题一句话总结:什么是分布式系统设计和开发经验补充说明:中间件系统及大数据系统前言现在有很多Java技术...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- bootstrap框架 (43)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- express框架 (43)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (52)
- java框架spring (43)
- grpc框架 (55)
- orm框架有哪些 (43)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)