ART: Automatic multi-step reasoning and tool-use for large language models 导读
ART: Automatic multi-step reasoning and tool-use for large language models
本文介绍了一种名为“自动推理和工具使用(ART)”的新框架,用于解决大型语言模型(LLM)在处理复杂任务时需要手动编写程序的问题。该框架可以自动选择任务库中的多步推理和工具使用的演示,并无缝地暂停和恢复生成过程以整合外部工具的输出。实验结果表明,ART比仅使用提示语和自动链式思维(CoT)方法在未见过的任务上表现更好,并且易于人类干预以提高性能。

论文方法
方法描述
本文提出的ART(Arithmetic Reasoning Tool)是一种基于自然语言处理技术的任务分解工具,它能够帮助人类将复杂的任务分解成多个子任务,并且为每个子任务提供相应的解决方案。具体来说,ART包含两个主要部分:任务库和工具库。任务库中存储了多种类型的任务,包括算术、代码生成与执行、搜索和问题分解等;而工具库则包含了各种工具,如搜索引擎、代码生成器以及计算器等。在使用ART时,用户只需要输入一个新任务的描述,然后ART会自动从任务库中找到与之相似的任务,并根据这些任务的程序来生成一个新的程序,该程序可以帮助用户完成新的任务。
方法改进
相比于传统的任务分解方法,ART具有以下优点:
-
可以自动化地完成任务分解过程,无需人工干预。
-
能够有效地跨任务学习,即在一个任务中学到的知识可以应用到其他相关任务中。
-
支持自定义工具库,使得用户可以根据自己的需求添加或修改工具,从而提高性能。
此外,ART还支持用户反馈机制,用户可以通过编辑任务库和工具库来自定义任务分解方案,从而进一步提高性能。
解决的问题
本文提出的方法解决了传统任务分解方法的一些缺点,例如需要大量的人工参与、无法跨任务学习等问题。同时,ART还可以通过用户反馈机制不断优化自身性能,因此可以应用于各种不同领域的任务分解场景。

论文实验
本文主要介绍了使用ART(Automated Reasoning Tool)框架进行多步推理和工具使用的实验结果,并与几个基线进行了比较。实验分为以下几个部分:
-
在任务库中对ART进行测试:在任务库中提供了两组任务演示程序,ART仅使用两个示例就可以显著提高性能,比少量示例的直接提示方法提高了14.9%的平均精度。
-
在BigBench等其他基准上测试ART:在没有显式分解和工具使用监督的情况下,ART可以成功应用于多个任务,并且在搜索任务中的表现特别好。
-
比较ART和其他基线:ART比其他基线如少示例学习和自动CoT(Conceptualizing Thinking)更有效,尤其是在需要使用代码生成器来执行复杂算术运算的任务中。
-
自我一致性实验:通过多次生成LLM输出并选择最频繁的答案,ART的性能得到了进一步提高。
-
人类反馈实验:通过编辑模型生成的程序并将其作为示范,ART的性能也得到了显著提高。
总的来说,本文展示了ART在多步推理和工具使用方面的优势,并证明了它具有良好的跨任务泛化能力。同时,本文还表明,在缺乏显式分解和工具使用监督的情况下,人类反馈可以显著提高ART的性能。

论文总结
文章优点
本文提出了一种名为ART的框架,可以自动地为大型黑盒语言模型生成多步推理过程,并使用工具库中的外部工具来提高性能。该框架通过检索任务库中与新任务相关的演示文稿,从而实现零样本分解和工具使用。ART提供了一个灵活但结构化的查询语言,使得解析中间步骤、停止生成以调用外部工具以及在包括这些工具输出后继续生成变得容易。此外,用户可以通过更新任务和工具库来修复任何错误或添加新工具,而无需重新训练模型。实验结果表明,ART在多个测试任务上表现优异,特别是在需要算术和算法推理的任务上表现出色。
方法创新点
ART的主要贡献在于引入了轻量级语法来表示多步推理作为程序(带有工具调用和参数),并扩展了一个包含有用外部工具(如搜索、代码生成和执行)的可扩展工具库。此外,ART还提供了解释性的推理框架,使人类能够改进任务分解和工具使用,从而进一步提高性能。ART还受益于自一致性等方法,或者通过针对工具使用的更强大的预训练语言模型进行训练。
未来展望
本文提出的ART框架具有广泛的应用前景,可以在各种领域中用于自然语言处理任务。例如,在智能客服、智能问答等领域中,可以利用ART框架来帮助机器理解用户的意图并提供相应的答案。此外,ART还可以与其他技术结合使用,例如强化学习和迁移学习,以进一步提高性能。在未来的研究中,我们还将探索如何将ART框架应用于其他类型的语言模型,并将其扩展到更多的任务和工具库中。
相关文章:
ART: Automatic multi-step reasoning and tool-use for large language models 导读
ART: Automatic multi-step reasoning and tool-use for large language models 本文介绍了一种名为“自动推理和工具使用(ART)”的新框架,用于解决大型语言模型(LLM)在处理复杂任务时需要手动编写程序的问题。该框架可…...
Github 2024-01-26 开源项目日报Top10
根据Github Trendings的统计,今日(2024-01-26统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4Jupyter Notebook项目2HTML项目1Shell项目1Dockerfile项目1非开发语言项目1Go项目1Rust项目1 高级…...
免费的 UI 设计资源网站 Top 8
今日与大家分享8个优秀的免费 UI 设计资源网站。这些网站的资源包括免费设计材料站、设计工具、字体和其他网站,尤其是一些材料站。它们是免费下载的,材料的风格目前很流行,适合不同的项目。非常适合平面设计WEB/UI设计师收藏,接下…...
人机协同对人工智能治理的影响
人机协同对人工智能治理的影响是多方面的。 首先,人机协同可以提供更有效的人工智能监管和治理机制。人工智能系统通常需要大量的数据来训练和运行,而人类在监管和治理方面有独特的能力。通过人机协同,人们可以利用他们的主观意见和专业知识来…...
Form.List的使用,设置某个字段的值
1.Form.Item的name <Form.Itemname{[base_range, company_base_range_start]}dependencies{[[base_range, company_base_range_end]]}rules{[{ required: true, message: 请输入下限 },{validator: (_, value) >validateMoneyRule(value,base_range?.company_base_range…...
React16源码: React中的updateHostComponent的源码实现
updateHostComponent 1 )概述 在 completeWork 阶段的 HostComponent 处理,继续前文所述在更新的逻辑里面,调用了 updateHostComponent进行前后props对应的dom的attributes变化的对比情况这个方法也是根据不同环境来定义的,我们这…...
uniapp导入uView组件库
目录 准备工作 1. 新建一个项目 2. 导入uview组件库 3. 关于SCSS 配置步骤 1. 引入uView主JS库 2. 在引入uView的全局SCSS 3. 引入uView基础样式 4. 配置easycom组件模式 添加效果实验运行即可成功 准备工作 1. 新建一个项目 2. 导入uview组件库 在进行配置之前&#x…...
防御保护----防火墙的安全策略、NAT策略实验
实验拓扑: 实验要求: 1.生产区在工作时间(9:00-18:00)内可以访问DMZ区,仅可以访问http服务器; 2.办公区全天可以访问DMZ区,其中10.0.2.10可以访问FTP服务器和HTTP服务器…...
# 安徽锐锋科技IDMS系统简介
IDMS 由安徽锐锋科技独立开发 该系统负责和海算以及UE\UNITY的无缝衔接并具备远程数据库访问、高速数据库的自动创建及数据存储、支持MQTT等多种物联网接口,支持多种算法。主要完成由于物料、人员、生产、故障、不良异常、订单异常带来的生产损失,通过海…...
Notepad在文件中查找多行相同内容的文字
Notepad在文件中查找多行相同的内容 查找:打开 Notepad软件, Ctrl F 查找 。输入关键词, 点击【在当前文件中查找】。 复制:直接在下方的【搜索结果】复制。 Notepad提取含有特定字符串的行 详情见: https://blog…...
Python高超音速导弹
Python高超音速导弹的全自动化开发研发具有重要性的原因如下: 提高研发效率:全自动化开发可以通过自动化工具和流程,快速完成各种任务,包括代码编写、测试、集成和部署等。这样可以大大提高研发效率,缩短开发周期。 减…...
Java七大排序详解
排序 排序的概念 所谓排序 ,就是让一串记录,按照其中某些或者某个关键字的大小,递增或递减的排列起来的操作。 稳定性:就比如在待排序的序列中,存在多个具有相同关键字的记录 ,如果经过排序这些相同的关键…...
图像旋转角度计算并旋转
#!/usr/bin/python3 # -*- coding: utf-8 -*- import cv2 import numpy as np import timedef Rotate(img, angle0.0,fill0):"""旋转:param img:待旋转图像:param angle: 旋转角度:param fill:填充方式,默认0黑色填充:return: img: 旋转后…...
通过curl访问k8s集群获取证书或token的方式
K8S安全控制框架主要由下面3个阶段进行控制,每一个阶段都支持插件方式,通过API Server配置来启用插件。 1. Authentication(认证) 2. Authorization(授权) 3. Admission Control(准入控制&#…...
苍穹外卖-前端部分(持续更新中)
d 第二种:cmd中输入 vue ui进入图形化界面选择npm,vue2进行创建 先将创建的Vue框架导入Vsocde开发工具 然后ctrshiftp 输入npm 点击serve将项目启动 下这种写法跨域会报错: 解决方法:...
windows用mingw(g++)编译opencv,opencv_contrib,并install安装
windows下用mingw编译opencv貌似不支持cuda,选cuda会报错,我无法解决,所以没选cuda,下面两种编译方式支持。 如要用msvc编译opencv,参考我另外一篇文章 https://blog.csdn.net/weixin_44733606/article/details/1357…...
JDWP 协议及实现
JDWP 的协议细节并通过实际调试中的例子展开揭示 JDWP 的实现机制,JDWP 是 Java Debug Wire Protocol 的缩写,它定义了调试器(debugger)和被调试的 Java 虚拟机(target vm)之间的通信协议。 JDWP 协议介绍 这里首先要说明一下 debugger 和 target vm。Target vm 中运行…...
利用ADS建立MIPI D-PHY链路仿真流程
根据MIPI D-PHY v1.2规范中对于互连电气参数的定义,本次仿真实例中,需要重点关注如下的设计参数: 1. 差分信号的插入损耗Sddij和回拨损耗Sddii; 2. 模式转换损耗Sdcxx、Scdxx; 3. 数据线与时钟线之间的串扰耦合(远、近端)。 设计者还可以结合CTS中的补充…...
【大根堆】【C++算法】871 最低加油次数
作者推荐 【动态规划】【map】【C算法】1289. 下降路径最小和 II 本文涉及知识点 大根堆 优先队列 LeetCode:871最低加油次数 汽车从起点出发驶向目的地,该目的地位于出发位置东面 target 英里处。 沿途有加油站,用数组 stations 表示。其中 statio…...
SpringBoot的自动装配原理
一、SpringBootConfiguration注解的作用 SpringBootApplication注解是SpringBoot项目的核心注解,加在启动引导类上。点击进去可以发现SpringBootApplication注解是一个组合注解。其中SpringBootConfiguration和EnableAutoConfiguration是由Spring提供的,剩下的注解是由JDK提供的…...
物联网超低功耗设计:从睡眠优先到能量自治的十年续航之道
1. 项目概述:让物联网节点运行数十年的设计哲学如果你正在部署一个大规模的物联网网络,无论是智慧城市的数千个路灯传感器,还是遍布数公里农田的环境监测节点,最让你头疼的问题恐怕不是通信协议,也不是数据处理&#x…...
Lie群方法在机器人状态估计中的创新应用
1. 状态估计技术演进与Lie群方法的核心价值在机器人导航与定位领域,状态估计技术扮演着大脑的角色。想象一下,当你在陌生城市使用手机导航时,系统需要实时融合GPS、陀螺仪和加速度计的数据来确定你的位置——这正是状态估计的典型应用场景。传…...
开源机械爪OpenClaw Max:从设计原理到实践应用全解析
1. 项目概述:从开源机械爪到OpenClaw Max的进化之路如果你和我一样,对机器人、自动化或者DIY硬件充满热情,那么“机械爪”这个组件一定不会陌生。它就像是机器人的“手”,是实现抓取、搬运、操作等复杂任务的核心执行器。市面上有…...
PyTorch Tensor运算的‘潜规则’:运算符重载(如a*b)与函数调用(torch.mul)到底选哪个?
PyTorch运算符重载与显式函数调用的工程实践指南 在PyTorch的日常开发中,我们经常面临一个看似简单却值得深思的选择:该用a b这样的运算符重载,还是显式调用torch.add(a, b)?这个选择不仅关乎代码风格,更影响着团队协…...
Tome:基于MCP协议的无代码AI桌面助手,轻松连接本地与云端模型
1. 项目概述:Tome,一个为普通人打造的魔法AI桌面应用 如果你对大型语言模型(LLM)和AI助手感兴趣,但又觉得那些命令行工具、复杂的API配置和JSON文件让人望而却步,那么Tome的出现,可能就是为你准…...
HoRain云--PHP安全插入MySQL数据指南
🎬 HoRain 云小助手:个人主页 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …...
智能体集成德国铁路实时信息:无需API的Node.js工具箱openclaw-bahn详解
1. 项目概述:一个为智能体打造的德国铁路工具箱如果你经常在德国乘坐火车,或者像我一样,需要为一些自动化流程(比如智能体)集成实时交通信息,那么你肯定对德国铁路(Deutsche Bahn, DB࿰…...
别再复制粘贴了!手把手教你为51单片机LCD12864制作自定义中文字库(Keil C51环境)
从零构建51单片机LCD12864自定义中文字库的完整实战指南 在嵌入式显示领域,标准字库往往无法满足个性化需求。当我们需要在LCD12864屏幕上显示特殊符号、品牌LOGO或艺术字体时,自定义字库技术就成为关键突破点。本文将彻底解析从字模提取到ROM优化的全流…...
图解UART串口通信:从电平标准到数据帧的完整解析
1. UART串口通信基础:从物理层到协议层 第一次接触嵌入式开发时,我被UART这个名字唬住了——Universal Asynchronous Receiver/Transmitter(通用异步收发器),听起来像是某种高端设备。直到用USB转TTL模块点亮了第一个L…...
小米Agent岗二面:你们 RAG 知识库上线之后,文档更新了怎么办?
👔面试官:你们 RAG 知识库上线之后,文档更新了怎么办?总不能每次改个文档就把整个知识库重建一遍吧。 🙋♂️我:可以直接找到变了的那个 chunk,更新它的向量就行了。 👔面试官&a…...
