这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

Toolformer

自监督插入工具调用。「何时调」可写入权重;一次生成里的 API,不是循环。

Schick 等,2023-02,Toolformer: Language Models Can Teach Themselves to Use Tools(Meta AI)。在 GPT-J 上插入计算器、问答、搜索、翻译、日历等 API 调用。

  1. 论文 — 自监督采样与过滤、工具集、相对更大模型的增益。
  2. 讲解 — 训练侧证据与开放 schema 差在哪一层;为何仍不是 Agent。

原文:arXiv:2302.04761。

1 - Toolformer(论文)

按原文结构转述 Schick 等 2023:自监督插入 API 调用。

Timo Schick, Jane Dwivedi-Yu, Roberto Dessì, Roberta Raileanu, Maria Lomeli, Luke Zettlemoyer, Nicola Cancedda, Thomas Scialom. Toolformer: Language Models Can Teach Themselves to Use Tools。Meta AI。2022-12 工作,arXiv 2023-02。arXiv:2302.04761。


摘要

语言模型在需要最新信息、或做精确计算一类任务上仍会失败。本文表明:语言模型可以自己教会自己使用外部工具,只需少量工具使用示范。方法称 Toolformer:以自监督方式决定调用哪些 API、传什么参数、以及如何把结果写回后续 token 预测。

在不牺牲通用语言模型能力的前提下,Toolformer 学会使用多种工具:计算器、问答系统、搜索引擎、翻译系统、日历。作者用 GPT-J(66 亿参数)实现;在若干任务上超过大得多的、不会用工具的模型。

方法

出发点:人写文本时,遇到算不准或不知道的地方会去查工具。作者把这种行为做成生成过程里的内联 API 调用。

流程大意:

  1. 给模型少量如何调用某工具的示范。
  2. 在无标注语料上,让模型采样可能的 API 调用(插在文本中间)。
  3. 真正执行这些调用,得到结果。
  4. 过滤:只保留那些能降低后续 token 损失的调用——也就是「这次调用对接着写下去有帮助」。
  5. 用过滤后的文本(含调用与结果)继续微调模型。

调用在文本里表现为特殊标记包起来的字符串,解码时遇到调用就执行工具、把返回值填回去,再继续生成。工具集在文中包括:Calculator、QA 系统、Wikipedia 搜索、机器翻译、日历。

关键主张:不必为每个工具准备大规模人类标注轨迹;自监督过滤就够让模型学会何时调用。

限度(文中可见)

工具集合是作者选定的,不是开放的任意函数。调用格式仍是文本插入,不是后来的 JSON schema。评测是语言任务与知识/计算基准,不是开放目标上的多步 Agent 循环。模型规模远小于 GPT-3 / GPT-4。

2 - Toolformer 讲解

「何时调工具」可以写进权重。Function Calling 是 schema;这篇是训练侧证据。

论文解决了什么问题

2022 年工具使用默认靠提示:示范格式、解析字符串、赌模型吐出可执行调用。脆,也不会从预训练目标里长出来。Toolformer 改问:若一次 API 调用能降低后续 token 损失,模型能不能自己发现该插在哪。

过滤标准不是人喜欢哪条轨迹,是语言模型损失有没有下降。对象仍是生成中间的内联 API,不是「给一个目标转完」。

对后续 LLM 的影响

「工具使用可学」从此有训练侧证据。后来各家把函数调用做进微调与偏好数据,问题陈述同类:何时调用、参数是什么。它没有规定 Chat Completions 的 functions 字段;那是 6 月的接口工程。训练目标 ≠ 开放 schema。

对 AI Agent 的影响

按 AI Agent 定义,Toolformer 不是 Agent:一次生成里插入调用,没有目标驱动的多步循环,也没有宿主侧的执行循环。它补的是决策核心的一块——算不准时把计算交出去。没有这一块,循环里的 Action 只能靠提示词演戏。有了这一块,仍缺宿主、缺停机、缺完成谓词。