深度学习自然语言处理
用外部工具增强大型语言模型 (LLM) 已经成为解决复杂问题的一种方法。然而,用样例数据对 LLM 进行微调的传统方法,可能既昂贵又局限于一组预定义的工具。最近的上下文学习范式缓解了这一问题,但有限的上下文长度局限于少样本样例,导致不能完全挖掘工具的潜力。此外,当有许多工具可供选择时,上下文学习可能完全不起作用。因此本文提出了一种替代方法 ToolkenGPT,它结合了双方的优势。
论文:ToolkenGPT: Augmenting Frozen Language Models with Massive Tools via Tool Embeddings 地址:https://arxiv.org/abs/2305.11054
LLM 已经成为各种现实世界应用程序的强大工具。随着这些模型的不断发展,人们对其与现实世界交互的潜力越来越感兴趣,并通过与其他工具集成来增强其功能,如计算器、数据库等。这些模型掌握和控制各种工具的能力不仅是其智能的标志,还标志着一条有希望的克服其部分基本弱点的道路。包括更新最新的世界知识,减少其幻觉,以及执行符号操作等。
然而,新工具的迅速出现,如高级软件库、新颖的 API 或特定领域的实用程序,为 LLM 的工具学习任务带来了额外的丰富和复杂性。这种不断的演变强调了赋予 LLM 快速适应和掌握大量新工具的能力的重要性。
表 1 展示了与 LLM 的工具集成的两种主要研究方法。第一种方法涉及微调以学习特定工具。虽然这种方法可以产生很好的结果,但它的计算成本很高,并且缺乏对新工具的适应性。第二种方法依赖于上下文学习,LLM 通过提示中提供的上下文样例来学习如何使用工具。这种方法允许 LLM 处理新引入的工具。然而,上下文学习有其独特的局限性,使它不可能在上下文中使用大量的工具。此外,仅通过少量样本掌握新工具可能具有挑战性。

本文提出 ToolkenGPT,一种使 LLM 能够掌握大量的工具,而不需要任何微调,同时允许 LLM 快速适应新工具。ToolkenGPT 的关键思想是将每个工具表示为一个新 token('toolken'),以增加词汇表。具体来说,每个工具都与插入到 LLM 头部的嵌入相关联,就像常规的单词 tokens 嵌入一样。在生成过程中,一旦预测到 toolken, LLM 临时切换到特殊模式 (通过提示) 以产生工具要执行的输入参数,并将输出注入到生成中 (参见图 1)。这种方法为 LLM 提供了一种有效的方法,只需学习轻量级 toolken 嵌入即可掌握工具。

因此,ToolkenGPT 结合了微调和上下文学习范式的优势,同时避免了它们的局限性:与只能容纳少量工具和少量样例的上下文学习相比,ToolkenGPT 允许大量工具 (通过简单地在词汇表中插入各自的工具),并可以使用广泛的样例数据来学习 toolken 嵌入;与微调相比,不仅需要最小的训练成本,而且还提供了一种方便的方法,通过扩展 toolken 词汇表来动态插入任意新工具。
首先介绍一下工具使用语言建模的背景和符号表示。通常,LLMs 对单词标记序列为 $x_{1:T}$,其中每个单词 token 来自 LLM 的词汇,即 $x_{1:t}$ 表示第 t 步之前的部分词 token 序列。在实践中,通常设置序列的前缀 (称为提示),以引导 LLM 生成所需的内容。进一步深入,下一个 token 的分布被预测为 $P(x_t|x_{1:t-1})$,其中 $h_{t-1}$ 是当前上下文的最后一个隐藏状态,$W$ 是单词 token 的嵌入矩阵 (也称为语言模型头)。
给定工具集 $ au$,我们的目标是使 LLM 能够调用这些工具的子集来解决复杂的问题。所提出的灵活公式允许工具通过返回一些可以帮助 LLM 进行文本生成 (例如计算) 或影响现实世界环境 (例如机器人动作) 的结果来发挥作用。要在生成过程中调用工具,LLM 首先需要选择工具,然后输入参数。在图 1 所示的运行示例中,在答案生成过程 ('Reasoning model') 中,选择数学运算符 square 作为工具,并在 '工具模式' 中生成一个操作数 16 作为参数。一旦外部工具收到调用,它就会执行工具并返回结果 256,返回 Reasoning model。
ToolkenGPT 的核心思想是明确地将工具制定为 token。每个工具集被参数化为一个工具集嵌入向量,我们将一组工具集嵌入表示为一个矩阵,即 $E_ au$。假设我们已经训练了 toolken 嵌入,如图 1 所示,LLM 默认处于推理模式,以生成下一个 token。该框架允许 LLM 统一考虑单词 token 和工具 token。具体来说,工具嵌入矩阵与 $W$ 连接。因此,LLM 预测下一个 token 的概率如下:











