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提供的…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
