Toolformer: Language Models Can Teach Themselves to Use Tools

news2024/10/2 10:25:56

展示了LM可以通过简单的API教自己使用外部工具,并实现两个世界的最佳效果。我们介绍了Toolformer,这是一个经过训练的模型,可以决定调用哪些API,何时调用,传递哪些参数,以及如何将结果最好地纳入未来的标记预测中。这是以一种自我监督的方式完成的,只需要对每个API进行少量的演示即可。我们纳入了一系列的工具,包括一个计算器、一个问答系统、一个搜索引擎、一个翻译系统和一个日历。

1 摘要部分的主要信息:

1) 大模型的不足或者本文的问题来源:最新的事件信息、相关事实的倾向不能捕捉,理解低资源语言的困难,缺乏进行精确计算的数学技能(Patel等人,2021)和对时间的进展没有意识(Dhingra等人,2022)
2) 数据集的获取上:Given just a handful of human-written examples of how an API can be used, we let a LM annotate a huge language modeling dataset with potential API calls (在标注小批量数据集的基础上,使用API完成数据集标注)
3) 训练方式上:We then use a self-supervised loss to determine which of these API calls actually help the model in predicting future tokens. Finally, we finetune the LM itself on the API calls that it con siders useful. As illustrated in Figure 1, through this simple approach, LMs can learn to control a va riety of tools, and to choose for themselves which tool to use when and how. (自监督损失)

2 方法部分的主要信息:

目标是准备每个API需要的输入和输出信息;表示为文本序列形式;
**过程:**第一步是使用大模型挖掘一部分可能的API calls的需求;第二步是对挖掘出的这部分需求做过滤,保留有用的,删掉没有用的。第三步是将所有的API calls组合起来,使用LM在这部分自己做的数据集上做微调。进而,最终具备选择API解决问题 的能力。

2.1 sample API calls

写了一个prompt来促使PLM 能够完成API calls.

计算PLM在句子中的每个token位置续写的可能性,如果高于一个值,则选择在这个位置续写。(为了保证续写位置的数量的上限,设置了一个阈值,当续写的概率高于这个阈值时,会续写,低于的情况下直接舍弃,如果高于的数量超过了k个,则按概率选择前k位置作为续写的地方)

Your task is to add calls to a Question
Answering API to a piece of text.
The questions should help you get
information required to complete the
text. You can call the API by writing
"[QA(question)]" where "question" is the
question you want to ask. Here are some
examples of API calls:
Input: Joe Biden was born in Scranton,
Pennsylvania.
Output: Joe Biden was born in [QA("Where
was Joe Biden born?")] Scranton,
[QA("In which state is Scranton?")]
Pennsylvania.
Input: Coca-Cola, or Coke, is a
carbonated soft drink manufactured by
the Coca-Cola Company.
Output: Coca-Cola, or [QA("What other
name is Coca-Cola known by?")] Coke, is
a carbonated soft drink manufactured by
[QA("Who manufactures Coca-Cola?")] the
Coca-Cola Company.

2.2 executing API calls

这一步内部怎么执行的,取决于API内部的模型自己。

2.3 filtering API calls

调用API calls产生result的过程中,也会有cross_entropy loss,相比于两种极端情况:不适用API calls和使用API calls但不会产生response,两种极端情况下的损失值的最小值,和前者比较,如果后者-前者>=阈值,则保留API calls.

在这里插入图片描述
在这里插入图片描述

2.4 Model finetuning

将API产生的序列合并作为一份新的dataset。然后用来微调LM。

3 实验结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/348031.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Cloud Alibaba环境搭建

环境依赖 SpringCloud Alibaba 依赖 Java环境来运行。还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用: 1. 64 bit JDK 1.8;下载& 配置。 1.8.0_131 2. Maven 3.2.x;下载& 配置搭建微服务 1.建立微服务项目 1.idea通过…

yolov5编译安卓APP:解决图像上全是检测框

yolov5编译安卓APP:解决图像上全是检测框前言一、第一个YOLOv5 APP1.参考链接2.详细说明3.APP检测时图像上全是框的解决方法二、第二个YOLOv5 APP1.参考链接2.详细说明3.APP检测时图像上全是框的解决方法三、其他1.APK打包2.修改APP图标与名字前言 YOLOv5编译安卓A…

【精选论文 | Capon算法与MUSIC算法性能的比较与分析】

本文编辑:调皮哥的小助理 【正文】 首先说结论: 当信噪比(SNR)足够大时,Capon算法和MUSIC算法的空间谱非常相似,因此在SNR比较大时它们的性能几乎一样,当不同信号源的入射角度比较接近时&…

蓝桥杯刷题024——天干地支

2020国赛 题目描述 古代中国使用天干地支来记录当前的年份。 天干一共有十个,分别为:甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(w&#xff09…

IO知识整理

IO 面向系统IO page cache 程序虚拟内存到物理内存的转换依靠cpu中的mmu映射 物理内存以page(4k)为单位做分配 多个程序访问磁盘上同一个文件,步骤 kernel将文件内容加载到pagecache多个程序读取同一份文件指向的同一个pagecache多个程…

MySQL(五)

通过索引进行优化 索引基本知识 索引的优点 1、大大减少了服务器需要扫描的数据量2、帮助服务器避免排序和临时表3、将随机io变成顺序io 索引的用处 1、快速查找匹配WHERE子句的行2、从consideration中消除行,如果可以在多个索引之间进行选择,mysql通常会使用找到…

【Python爬虫案例教学】采集某网站壁纸,实现壁纸自由

前言 (。・∀・)ノ゙嗨 大家好,这里是小圆 现在开始每天都给大家 分享些关于python爬虫的案例教学 从最简单的开始 — 采集图片壁纸 今天就来扒拉这个优质的壁纸网站~ 网址 👇 顺便瞧一眼 这里的…

30 - 面向对象的其他语法

目录 一、本章重点 二、对象的分类 1、类对象 (1)理解 (2)作用 2、实例对象 (1)理解 三、属性的划分 1、实例属性 (1)概念 (2)定义 (3&#xff09…

操作系统的概念,功能和目标

一、概念: 操作系统是指①控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以②提供给用户和其他软件方便的接口和环境,它③是计算机系统中最基本的系统软件。 二、功能和目标:…

零入门kubernetes网络实战-14->基于veth pair、namespace以及路由技术,实现跨主机命名空间之间的通信测试案例

《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 本篇文章继续提供测试案例: 基于veth pair、namespace以及路由技术,实现跨主机命名空间之间的通信 1、网络拓扑如下 2、网络拓扑构建…

【第二章】(1)了解系统内核和 Shell 终端的关系与作用

🐧2.1强大好用的Shell🧊1.什么是Shell?🧊2.Bash解释器的优势🐧2.2 执行命令的必备知识🧊1.Linux命令的格式🧊2.四个快捷键/组合键小技巧🧊1.什么是Shell? ​ 一台…

shell脚本的编写以及shell中语句(嵌入式学习)

shell学习shell脚本编写步骤shell变量功能性语句1.read2.expr3.let4.test逻辑运算符的书写格式结构性语句1.if…then…fi2、case...esac3、for..do..done4、while..do..doneshell脚本 将shell命令按照一定的逻辑顺序实现指定功能,放到一个文件中。文件叫脚本文件&a…

几个Base64编码工具,也有蹊跷

起因 需求:对一段内容进行base64加密,然后通过url的get请求进行发送到后台,由于加密的内容比较少,base64串也不是很长,我认为此方案可行。 于是找了三个base64编码的在线工具,分别是: 平台1&…

设计模式第六讲:责任链模式和迭代器模式详解

一. 责任链模式 1. 背景 在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导…

【Java基础】020 -- 常见API

目录 一、游戏打包exe 二、Math 1、Math类的常用方法 ①、代码实现 2、小结 3、练习 ①、练习一:改进判断一个数是否为一个质数 ②、练习二:自幂数 三、System 1、时间原点 2、常用方法 3、课堂练习 4、注意事项 5、小结 四、Runtime 1、常用方法 2、练习…

微服务项目【商品秒杀接口压测及优化】

生成测试用户 将UserUtils工具类导入到zmall-user模块中,运行生成测试用户信息,可根据自身电脑情况来生成用户数量。 UserUtils: package com.xujie.zmall.utils;import com.alibaba.nacos.common.utils.MD5Utils; import com.fasterxml.j…

【黄啊码】我问ChatGPT如何学习PHP语言,它是这么说的

大家好,我是黄啊码,最近大家都在流行整chatGPT,今天它来了!别人都在吹嘘它万能,能够代替程序员写代码,今天我们就让它教教我们学习PHP语言: 黄啊码: 如何有效学习php语言&#xff1…

关于剩余电流动作继电器在配电系统中的应用探讨

摘 要:据了解,我国每年剩余电流动作继电器(RCD)的使用量超过2.7亿台,属于CCC认证产品,广泛应用于住宅、办公、商业、酒店、学校等民用建筑和数据中心及工业场所。 现在剩余电流动作继电器依据的标准是GB/T…

vue项目如何使用 SheetJS(xlsx)插件?

简言 SheetJS是一款非常好用的前端处理表格文件的工具。它分社区版和专业版,我们今天来介绍如何简单使用它的社区版。 SheetJS社区版官网 介绍 你应该打开官网浏览具体使用详情。 安装 打开官网在如上图的Installation板块中可以找到各种运行模块的使用方式。 …

MongoDB 覆盖索引查询

MongoDB 覆盖索引查询 官方的MongoDB的文档中对覆盖查询做了说明: 所有的查询字段是索引的一部分所有的查询返回字段在同一个索引中 由于所有出现在查询中的字段是索引的一部分, MongoDB 无需在整个数据文档中检索匹配查询条件和返回使用相同索引的查询…