TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000+ REAL-WORLD APIS
本文是LLM系列的文章之一,针对《TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000+ REAL-WORLD APIS》的翻译。
TOOLLLMs:让大模型掌握16000+的真实世界APIs
- 摘要
- 1 引言
- 2 数据集构建
- 3 实验
- 4 相关工作
- 5 结论
摘要
尽管开源大型语言模型(LLM)及其变体(如LLaMA和Vicuna)取得了进步,但它们在执行更高级别的任务方面仍然受到很大限制,例如遵循人类指令使用外部工具(API)。这是因为当前的指令调优主要集中在基本的语言任务上,而不是工具使用领域。这与最先进的(SOTA)LLM(例如,ChatGPT)形成了鲜明对比,后者展示了出色的工具使用能力,但不幸的是,它们是封闭源代码的。为了促进开源LLM中的工具使用能力,我们引入了ToolLLM,这是一个数据构建、模型训练和评估的通用工具使用框架。我们首先介绍了ToolBench,这是一个用于工具使用的指令调优数据集,它是使用ChatGPT自动创建的。具体来说,我们从RapidAPI Hub收集了16464个真实世界的RESTful API,涵盖49个类别,然后提示ChatGPT生成涉及这些API的各种人工指令,涵盖单工具和多工具场景。最后,我们使用ChatGPT为每条指令搜索有效的解决方案路径(API调用链)。为了提高搜索过程的效率,我们开发了一种新的基于深度优先搜索的决策树(DFSDT),使LLM能够评估多个推理轨迹并扩展搜索空间。我们表明,DFSDT显著增强了LLM的规划和推理能力。为了进行有效的工具使用评估,我们开发了一个自动评估器:ToolEval。我们在ToolBench上微调LLaMA并获得ToolLLaMA。我们的ToolEval表明,ToolLLaMA表现出执行复杂指令和泛化到看不见的API的非凡能力,并表现出与ChatGPT相当的性能。为了使管道更实用,我们设计了一个神经API检索器,为每条指令推荐合适的API,从而消除了手动选择API的需要。代码、经过训练的模型和演示可在https://github.com/OpenBMB/ToolBench.
1 引言
2 数据集构建
3 实验
4 相关工作
5 结论
这项工作介绍了如何在LLM中获得工具使用能力。我们提供了一个指令调优数据集ToolBench,它涵盖了16k以上的真实世界API和各种实际用例场景,包括单工具和多工具任务。ToolBench的构建完全使用ChatGPT,并且需要最少的人工监督。此外,我们提出了DFSDT来增强LLM的规划和推理能力,使其能够战略性地在推理路径中导航。为了有效评估工具学习,我们设计了一个自动评估器ToolEval。通过在ToolBench上对LLaMA进行微调,获得的模型ToolLLaMA与ChatGPT的性能相匹配,并对看不见的API表现出显著的泛化能力。此外,我们还开发了一个神经API检索器,为每条指令推荐相关的API。检索器可以与ToolLLaMA集成,作为一个更自动化的工具使用管道。总的来说,这项工作为LLM的指令调整和工具使用的交叉研究铺平了道路。
相关文章:
TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000+ REAL-WORLD APIS
本文是LLM系列的文章之一,针对《TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000 REAL-WORLD APIS》的翻译。 TOOLLLMs:让大模型掌握16000的真实世界APIs 摘要1 引言2 数据集构建3 实验4 相关工作5 结论 摘要 尽管开源大型语言模型&…...
【JavaSpring】spring接口-beanfactory和applicationcontext与事件解耦
beanfactory 1.applicationcontext的父接口 2.是Spring的核心容器 功能 表面只有getBean,但实现类默默发挥了巨大作用 1.管理所有bean 2.控制反转 3.基本的依赖注入 applicationcontext 功能 1.继承了MessageSource,有了处理国际化资源的能力 …...
《深入理解Java虚拟机》——Java内存区域与内存溢出异常
Java内存区域与内存溢出异常 运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存 实例堆溢出栈溢出 运行时数据区域 根据《Java虚拟机规范的规定》,Java虚拟机所管理的内存将会包含已下架几个运行时数据区域。 程序计数器 在Java虚…...
公众号hanniman往期精选
目录 一、AI产品分析(10篇) 二、AI产品经理(10篇) 三、AI技术(10篇) 四、AI行业及个人成长(10篇) 一、AI产品分析 1、【重点】深度 | 关于AIGC商业化的13个非共识认知(80…...
谷粒商城----缓存与分布式锁
1、缓存使用 为了系统性能的提升,我们一般都会将部分数据放入缓存中,加速访问。而 db 承担数据落盘工作。 哪些数据适合放入缓存? 即时性、数据一致性要求不高的 访问量大且更新频率不高的数据(读多,写少&…...
【JavaEE进阶】Spring事务和事务传播机制
文章目录 一. 什么是Spring事务二. Spring中事务的实现1. Spring编程式事务2. 声明式事务2.1 trycatch下事务不会自动回滚的解决方案2.2 Transactional 作用范围2.3 Transactional 参数说明2.4 Transactional 工作原理 三. 事务的隔离级别1. 事务的四大特性2. Spring中设置事务…...
【Hive】drop table需注意外部表
什么是内部表,外部表? 比较专业的定义: 外部表需要转为内部表,执行删除操作才能真的删表结构删表数据。否则drop table仅是删除了表数据,表结构还是存在的。 alter table tb_name set TBLPROPERTIES(EXTERNALfalse);…...
【2023数学建模国赛】A题定日镜场的优化设计模型建立
2023年全国大学生数学建模竞赛A题定日镜场的优化设计,目前已写出第四版国赛A题思路和模型详细公式,目录如下: 一、 问题重述... 1 二、 问题分析... 1 三、 模型假设... 6 四、 问题一模型的建立和求解... 6 4.1 定日镜场坐标系的建立...…...
QT 事件与信号区别
事件(Event)和信号(Signal)是两个在编程中具有不同概念和用途的术语。 事件(Event): 事件是程序运行过程中发生的特定动作或状态改变。可以是用户输入、硬件触发、系统通知等。 事件通常由操作…...
[Vue3 博物馆管理系统] 使用Vue3、Element-plus tabs组件构建选项卡功能
系列文章目录 第一章 定制上中下(顶部菜单、底部区域、中间主区域显示)三层结构首页 第二章 使用Vue3、Element-plus菜单组件构建菜单 第三章 使用Vue3、Element-plus走马灯组件构建轮播图 第四章 使用Vue3、Element-plus tabs组件构建选项卡功能 [第五…...
【算法专题突破】滑动窗口 - 长度最小的子数组(9)
目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:209. 长度最小的子数组 - 力扣(Leetcode) 要注意的是,题目给的是正整数, 而题目要求并不难理解,就是找最短的…...
骨传导与入耳式耳机哪种音质好?该如何选择?
骨传导耳机和传统耳机的定位不同,所以没有可比性,如果一定要说哪款耳机音质好,答案是入耳式耳机音质比较好! 首先入耳式耳机是直接塞入耳朵佩戴,会最大程度减少漏音,同时不会改变音质,会直接传…...
【多线程】Timer任务定时器实现与盲等原子性问题的解决
目录 一、定时器 二、标准库中的Timer 三、代码实现 四、死锁 一、定时器 代码中的定时器通常是在一定的时间执行对应的代码逻辑 二、标准库中的Timer public static void main(String[] args){Timer timer new Timer();timer.schedule(new TimerTask() {Overridepublic…...
SpringCloud-GetWay 路由网关
接上文 SpringCloud-Hystrix 服务降级与熔断 微服务也是如此,不是所有微服务需要直接暴露给外部调用,就需要使用路由机制,添加一层防护,让所有的请求全部通过路由来转发到各个微服务,并转发给多个相同微服务实例&#…...
使用生成式 AI 增强亚马逊云科技智能文档处理
数据分类、提取和分析对于处理大量文档的组织来说可能具有挑战性。传统的文档处理解决方案是手动的、昂贵的、容易出错的,并且难以扩展。利用 Amazon Textract 等 AI 服务,亚马逊云科技智能文档处理(IDP)允许您利用业界领先的机器学习(ML)技术来快速准确地处理任何扫描文档或图…...
谈论浏览器内核
浏览器内核是指浏览器使用的渲染引擎,用于解析并显示网页的内容。主要有以下几种浏览器内核: Trident(IE内核):由Microsoft开发,被用于Internet Explorer浏览器。目前已经被Edge取代。 Gecko:…...
电商卖家保障数据隐私和安全用什么安全的浏览器?
在如今信息爆炸的时代,个人数据安全成为了一个备受关注的话题。越来越多的人意识到,保护个人数据的重要性。为此,安全浏览器应运而生,为用户提供更加安全可靠的上网环境,保障个人数据的安全。 一、数据安全的重要性 …...
ECS通过DNAT将C非专线网段并网
1.问题描述 客户需求:ECS1需要访问140.131.208.0/24 ,由于140.131.208.0/24网段属于公网地址,在CSW侧为进行并网。 解决方案:故将ECS1发起的请求其在云内ECS2做DNAT,将该网段转换成CSW并网网段170.101.253.0/24&…...
g++模板显式实例化big file例子
前言 模板是编程中高级工具,类似C语言的宏生成代码,但却比宏更强大,例如,对于调试的支持,以及实现更严格的语法检查。 如果用节省代码来定义工具的好坏,无疑不管用C语言宏来生成代码,或者用C的…...
Redis 删除策略
文章目录 Redis 删除策略一、过期数据二、数据删除策略1、定时删除2、惰性删除3、定期删除4、删除策略对比 三、逐出算法 Redis 删除策略 一、过期数据 Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令获取其状态 XX &a…...
芯片行业变革:开源硬件、可重构芯片与商业模式创新
1. 行业拐点:传统芯片商业模式为何难以为继?干了十几年芯片设计,从流片工程师到项目负责人,我亲眼见证了行业从“黄金时代”到如今“卷成本、卷工艺”的艰难转型。最近和几个老同事聊天,大家不约而同地提到一个词&…...
开源游戏串流革命:Sunshine如何重新定义家庭游戏共享体验
开源游戏串流革命:Sunshine如何重新定义家庭游戏共享体验 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 在游戏设备日益多样化的今天,你是否曾想过将高性能…...
如何在PC上快速配置yuzu模拟器:完整游戏体验指南
如何在PC上快速配置yuzu模拟器:完整游戏体验指南 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu 想在电脑上畅玩任天堂Switch游戏吗?yuzu模拟器是你的最佳选择!作为目前最成熟的…...
PS2021神经滤镜离线包保姆级安装指南(附文件夹显示与路径详解)
PS2021神经滤镜离线包安装全流程实战手册 第一次打开Photoshop 2021的神经滤镜功能时,那个漫长的下载进度条简直让人崩溃。特别是当网络环境不稳定时,下载失败的概率直线上升。其实Adobe官方提供了完整的离线安装方案,只是隐藏得比较深——就…...
基于Hammerspoon的macOS光标高亮定位工具实现与优化
1. 项目概述:一个让你不再“找光标”的效率神器你有没有过这样的经历?在27寸甚至更大的显示器上,或者是在多屏工作环境中,眼睛在密密麻麻的代码、文档和浏览器标签之间快速扫视,突然,那个小小的鼠标光标“消…...
repo2txt:Git仓库转纯文本工具,为AI分析、代码归档与审查提供完整上下文
1. 项目概述:从代码仓库到纯文本的自动化提取最近在整理个人技术笔记和项目文档时,我遇到了一个挺普遍但有点烦人的问题:如何把一个完整的Git代码仓库,包括它的目录结构、所有源代码文件以及提交历史,以一种清晰、可读…...
AI编程助手集成飞书MCP:零依赖单文件实现工作流自动化
1. 项目概述:连接AI编程助手与飞书工作流 如果你和我一样,每天的工作流都离不开飞书(Lark)——写文档、拉群沟通、排会议日程、更新多维表格,然后在IDE和浏览器之间来回切换,那么你一定会对这个项目感兴趣…...
本地代码解释器:基于LLM与Docker沙箱的AI编程助手实现
1. 项目概述:一个本地化的代码解释器最近在GitHub上看到一个挺有意思的项目,叫Allen091080/local-code-interpreter。光看名字,很多开发者可能就会心一笑,这不就是想在本地复现类似ChatGPT Code Interpreter那种“对话式代码执行”…...
最小扩张三角剖分:算法优化与计算几何实践
1. 最小扩张三角剖分问题概述在计算几何领域,最小扩张三角剖分(Minimum Dilation Triangulation, MDT)是一个经典的优化问题。给定平面上的n个点集P,MDT的目标是找到一个三角剖分T,使得对于P中的任意两点s和tÿ…...
Codepack:标准化开发配置与自动化工具链的工程实践
1. 项目概述:一个为开发者准备的“代码行囊” 最近在GitHub上闲逛,发现了一个挺有意思的项目,叫 JasonLovesDoggo/codepack 。乍一看名字,你可能会觉得这又是一个普通的代码库或者工具集。但点进去仔细研究后,我发现…...
