一个 6.7B 的 GPT-J 用自监督方式给普通文本自动插入 API 调用,只保留"能降低后续 token 预测损失"的调用,再在增广数据上微调。学会自己决定何时/调用哪个工具后,零样本超越 25× 更大的 GPT-3,且不损失语言建模能力。
大语言模型强于少样本泛化,却在最基础的能力上失败:算术、事实查询、低资源语言、时间感知、以及对最新事件的访问。仅靠扩大规模无法根治。已有的"给模型加工具"方案有两条死路:(i) 依赖大量人工标注(如对话检索、WebGPT),成本高且"人认为有用"未必等于"模型认为有用";(ii) 把工具用限制在任务特定的少样本提示里,事先规定必须用哪个工具,无法通用化。缺口是一个既自监督(无需人工标注)又任务无关(模型自己决定何时/如何/用哪个工具)的工具学习方法。
把每个 API 调用线性化为可插入任意文本的特殊 token 序列 $\text{e}(c,r)=\texttt{
最后把保留的调用原位插回文本,用标准 LM 目标微调模型自己。推理时正常解码,遇到 → 就中断、真实调用 API、把结果插回继续解码。
核心技术壁垒:自监督"有用性"过滤准则 $L_i^- - L_i^+ \geq \tau_f$。它把"工具是否有用"这一主观判断,转化为一个纯粹由模型自身未来 token 预测损失度量的客观信号——不需要任何下游任务标签、不需要人类判断、不需要任务特定 prompt。$L_i^-$ 取"不调用"与"调用但不给结果"两者损失的最小值,保证 baseline 是最强的"无信息"对照,从而只有结果本身携带的信息才算数。这个信号+基座模型 in-context 生成候选调用的能力,是全方法唯一无法轻易替代的支点(详见 §7)。
Toolformer 不是一个新的网络结构,而是一个数据构造 + 微调 pipeline,作用在标准 decoder-only Transformer(GPT-J 6.7B)之上。核心方法图是论文 Figure 2 的三步流水线。

Paper's Figure 2, verbatim (caption: "Key steps in our approach, illustrated for a question answering tool: Given an input text x, we first sample a position i and corresponding API call candidates ... We then execute these API calls and filter out all calls which do not reduce the loss $L_i$ over the next tokens. All remaining API calls are interleaved with the original text, resulting in a new text $x^$.").*
这张图是整篇方法的骨架:注意"filter"步骤是唯一决定哪些调用进入训练集的闸门,它只看未来 token 损失是否下降,不看任何下游标签。QA 例子里"New Haven, Connecticut"的调用被保留,是因为它让后面的地名 token 更好预测。
Figure 1 展示了训练完成后的推理行为:模型在四种语境下自主选择了不同工具。

Paper's Figure 1, verbatim (caption: "Exemplary predictions of Toolformer. The model autonomously decides to call different APIs (from top to bottom: a question answering system, a calculator, a machine translation system, and a Wikipedia search engine) to obtain information that is useful for completing a piece of text.").
从上到下依次是 QA → 计算器 → 机器翻译 → 维基搜索,说明同一个模型在没有任务提示的情况下能按语境切换工具——这正是 §2 desiderata 中"任务无关"的直接体现。
采样步骤依赖工具特定 prompt,Figure 3 给出 QA 工具的 prompt 模板。

Paper's Figure 3, verbatim (caption: "An exemplary prompt $P(x)$ used to generate API calls for the question answering tool.").
prompt 用几个人写的示范展示"在哪里插入 [QA(...)] 最自然",模型据此在新文本上泛化出候选调用位置与参数——每个工具只需一把(handful)这样的示范。
Toolformer 复用 GPT-J 6.7B 原始结构,方法本身不改架构:GPT-J 使用 MHA + RoPE(旋转位置编码,作用于每个 head 的 q/k)、标准(非 MoE)FFN、pre-norm 布局;词表也不改——//→ 用现有 token 序列 [ / ] / -> 表示(§2 脚注),使方法无需扩词表即可插入结构化调用。config.json 级维度未在论文正文披露([论文未披露],见 §Appendix 说明)。
本文无形式化定理证明,方法的正当性由一组定义式 + 实证验证支撑。下面给出记号表、方程物理意义与最小检查。
| 符号 | 含义 |
|---|---|
| $M$ | 待增强的语言模型(GPT-J 6.7B) |
| $c=(a_c, i_c)$ | 一次 API 调用:名称 $a_c$ + 输入 $i_c$ |
| $r$ / $r_i$ | API 返回结果(单一文本序列) |
| $\text{e}(c)$, $\text{e}(c,r)$ | 调用的线性化(无/含结果) |
| $P(\mathbf{x})$ | 工具特定采样 prompt |
| $p_i$ | 在位置 $i$ 发起调用的概率 |
| $\tau_s$, $\tau_f$ | 采样阈值 / 过滤阈值 |
| $k$, $m$ | 保留位置数上限 / 每位置候选调用数 |
| $L_i(\mathbf{z})$ | 以 $\mathbf{z}$ 为前缀时对 $x_i,\ldots,x_n$ 的加权交叉熵损失 |
| $w_t$ | 相对偏移 $t$ 处的归一化权重 |
| $\varepsilon$ | 空序列 |
起始 token 的概率作为"此处值得调用"的先验。
参数逐模块拆解表、Chinchilla/DeepSeek 式 scaling-law 拟合:本文非模型架构发布,[论文未披露]。

Paper's Table 3 (caption: "Results on subsets of LAMA. Toolformer uses the question answering tool for most examples, clearly outperforming all baselines of the same size and achieving results competitive with GPT-3 (175B).").
Toolformer 在 SQuAD/Google-RE/T-REx 上分别比最好的同尺寸 baseline 高 +11.7/+5.2/+18.6,并同时超过 OPT-66B 与 GPT-3-175B——关键在于 98.1% 的样本模型自主选择了 QA 工具。这是"小模型 + 工具 > 大模型"的最强证据行。

Paper's Table 4 (caption: "Results for various benchmarks requiring mathematical reasoning. Toolformer makes use of the calculator tool for most examples, clearly outperforming even OPT (66B) and GPT-3 (175B).").
开启 API 后 ASDiv/SVAMP/MAWPS 全部翻倍以上(如 SVAMP 6.3→29.4),远超 GPT-3。值得注意的是即便"关调用"版本也强于纯 GPT-J,作者推测微调于大量调用+结果示例本身提升了模型自身的数学能力。

Paper's Table 5 (caption: "Results for various question answering dataset. Using the Wikipedia search tool for most examples, Toolformer clearly outperforms baselines of the same size, but falls short of GPT-3 (175B).").
99.3% 用 WikiSearch,超越所有同尺寸 baseline,但仍输 GPT-3-175B。作者归因于搜索引擎太简单且无交互能力(不能改写 query、不能翻多条结果)——这是核心壁垒之外方法当前形态的主要短板,直接引向 §7 局限。

Paper's Table 7 (caption: "Results for the temporal datasets. Toolformer outperforms all baselines, but does not make use of the calendar tool for TempLAMA.").
TempLAMA 上 Toolformer 提升了,但日历工具仅用 0.2%——增益其实来自 WikiSearch/QA。理想做法是"先查日历拿当前日期,再带日期查 QA"这种链式调用,但被"每样本至多一次调用"的限制禁止,也因训练数据里调用独立采样而难以学到。Dateset 上日历工具用到 54.8%,增益可完全归因于它。

Paper's Table 9 (caption: "Toolformer results on the T-REx subset of LAMA and on WebQS for different values of k used during decoding ... percentage of examples for which the model decides to call an API (%).").
增大 $k$ 使调用率从 40.3%/8.5%($k{=}1$)升至 98.1%/100%($k{=}10$)。有趣的是 $k=1$ 时模型有一定校准性——它恰好在自己会做不好的样本上选择调用(NC 子集 44.3/19.9 高于全体不调用时的 34.9/18.9),但这一性质在高 $k$ 时消失。(源表 WebQS % 列在 L1 中标注了排版歧义,此处采用正文数字。)
| 步骤 | 论断 | 论文内依据 |
|---|---|---|
| 1 | LM 的算术/事实/时间/多语弱点无法仅靠扩规模解决,需外部工具,但现有工具方案要么依赖人工标注要么任务特定 | §1 局限枚举 + 两条 desiderata |
| 2 | 只要工具的输入输出可文本化,就能把调用线性化成特殊 token 内联插入任意文本,无需改词表 | §2 线性化式 + 脚注(用 [/]/->) |
| 3 | 用模型自身 概率 $p_i$ 定位候选、in-context 采样候选调用,可无标注地生成海量候选 | §2 采样式 $p_i$;Table 2 统计量 |
| 4 | 用 $L_i^- - L_i^+ \geq \tau_f$ 过滤,只保留真正降低未来 token 损失的调用——自监督"有用性"信号 | §2 过滤准则;§5 Table 10 高分↔有用的定性对应 |
| 5 | 把保留调用插回原位、标准 LM 目标微调,因文本内容与原始 $\mathcal{C}$ 相同,泛化能力不受损 | §2 微调段;§4.3 Table 8 困惑度持平 |
| 6 | 结果:模型自主决定何时/用哪个工具,零样本超越 25× 更大的 GPT-3(LAMA/数学),且工具能力在 ~775M 处涌现 | §4.2 Tables 3/4;§4.4 Fig 4 涌现阈值 |
论文未随附官方推理/训练代码库到本 L1 抓取范围;正文与附录给出了可复现的超参与流程级细节,但无 file:line 级公开实现。故标记 [实现未公开](就代码而言),并整理关键实现细节如下(均可从论文 §Appendix 定位):
最难复制的洞见是 §2 的自监督有用性过滤准则 $L_i^- - L_i^+ \geq \tau_f$,尤其是 $L_i^-$ 取 min 的设计。它把"工具是否有用"从需要人工/任务标签的判断,压缩成一个只依赖模型自身困惑度的标量信号;配合"任务无关、数据集即预训练语料"的选择,才使得微调不损失泛化能力(Table 8)。任何试图复现的人若把 baseline 取错(例如只用 $L_i(\varepsilon)$ 不取 min),就会放入大量"看似降损实则无信息"的噪声调用,破坏整个 pipeline 的信噪比。
//→ 全部用现有 token 序列 [/]/-> 表示(§2 脚注),使方法即插即用、无需扩表重训 embedding。→ 必须中断、外呼真实 API、拿到结果再续解码——延迟受最慢工具(QA 用 Atlas-xxl、检索、MT-600M)主导,连续批处理需处理这类可变长中断。[论文未披露])。
N/A — Toolformer 是作用于既有 decoder-only Transformer(GPT-J 6.7B)之上的数据构造+微调方法,非模型架构发布;论文未随附会改变网络结构的官方实现,基座维度(d_model、head 数、层数等 config.json 级参数)未在正文披露。因此本节不绘制代码驱动的架构细节图(A1–A6 均不适用),方法级数据流已在 §3 的 Mermaid 中给出。若需 GPT-J 逐块结构,应参照 GPT-J-6B 官方权重与 HF transformers 的 GPT-J 实现,但这超出本论文自身贡献范围。