工具使用的训练范式-Toolformer#目标:让大语言模型(LLM)学会自主判断何时、如何调用工具,增强其处理复杂任务的能力。

方法:

用 [ tool_name:input → output ] 格式标记训练样本。利用少样本提示生成调用样本,再基于输出质量筛选构建训练集。意义:无需手动微调代码,只需标注即可训练具备工具使用能力的模型。

关键设计:生成流程详解

步骤描述输入提示如:“5乘3是多少?”生成 [ 符号表示即将调用工具生成工具名与输入如 calculator: 5*3生成 → 符号表示调用结束插入输出工具返回的输出如 15继续生成文本模型可继续后续自然语言生成​ 工具使用是增强LLM能力并弥补其不足的强大技术。因此,过去几年中关于工具使用和学习的研究迅速激增。

​ 《大语言模型的工具学习:综述》论文的注释和裁剪图片。随着对工具使用的日益关注,(智能体性)LLM预计将变得更加强大。

​ 这些研究不仅涉及提示LLM使用工具,还包括专门训练它们以使用工具。

​ 首批这样做的技术之一被称为Toolformer,这是一个训练来决定调用哪些API以及如何调用的模型。

​ 它使用 [ 和 ] 标记来表示调用工具的开始和结束。例如,当给出提示“5乘3是多少?”时,它会开始生成词,直到遇到 [ 标记。

​ 之后,它会生成词直到遇到 → 标记,表示LLM停止生成词。

​ 然后,工具将被调用,输出将被添加到迄今为止生成的词中。

​ 符号表示LLM现在可以继续生成,如果有必要的话。

​ Toolformer通过精心生成一个包含大量工具使用的数据集来创建这种行为,模型可以在此数据集上进行训练。对于每种工具,手动创建少样本提示,并用于采样使用这些工具的输出。

​ 根据工具使用的正确性、输出和损失减少来过滤输出。所得数据集用于训练LLM遵循这种工具使用格式。

​ 自Toolformer发布以来,出现了许多激动人心的新技术,例如可以使用数千种工具的LLM(ToolLLM)或可以轻松检索最相关工具的LLM(Gorilla)。