TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000+ REAL-WORLD APIS

2023-10-30

本文是LLM系列的文章之一,针对《TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000+ REAL-WORLD APIS》的翻译。

TOOLLLMs:让大模型掌握16000+的真实世界APIs

摘要

尽管开源大型语言模型(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的指令调整和工具使用的交叉研究铺平了道路。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000+ REAL-WORLD APIS 的相关文章

随机推荐

  • 初次使用QT5串口类QSerialPort

    因为工作需要 现在正在学习Qt的串口通信 Qt4的话需要使用第三方类 使用起来也非常简单 只需要把对应的文件添加到自己的项目中就可以了 我参考的是Qt论坛上的demo 刘大师和yafei的demo都非常详细 网上都可以下载到 不过 Qt5添
  • Elementui设置样式不起效

    在使用ElementUI时 其渲染的dom元素有时是在模板外的 虽然代码写在了vue文件对用的模板内 但elementui在渲染的时候可能会渲染到和body一级 如这种弹窗 有时候想给这种el dialog加个样式 发现是不起效的 原因是
  • VCS命令行CTRL+C后dump完整的fsdb波形

    UCLI命令行CTRL C后dump完整的fsdb波形 1 ucli fsdbDumpFinish 2 ucli fsdbDumpvars 0 harness mda struct 如果仿真过程中直接CTRL C会调到UCLI接口 此时如果
  • 工作不好找,普通打工人如何破局

    大家好 我是苍何 我的一位阿里朋友被裁后 找工作找了一个月都没结果 很多到最后一面被pass了 不由得做一下感慨 即使是大厂背景又如何 面对经济环境和大环境市场 每个人都不容易 我身边很多都是程序员群体 最近也在在编程导航 收到了很多小伙伴
  • 13.linux进程基础

    一 进程基础 基础概念 关于进程和线程的基本概念在操作系统中早已学过 可以概括为一下几点 根本区别 进程是操作系统资源分配的基本单位 而线程是处理器任务调度和执行的基本单位 资源开销 每个进程都有独立的代码和数据空间 程序上下文 程序之间的
  • Unable to negotiate with 172.16.28.137 port 22: no matching host key type found. Their offer: ssh-rs

    Unable to negotiate with 172 16 28 137 port 22 no matching host key type found Their offer ssh rsa ssh dss ssh连接服务器报错 Un
  • 数字化转型升级是企业的一项重要决策

    无独有偶 世界经济数字化转型是一个大命题 也是一个大趋势 未来一段时期 数字经济将成为拉动经济增长的一个重要引擎 各行业各领域数字化转型步伐将大大加快 不论是行业老大 还是国家政策 数字化转型都纷纷提上了日程 看来 在2020年 进行数字化
  • 贪吃蛇的小程序

    1 创建项目 1 打开微信开发者工具如图所示的界面 点击 2 填写项目以后 点击确定即可 如图所示 2 编程 1 编写index wxml的代码如下
  • ITIL是什么意思?ITIL是什么?

    ITIL是什么 ITIL是Information Technology Infrastructure Library的缩写 即 信息技术基础架构库 ITIL是由英国政府部门CCTA Central Computing and Telecom
  • 解决 hsdb jinfo jmap sa-jdi等mac不可用问题

    mac 使用 hsdb 调试的时候报错 hsdb gt attach 3196 Attaching to process 3196 please wait ERROR attach task for pid 3196 failed os k
  • linux查看文件行数

    这本阿里P8撰写的算法笔记 再次推荐给大家 身边不少朋友学完这本书最后加入大厂 Github 疯传 史上最强悍 阿里大佬 LeetCode刷题手册 开放下载了 使用wc命令 具体通过wc help 可以查看 如 wc l filename
  • 论文笔记:nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation

    nature 2019 配套论文笔记 nnU Net Self adapting Frameworkfor U Net Based Medical Image Segmentation UQI LIUWJ的博客 CSDN博客 1 abstr
  • flutter windows 配置

    按照官网的教程安装好Android Studio flutter3 3 7 添加flutter目录的bin到环境变量Path 特别要注意的是 要添加以下两个环境变量 否则在运行flutter run 编译android程序时 会非常慢 Ru
  • 【python基础知识】19.产品思维以及流程图的使用 - 思维篇

    文章目录 前言 产品思维 流程图 顺序结构 条件结构 循环结构 产品设计 如何提需求 如何设计解决方案 前言 这是一节思维课程 我会向大家讲述如何利用编程知识去解决实际生活的问题 我曾反复提到 我们学习编程的目的从来不是为了考试 而是要学会
  • ESP32+TFTLCD实现WiFi天气语音播报(六)

    ESP32 MY1680U实现语音播报 文章目录 ESP32 MY1680U实现语音播报 前言 一 MY1680U 12P 语音模块 1 概述 2 参数说明 二 代码实现 1 MY1690 c 2 MY1690 h 3 main c 总结
  • 鸿蒙系统开发工具DevEco Studio 2.2下载/安装教程

    鸿蒙开发包括鸿蒙应用开发 手机app 和鸿蒙设备开发 硬件开发 两大部分 其中设备开发又包括TV 音响 眼镜 手表 PC 平板 汽车 耳机以及未来的各种智能家居 手机作为一个超级终端 与各种设备实现互联 未来无论是在工作 学习 运动还是做家
  • Ubuntu卸载Anaconda步骤

    1 进行相关文件的删除 删除12个文件夹 删除anaconda3文件夹 rm rf anaconda3 删除 anaconda文件夹 rm rf anaconda 删除 condarc文件夹 rm rf condarc 删除 conda文件
  • QT项目移植Ubuntu碰到的问题及解决

    项目可以直接移植 移植过程中需要删除两个文件 意思就是除了项目相关的文件 其他的编译文件不要移植过去 我的项目似乎是这几个文件的问题 要是不删除上面多余文件的话 我的项目是直接从windows复制到装载ubuntu的虚拟机上 不删的话 在w
  • Ubuntu 20.04 搭建 Fisco-BCOS 2.8.0 区块链系统

    0 摘要 本文根据 Fisco BCOS 及 Webase 官方文档 就安装过程做了详细描述 针对官方文档中一些不清楚的地方 做了补充 方便新手搭建 1 准备工作 1 1 系统 Ubuntu 20 04 3 Desktop Server F
  • 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 的真实