Tool Learning with Foundation Models 论文笔记
文章目录
摘要
背景:
工作:
- 介绍背景:我们首先介绍工具学习的背景,包括其认知起源、基础模型的范式转变以及工具与模型的互补角色。
- 指定框架:回顾现有的工具学习研究,并制定了一个通用的工具学习框架:
- 从理解用户指令开始,模型应学习将复杂任务分解为几个子任务,
- 通过推理动态调整其计划,
- 并通过选择适当的工具有效地征服每个子任务。
- 讨论:我们还讨论了如何训练模型以提高工具使用能力,并促进工具学习中的泛化。
- 实验:对 18 种具有代表性的工具进行了实验,并展示了当前基础模型在熟练使用工具方面的潜力
- 讨论开发问题:讨论了一些需要进一步研究的工具学习开放问题,如确保安全和可信的工具使用、利用基础模型实现工具创建以及解决个性化挑战
引言
工具学习的发展
- 工具对人类有极大的帮助
- 早期简单模型能力不足,使用工具学习比较困难
- 近期更具能力的基础模型的出现,标志着能力大幅提升,使得工具学习变得可行
- 基础模型+工具的范式出现,但是主要集中在一些特殊任务或领域上,对工具学习的理解仍然不够全面,无法估计其特征和未来发展。
- 所以:审查和总结基于基础模型的工具学习的当前进展对于探索其潜力和挑战,并为未来的技术进步铺平道路至关重要。
本文工作(大纲&目录)
- §2 介绍背景
- §2.1 人类历史上工具使用的认知起源及其对人工智能系统中工具使用的潜在影响
- §2.2 随后从用户界面的角度对工具进行了分类
- §2.3 回顾了基础模型带来的人工智能范式转变,强调了工具学习的出现及其重要性
- §2.4 讨论了工具和基础模型的互补作用,并认为将两者整合可以带来多种优势,
- §3 现有工具学习探索的综合文献综述
- §4 实验:我们基于我们的框架对 18 种代表性工具进行了实验(第 4 节),
- §5 讨论开放问题:讨论了我们的通用框架应用于现实世界场景所需关注的其他重要研究主题
背景
- 在本节中,我们首先讨论人类工具使用的认知起源(§ 2.1),
- 接着通过用户界面的视角进行工具分类(§ 2.2)。
- 然后,我们回顾基础模型带来的近期人工智能范式转变(§ 2.3)及其在工具学习中的重要性。
- 之后,我们考察专业工具和基础模型在问题解决中的各自角色,并讨论它们整合的优势和挑战(§ 2.4)。
2.1 工具使用的认知起源
- 工具在数千年的人类进化历史中扮演了至关重要的角色。
- 人类与动物使用工具不同,人类能够制造出比其他动物更复杂的工具,这种能力可能归因于我们对因果关系的深刻理解,这使我们能进行技术推理
- 人类使用工具的神经基础
- 顶叶系统:在工具使用研究中,顶叶系统被认为是处理工具操作和观察的核心区域:它协助我们理解物体的用途和与周围环境的关系。
例如,当观察他人使用工具时,顶叶系统会被激活,帮助我们推测工具的功能以及如何使用。 - 前上颞回:前上颞回会被激活,帮助我们理解工具的功能和使用方法(猕猴并没有表现出这一点)
- 使用工具:认知科学的整体趋势是将认知理解为一种强调与外部世界互动的活动过程(Engel et al., 2013),而观察、沟通和动手实践的反馈对于掌握工具使用非常重要。
- 顶叶系统:在工具使用研究中,顶叶系统被认为是处理工具操作和观察的核心区域:它协助我们理解物体的用途和与周围环境的关系。
- 工具使用的三种智力水平
- Assistive tool : 使用通常是被动和无意识的 (例如,在雨棚走廊中行走))
- Arbitrary tool : 任意工具使用需要主动互动(例如,驾驶、使用智能手机)
- Free tool : 自由工具使用进一步需要理解和选择适合场景的工具(例如,烹饪新的菜肴)
- 在这个框架中,这三种工具使用模式呈现出递进关系,作者假设实现自由工具使用的关键认知过程是技术推理,这使得某人能够通过观察他人使用、选择或制作工具,而不是通过大量实践来学习新的动作。
- 从物理工具到概念工具的过渡
- 认知工具:它指的是一种辅助工具,促进更高阶的思维(例如,多步批判性分析、创造性解决问题方案的产生)。
- 认知工具可以根据其提供的功能进行分类(Lajoie & Derry, 2013)。这些功能包括
- (1) 支持认知过程(例如,记录中间推理结果),
- (2) 减轻低级认知负荷,以释放资源用于高级思维,
- (3) 使学习者能够参与超出他们能力范围的活动,
- (4) 允许学习者生成和测试假设(例如,为医学学生模拟诊断)。
- 弥合人类使用工具与机器使用工具之间的差距
- 首先,操控工具的能力深深植根于我们的认知和感知系统中,并在数百万年的进化中形成。相比之下,基础模型主要依赖于预训练数据的统计模式,基础模型的工具使用能力与人类相对而言仍存在显著差距。人类能够感知工具的属性,理解其功能,并识别适合每个任务的工具。(==§3.2.1§==讲解 LLM 该如何学习该过程)
- 其次,人类擅长将复杂任务分解为更小的可管理子任务,并灵活地操控工具以完成每个子任务。然而,基础模型缺乏充分理解和利用工具所需的物理具身和感官体验。因此,这些模型在需要更高阶推理和适应性任务时常常难以应对,且无法有效整合多个知识和工具来源。(==§3.2.2§==讲如何更好地利用大模型的推理能力制定可执行计划)
- 此外,当前将基础模型适应于学习特定工具的算法通常需要大量的监督数据(Nakano 等,2021;Reed 等,2022),这限制了其对更广泛工具或新情况的普适性和迁移能力。(§ 3.3.1 和 § 3.3.2总结了工具学习的训练策略 § 3.3.3 讨论如何促进工具学习的普适性和迁移性)
2.2 工具分类:用户界面视角
本文的重点特别是那些可以通过指令与基础模型结合操作的工具。我们介绍了一种根据工具的表达和交互方式进行分类的系统。
- 物理工具:这类工具涉及与物理世界的直接交互,如机器人、传感器和可穿戴设备等,能够对环境产生实质影响。
- GUI 工具:一些工具允许用户通过交互界面进行操作,即工具的视觉表示,以及预定义的操作。这些工具被定义为基于 GUI 的工具,它们对物理世界没有直接影响。如像浏览器、Microsoft Office、Adobe PhotoShop 等经过良好开发的软件
- 基于编程的工具:用户可以访问的最内层工具是源代码,为这些基于程序的工具的输入和输出提供了高度的灵活性。基于程序的工具是主要通过编程接口而非可视化接口设计的软件工具。它们可以有多种形式,包括声明性语言、编程库、软件开发工具包(SDK)甚至基于神经网络的工具。
它们并不是严格互斥的,而是相互交织的倾向。人类有能力通过灵活执行不同类型的工具来处理复杂任务。本文认为,无论工具类型如何,基本上都可以通过建立中介接口来利用基础模型来执行它们。我们将在§3.3.3 中介绍统一不同工具接口的方法。
2.3 基础模型的范式转变
- PLM 的作用:
- PLM 出现,利用 PLM 作为基础设施,自然语言作为媒介统一执行各种任务,所有自然语言理解和生成过程均通过对话交互完成。
- PLM 的强大泛化能力使我们能够使用自然语言作为媒介,通过操控工具来完成这些任务。
- 工具学习可以被 PLM 支持的原因:
- 本质上,工具学习的关键在于将复杂任务分解为子动作,以自然语言的形式对动作进行分词,并将其转换为特定工具能够理解的可执行指令。语言模型充当“翻译者”,使复杂任务对没有专业技术知识的个体更加可及。
- 然而,仍然存在许多超出纯自然语言范围的任务。
- 例如:生成演示文稿、通过 CAD 应用程序构建 3 D 模型,以及通过分析团队成员日历安排会议,这些都是传统人工智能尚未定义的复杂任务。
- 工具学习未来展望
- 因此,虽然自然语言界面在语言领域内实现了统一(Hao et al., 2022),但非语言任务带来的挑战需要一种更先进的方法来利用自然语言和工具学习。通过利用自然语言的力量,我们可以创建能够理解和适应我们周围复杂和动态世界的系统,从而开启创新和发现的新途径。
2.4 工具与基础模型的互补角色
专业工具与基础模型的整合代表了一种有前景的方法,以利用两者的独特优势。通过将基础模型的理解和推理能力融入专业工具中,我们可以创建能够执行比专业工具或基础模型单独更复杂任务的智能工具。具体而言,两者的结合带来了以下诸多好处。
使用工具的好处
- 减轻记忆负担:
- 尽管基础模型在记忆方面表现出色(Carlini et al., 2021, 2022, 2023),但它们并不能记住每一条训练数据。
- 单靠记忆并不能支持实时更新知识
- 基础模型还被批评为会幻想知识
- 提升专业性
- 更好的可解释性。
- 提升鲁棒性:LLM 的输入的轻微修改可以改变模型预测。这是因为这些模型在很大程度上依赖于训练数据中的统计模式。相反,工具是专门为其预期用途而设计的,这可能与输入扰动无关。
LLM__131">使用 LLM 的好处
- 改善决策和推理能力
- 更好的用户体验
- 得益于基础模型强大的意图理解能力,工具学习可能会彻底改变我们与机器的互动方式,并减轻用户的认知负担,使他们能够参与更高阶的思维和决策过程。这反过来又促进了一种无缝且更自然的基于语言的交互范式,彻底改变了传统的图形用户界面(GUI)。用户只需提供高层次的指导和方向,模型就能无缝理解用户的意图,从而提供更个性化和准确的响应。
- 降低了新用户的入门障碍,还为创新和创造力开启了无尽的可能性。
工具学习
一般工具学习的框架
Tool Set
T = { T 1 , T 2 , … } T=\{T_1,T_2,\dots \} T={T1,T2,…}
- 工具集 T 包含一系列具有不同功能的工具。
- 在接下来的章节中,我们主要以应用程序编程接口(API)作为例子来说明如何与工具互动。
在这里,我们将 API 定义为任何可以将基础模型的输出作为输入的函数。例如,对于一个天气 API,API 的输入可能是位置和时间,而输出可能包含温度或风速。
Environment
E \mathcal{E} E
环境 E \mathcal{E} E 是工具运行的世界
- 它向感知者提供工具的执行结果。
- 它提供了工具执行所需的基础设施,这可以是虚拟的也可以是真实的。
- 前者指的是一个模拟环境,允许模型与工具的数字表示进行交互,而真实环境则涉及与物理工具的实际互动。
- 虚拟环境的优势在于易于访问和复制,使得模型的培训更具成本效益。然而,虚拟环境可能无法完全复制真实世界环境的复杂性,导致过拟合和较差的泛化能力(Hansen 等,2021)。
- 真实环境提供了更真实的背景,但可能更难以接触,并且涉及更高的成本。
Controller
C \mathcal{C} C
控制器 C \mathcal{C} C 作为工具学习框架的“大脑”,通常使用基础模型进行建模。
- 控制器 C 的目的是提供一个可行且精确的计划,以使用工具满足用户的请求
- 制定计划:为此,C 应该理解用户意图,以及意图与可用工具之间的关系,然后制定一个计划,以选择适当的工具来处理任务.
- 分解子任务:在查询复杂且针对高层次任务的情况下,C 可能需要将任务分解为多个子任务,这需要基础模型具备强大的规划和推理能力
Perceiver
P \mathcal{P} P
感知者 P 负责处理用户和环境的反馈,并生成一个摘要供控制器使用。
- 简单的反馈处理形式包括将用户和环境反馈进行连接,或使用预定义模板格式化反馈。
- 然后,汇总的反馈被传递给控制器,以协助其决策。通过观察这些反馈,控制器可以确定生成的计划是否有效,以及在执行过程中是否存在需要解决的异常情况。
- 在更复杂的情境下,感知者应能够支持多种模态,如文本、视觉和音频,以捕捉用户和环境反馈的多样性。
连接组件
工作过程
假设有一个工具集 T \mathcal{T} T, 在时间步 t \mathcal{t} t 的时候,执行以下步骤
- 环境 E \mathcal{E} E 提供了工具执行的反馈 e t e_t et
- 感知者接受环境反馈 e t e_t et 和用户反馈 f t f_t ft 并生成一个反馈总结 x t x_t xt
- 通常感知者可以通过预定义的规则(将 e t e_t et 与 f t f_t ft 连接起来),或者使用神经网络建模
- 控制器 C \mathcal{C} C 生成计划 a t a_t at 从工具集 T \mathcal{T} T 中选择一个工具来执行
公式:
p C ( a t ) = p θ C ( a t ∣ x t , H t , q ) p_{C}(a_{t})=p_{\theta_{C}}(a_{t}\mid x_{t},{\mathcal{H}}_{t},q) pC(at)=pθC(at∣xt,Ht,q)
- θ C \theta_C θC 表示 C 的参数,q 表示用户的查询或指令, H t = { ( x s , a x ) } s = 0 t − 1 \mathcal{H}_t = \{ (x_s,a_x)\}^{t-1}_{s=0} Ht={(xs,ax)}s=0t−1 表示历史反馈和计划
- C \mathcal{C} C 还可以将其推理过程与行动预测协同作用
- 子任务 1:选择工具 T i T_i Ti :从工具集合 T 中选择一个适合当前任务的工具。
- 子任务 2:制定具体计划 a t a_t at :确定如何使用选择的工具执行动作。
p θ C ( a t ∣ x t , H t , q ) = ∑ T i ∈ T p θ C ( a t ∣ T i , x t , H t , q ) × p θ C ( T i ∣ x t , H t , q ) , p_{\theta_{C}}(a_{t}\mid x_{t},{\mathcal{H}}_{t},q)=\sum_{{\mathcal{T}}_{i}\in{\mathcal{T}}}p_{\theta_{C}}(a_{t}\mid{\mathcal{T}}_{i},x_{t},{\mathcal{H}}_{t},q)\times p_{\theta_{C}}({\mathcal{T}}_{i}\mid x_{t},{\mathcal{H}}_{t},q), pθC(at∣xt,Ht,q)=Ti∈T∑pθC(at∣Ti,xt,Ht,q)×pθC(Ti∣xt,Ht,q),
- 在生成计划 at 后,它将在 E 中执行,来自 E 的反馈 et+1 将被传递给感知者。上述过程会重复多轮,直到控制器完成任务。
总体目标是找到一个动作序列{at},最终实现用户指令 q 所指定的任务。请注意,在工具执行后,控制器可能还会将执行结果整合成一个合理的回应给用户
例子
例如,给定“我想预定下周去北京的航班”这样的指令,
- 控制器 C 首先推断出用户的目标是预定航班,北京是目的地,下周是旅行时间。
- 然后,模型选择航空公司预订系统作为工具。
- 最后,它将时间和目的地输入作为初步计划。
- 在进行预订的过程中,我们可能会面临意外情况,比如下周前往北京的航班不可用。为应对这些异常情况,我们可以进一步赋予 C 推理当前上下文的能力,并生成替代计划。
一般流程:从意图到计划
工具学习的总体过程需要不同组件之间的复杂交互。在本节中,我们将进一步阐述这一过程中的关键问题。
理解用户的意图和工具
为了准确履行用户查询 q 指定的任务,控制器需要理解两个方面:
- 用户的根本意图,这涉及识别和形式化自然语言 q 为高层次任务(即意图理解);
- 工具集 T,这意味着理解其中每个工具的功能和目标(即工具理解)。
理解用户的意图
- 指令微调:在用人类指令模板化的数据集上对大型语言模型进行微调,可以使模型甚至能够对未见任务的指令进行泛化
- 挑战:
- 理解模糊指令。第一个挑战是处理用户查询中固有的模糊性和歧义。许多用户查询天生不精确,甚至可能是多义的,这要求控制器依赖于上下文线索和背景知识来推断用户的真实含义。
- 一种可能的解决方案是主动与用户互动,以澄清任何歧义,例如询问用户对先前查询的进一步说明。
- 对多样化指令的泛化。另一个挑战是使模型能够对更具多样性的用户指令进行泛化。由于意图空间在理论上是无限的,基础模型在训练期间几乎无法接触到每种现实世界的意图。
- 一种解决方案是引入更为多样化的训练数据,这些数据涵盖了广泛的真实世界场景,从而使模型能够学习不同指令的细微差别。
- 另一种解决方案是利用用户反馈,主动地使模型适应个别用户,即个性化工具学习
- 理解模糊指令。第一个挑战是处理用户查询中固有的模糊性和歧义。许多用户查询天生不精确,甚至可能是多义的,这要求控制器依赖于上下文线索和背景知识来推断用户的真实含义。
理解工具
一般方法:prompt-learning
- 零样本提示(zero-shot prompting):描述 API 的功能、输入/输出格式、可能的参数等。此方法允许模型理解每个 API 可以完成的任务。
- 少样本提示(few-shot prompting):为模型提供具体的工具使用示例,通过这些示例模仿人类行为,模型可以学习如何使用工具。
挑战:
- 提示的效果很大程度上取决于模型本身的能力,能力较弱的模型可能无法很好地理解提示。
- 提示受输入上下文长度的限制。当工具数量庞大且描述较长时,在一个提示中包含所有可能的工具信息变得不可行。
解决方法:
- 一种潜在的解决方案是增加一个中间阶段的工具选择,首先检索一小部分最适合当前任务的工具。
- 另一种解决方案是进行模型微调(Fine-tuning),优化模型以通过具体的工具使用案例来理解工具。
计划与推理
如何通过推理和规划在工具学习中提升基础模型的能力,以及在复杂任务场景中的实现方法和挑战
- 现有的 LLM 有涌现出来的推理能力
- 定义推理:在基础模型中,推理能力通常被描述为“将复杂问题分解为子问题并逐步解决这些子问题的能力。
- 一般方法:few-shot prompt learning、CoT
- 推理研究可以分为两类:
- 内省式推理(Introspective Reasoning):生成静态计划,不依赖环境交互。
- 外向式推理(Extrospective Reasoning):通过与环境交互迭代生成计划,并利用反馈调整计划。
内省推理和外向式推理
-
内省式推理:
- 在执行任务之前,生成一个静态的完整计划。
- 不需要与环境或用户进行交互。
- 优点:规划过程明确,适用于环境反馈较少的场景。
- 局限性:如果任务中出现意外或环境改变,静态计划难以应对。
-
外向式推理:
- 通过与环境交互逐步生成计划,每一步根据上一步的反馈进行调整。
- 优点:能更好地处理动态变化的环境或任务中的意外情况。
- 应用案例:
- Self-Ask 和 ReAct(Yao et al., 2022b):将任务分解为多个子问题,通过 API 或工具逐步回答。
- Auto-GPT:能够自动选择工具,分步完成复杂任务,同时优化计划。
多工具、多子任务场景中的挑战
-
任务分解复杂性:
- 多工具、多子任务场景通常涉及多个步骤,这些步骤之间可能存在依赖关系,需要模型能够正确排序和选择工具。
-
模型要求:
- 模型需要具备高水平的推理和环境适应能力。
- 工具使用的切换成本较高,因此需要优化工具选择和执行效率。
-
当前研究的限制:
- 现有研究更多关注单工具或单子任务的场景,对多工具、多步骤任务的探索较少。
解决多工具任务的未来方向
- 理解工具间依赖关系:模型需要识别任务中工具的优先级和依赖关系,以便合理安排工具调用顺序。
- 任务优化和效率提升: 优化模型在多工具任务中的执行效率,例如并行执行独立的子任务。
- 工具升级与动态适应:工具可能会更新或发生变化,模型需要具有适应能力,能够实时调整任务规划。
工具学习的训练策略
- 示范学习:通过观察标注数据掌握工具使用。
- 反馈学习:通过与环境和人类交互优化任务执行。
示范学习
数据集: D = { ( q i , a i ∗ ) } i = 0 N − 1 D = \{ (q_i, a_i^*) \}_{i=0}^{N-1} D={(qi,ai∗)}i=0N−1
- 用户查询 q i q_i qi:用户的输入或任务需求。
- 人类标注 a i ∗ a_i^* ai∗:人类对如何处理该查询的示范。
优化目标:
- 通过最大化以下公式来优化控制器参数 θ C \theta_C θC:
θ C ∗ = arg max θ C E ( q i , a i ∗ ) ∈ D ∏ t = 0 T i p θ C ( a i , t ∗ ∣ x i , t , H i , t , q i ) \theta_C^* = \arg\max_{\theta_C} \mathbb{E}_{(q_i, a_i^*) \in D} \prod_{t=0}^{T_i} p_{\theta_C}(a_{i,t}^* \mid x_{i,t}, \mathcal{H}_{i,t}, q_i) θC∗=argθCmaxE(qi,ai∗)∈Dt=0∏TipθC(ai,t∗∣xi,t,Hi,t,qi) - 解释:
- 目标:使控制器在处理用户查询 qiq_i 时,生成的人类标注 a i ∗ a_i^* ai∗的概率最大化。
- 公式中的变量:
- T i T_i Ti:处理 q i q_i qi 的总迭代次数(任务需要的步骤数)。
- a i , t ∗ a_{i, t}^* ai,t∗:第 t t t 次迭代中的人类标注(示范)。
- x i , t x_{i, t} xi,t:第 t t t 次的总结反馈(来自环境的结果和用户的输入)。
- H _ i , t \mathcal{H}\_{i, t} H_i,t:历史记录,包含此前的反馈和动作。
监督学习
传统上,行为克隆在学习用于自主车辆和机器人应用的端到端或模块化感知-控制模型方面得到了广泛探索
例子:
- WebGPT
- 作者首先构建了一个由 Bing 支持的搜索界面,然后微调 GPT-3(Brown 等,2020)以克隆人类的网页搜索行为。
- 作为一个在通用领域上预训练的语言模型,原始的 GPT-3 在本质上并不依赖于有效的浏览器命令。因此,首先收集人类与浏览器交互的示例,然后学习状态到行动的映射是至关重要的。
- 在微调后,该模型在操作搜索引擎进行信息检索方面表现出卓越的能力,甚至超过了人类专家。
- WebShop:
- 提供了一个基于 web 的互动环境,代理可以浏览和购买产品。通过行为克隆,训练后的代理在根据人类指示购买正确产品方面表现出非平凡的性能。
半监督学习
- 有标签的数据比较难获得
- 使用一个能力较弱的模型来为未标记数据标注伪标签,并将其转化为弱监督的工具使用示范。
- 例如,Baker 等人(2022)使用少量的种子标记数据训练模型,以预测在 Minecraft 视频游戏中每个时间步采取的行动的伪标签。通过学习这些伪标签,可以训练出一个更强大的模型,而无需在目标环境中推理模型或进行大规模的黄金标准人类行为标注。
自监督学习
-
自监督学习。尽管减少了对人类行为标注的严格要求,半监督学习仍然需要一个种子标记数据集来获取伪标签。
-
此外,种子数据集中的偏差在训练过程中可能会被放大,从而导致较差的泛化性能。
-
为此,研究人员最近表明,通过少量示例,基础模型可以自我学习如何以自监督的方式使用工具(Parisi et al., 2022;Schick et al., 2023)。
- 例如,Toolformer(Schick et al., 2023)利用基础模型的上下文学习能力,基于少量人工编写的示例迭代生成工具使用示例。这些自动生成的示例经过进一步过滤以减少噪声。最终的工具使用数据集包含足够的监督,从而显著提高了 GPT-J(Wang & Komatsuzaki, 2021)的工具使用性能,突显了自监督学习在增强工具使用能力方面的潜力。
反馈学习
- 手动收集和标注工具使用的示例(可能包括完整的人类行为轨迹和最终答案)既耗时又劳动强度高。
- 此外,所学的模型可能由于遵循记录下的人类行为而无法有效适应新环境。
- 除此之外,明确标注环境条件和代理行为的每一种可能场景也是不切实际的
- 相比之下,人类通过试错学习来纠正和修正他们的工具使用行为(Allen et al., 2019)。同样,来自环境和人类的反馈能够让模型理解其行为的后果,并适应其行为。
θ C ∗ = arg max θ C E q i ∈ Q E { a i , t } t = 0 T i ∼ p θ C [ R ( { a i , t } t = 0 T i ) ] , \theta_C^* = \arg\max_{\theta_C} \mathbb{E}_{q_i \in Q} \mathbb{E}_{\{a_{i,t}\}_{t=0}^{T_i} \sim p_{\theta_C}} \left[ R(\{a_{i,t}\}_{t=0}^{T_i}) \right], θC∗=argθCmaxEqi∈QE{ai,t}t=0Ti∼pθC[R({ai,t}t=0Ti)],
强化学习反馈来源:环境反馈和人类反馈,这可以被视为工具学习中的奖励信号来源。这两种反馈是互补的,可以相互结合。
环境反馈
控制器与环境互动,并接收有关其行为后果的反馈。模型随后根据这些反馈更新其策略,以改善工具使用行为。
环境反馈的形式:
- 结果反馈:指示模型的行动是否成功完成了任务
- 中间反馈:指的是由一个动作触发的环境状态变化。通过观察状态变化,基础模型可以学习每个动作是否有效和适当,从而更好地调整其行为
人类反馈
人类可以根据模型生成的计划给予模型奖励和惩罚,以调节其行为。
显式:在 1 到 5 的评分标准上对模型生成的动作质量进行评分
隐式:用户的比较(Ouyang 等,2022),响应时间,以及在接收到模型输出后采取的行动(例如,点击推荐链接)
缺点:
- 是标签密集型的,
- 并且具有较高的延迟
解决方法:RLHF
挑战:
- 任务特定性:特定任务的相应评估标准需要预先定义,为一个任务标注的偏好数据难以转移到其他设置,这限制了 RLHF 在更广泛任务中的适用性。为此,开发一个普适的奖励模型以适应各种任务至关重要;
- 偏见:RL 代理优化朝向伪人类奖励模型,因此可能受到人类偏好的上限和偏见。此外,社会偏见或个人经验可能在 RLHF 过程中被放大,因此必须仔细评估学习到的奖励模型是否存在任何偏见,并采取措施进行缓解。
工具学习泛化
泛化也是工具学习的一个重要方面,尤其考虑到存在大量迅速扩展的工具。
虽然对大量工具使用数据进行监督微调可以成为促进泛化的潜在解决方案,但收集足够的监督工具使用数据并确保其质量和多样性既耗时又在实践中不可行。
抽象能力:抽象是识别工具的基本特征的过程。抽象涉及识别工具的共性和模式,以便模型能够合成和转移其知识和技能,使其能够轻松使用新工具。
泛化的基础:API 统一
- 该接口使模型能够以一致和标准化的方式操作各种工具
- 通过统一的接口,模型可以更容易地在统一的工具协议中识别和抽象工具的基本特征,而不是费力地理解各种工具接口。
API 统一的三种方式:语义接口、图形用户界面(GUI)接口和编程接口。
语义接口
构建自然语言与具体行动的映射
例子:比如,ReAct(Yao等人,2022年)使用“Action:Search”作为触发器,表示执行“搜索相关段落”这一功能。
优点:简便,直观,自然
缺点:
- 生成的文本和具体工具动作之间的映射需要事先定义,这一过程非常繁琐,尤其是当工具或系统的功能快速扩展时。
- 模型可能无法准确生成触发特定动作的准确文本,这可能导致误触发不相关的动作。
GUI 接口
GUI 已经被广泛优化了
但是有缺点:
- 必须建立一个虚拟环境,以便将预测的标记映射到类人鼠标移动和键盘输入上。
- 这些环境将模型限制在一组有限的预定义鼠标选项和常见的键盘操作中。
发展:
- 通过利用基础模型,可以引入关于常见关键字和鼠标操作组合的先验知识,从而扩大模型能够执行的潜在操作。
编程接口
这种接口允许模型超越纯自然语言,使用程序指定其操作。这种统一要求模型熟悉函数调用的语法
当前的工作:
- 最近的代码生成语言模型(CLM),如 Incoder(Fried 等,2022)和 CodeX(Chen 等,2021),提供了这种统一的可能性。
- 编程接口得到了广泛应用。例如,Code-as-Policies(Liang 等,2022 a)发现,使用 CLM 作为机器人控制的基础,机器人可以利用代码语法执行复杂动作,推广到新指令,并以准确的参数值对函数进行精确控制。
优点:
- (1)复杂的工具学习逻辑可以使用编程语言的控制流进行建模;
- (2)外部 API 的显式调用可以通过执行程序自然实现。
挑战
接口选择应与基础模型的能力和局限性相一致
- 语言基础模型训练用于生成文本,因此可能更适合语义接口。
- 结合视觉和文本信息的多模态基础模型可能更适合图形用户界面,因为它可以理解和生成类人鼠标移动和键盘输入。
- 代码基础模型可能更适合编程接口,因为它训练用于理解代码语法和函数调用
工具的输出与模型输入格式不一致的挑战
解决办法:
- 一个常见的做法是将模型和工具的功能组合在同一模态中
- 例如,Zeng 等人(2022)通过将它们的输出转换为自然语言,将各种模态的基础模型链在一起。这种简单的方法利用提示组合新的多模态能力,而无需微调。
- 构建能够感知一般模态的多模态基础模型
- Gato(Reed 等,2022)是一个典型的通用多体现代理,经过庞大代理经验数据集的训练。Gato 可以通过不同的体现进行感知和行动,例如玩雅达利游戏、为图像添加标题、聊天等。
- PaLM-E(Driess 等,2023)将不同模态的连续输入纳入预训练语言模型。通过对多个体现任务的联合训练,PaLM-E 能够在现实世界中做出基于事实的决策。
工具学习泛化的策略
- 仅仅统一 API 的是不够的。
- 可泛化工具学习要求模型进一步适应、细化和专业化其学习的知识,以满足特定任务或领域的需求
元工具学习
元认知(Metacognition) 是指个体反思自己思维过程的能力,在面对陌生情境时能够调整自己的行为。
在工具学习中,元认知指的是模型能够反思自己的学习过程,并在需要时调整或改进工具使用策略。
- 元工具学习的核心思想是让模型能够根据之前的经验调整其工具使用策略,从而迁移到新任务或新领域。
- 例如,假设一个模型已经在Bing搜索引擎上进行过训练,当该模型迁移到Google搜索引擎时,它可以通过元认知能力,识别出在搜索引擎使用中常见的策略模式(如有效的搜索查询、相关的结果以及用户反馈),并基于这些经验,调整自己的搜索策略,以适应新的搜索引擎的算法和用户界面。
- 优点:这种能力使得模型能够在新的环境中更加智能地调整自己,从而提高其在不同工具和任务之间的迁移能力。
课程工具学习
课程学习(Curriculum Learning) 是一种从简单到复杂的学习方法。它从基础工具入手,逐步引导模型学习更复杂的工具,从而使模型能够在先前知识的基础上逐渐建立对工具的更深理解。
- 课程工具学习的核心思想是从最简单的工具或基本概念开始,逐步引入更复杂的工具或操作。这种方法确保模型先学习工具的基本特性,再逐渐深入到更复杂的应用。
- 例如,在教授一个模型使用Mathematica时,首先可以从基础的加法和减法开始,逐步引导模型学习更复杂的数学概念,比如微积分和线性代数。通过这种方法,模型能够理解复杂工具是如何建立在简单工具的基础上的,并能够把简单工具的知识迁移到更复杂的工具上
- 优点:
- 理解工具之间的关系:课程工具学习不仅帮助模型掌握个别工具的使用,还帮助模型理解复杂工具是如何通过多个基本工具组合而成的。这种理解可以帮助模型更好地识别工具之间的相似性和差异性,从而在面对新工具时,能够更有效地调整自己的策略。
- 渐进式学习:通过从简单到复杂的逐步引导,课程学习确保了模型在面对更高阶的工具时不会感到过于复杂或困惑。模型可以基于以前学过的内容逐步建立对新任务的理解。
应用与实验
我们旨在探索工具学习的应用,并调查最先进基础模型在使用工具方面的有效性和局限性。
“# APIs”表示每个工具对应的 API 数量。测试集是指我们在进行实验时使用的数据集。我们展示了三种设置的结果,即无工具、零-shot、少-shot。Text-davinci-003 的结果以白色背景显示,而 ChatGPT 的结果则以青色背景显示。
结论:
-
在大多数情况下,模型可以通过简单的提示有效地学习如何使用工具,并提高其任务表现。
-
次优会产生负影响:对于模型可以利用其内部知识解决的任务(例如计算器和搜索引擎的案例),使用零-shot 提示的工具有时会导致更差的性能,这意味着非最佳的工具使用可能会对表现产生负面影响。
-
工具有用:结合少量提示的工具仍然始终能带来优于未使用工具的表现。这强调了工具在问题解决中所能带来的具体好处,前提是它们被有效地使用。
-
比较 ChatGPT 和 text-davinci-003 的表现,我们观察到,尽管 ChatGPT 经过了 RLHF 的微调,但其结果并不优于 text-davinci-003。
- 原因猜测:首先,即 Ouyang 等人(2022)提到的 alignment tax 问题,即在 RLHF 训练过程中,特定任务技能和上下文学习能力受到损害;
- 猜测Chatgpt 规模比 text-davinci-003 小
-
工具使用效果:检查 API 调用的成功率
- 我们观察到在少量提示设置下,某些工具如地图、天气、幻灯片、表格、烹饪助手和 AI 绘画显示出令人满意的完成率。这些工具被认为比其他工具更容易。实际上,我们通过实证发现,无论是 ChatGPT 还是 text-davinci-003 都能熟练地使用这些工具,尽管没有直接针对这些工具进行微调。
- 对于一些工具如知识图谱、维基百科、在线购物和 3 D 模型构建,即使在少量提示下,模型的表现仍然远未令人满意。其原因可能是这些工具的使用不能通过少量示例轻易学习。例如,要求生成可执行代码作为 API 参数的工具,如知识图谱工具中的 search_by_query API(详见附录A.9),被发现明显更为困难。这意味着有必要训练基础模型使用工具。
讨论
知识冲突
1. 模型知识与增强知识之间的冲突
这种冲突是指模型本身的知识和通过外部工具增强的知识之间出现的不一致,主要由以下三种原因导致:
-
模型知识过时:基础模型(如语言模型)通常在训练过程中使用的是某个时间点的数据,而这些数据在模型训练后并不常更新。因此,模型所拥有的知识可能已经过时。而大多数增强工具(如搜索引擎或实时数据工具)能够提供最新的知识,这种新知识可能与模型中的旧知识发生冲突。
-
训练数据质量不高:模型的训练数据可能并没有经过严格筛选,甚至可能包含错误的知识,比如人类的误解或错误的信仰。增强工具(如维基百科等可靠的来源)提供的知识可能会将这些错误信息放大,导致模型和工具之间的知识冲突。
-
工具执行结果的误导性和偏差:增强工具的执行结果可能存在偏差或误导性,特别是在处理信息时,工具可能根据某些算法或数据的局限性提供不完全或不准确的答案。因此,用户必须谨慎判断知识来源的可信度,以避免错误信息的影响。
2. 不同工具之间的增强知识冲突
在实际应用中,控制器(例如一个智能系统)可能会使用多个工具来获取更多全面和精准的知识。然而,不同工具返回的信息可能会因为以下几个原因而产生冲突:
-
工具的可信度差异:不同工具的可信度存在显著差异,某些工具可能在特定领域具有更高的可靠性。例如,Google Scholar在科学研究领域的准确性远高于某些不那么权威的资源。因此,如果使用多个工具,可能会得到不同质量的信息,造成知识冲突。
-
工具的偏见:不同工具可能包含不同的偏见,这会影响它们提供的信息。例如,一个新闻聚合器可能为了吸引读者点击而优先展示耸人听闻的头条新闻,而忽略了更准确的报道,导致对某些事件的片面解读。
-
相同功能工具的不同表现:即使是同类工具,因其内部算法和实现方式的不同,可能会得出不同的结论。例如,Bing Translator和Google Translator对于同一文本的翻译结果可能有所不同,因为它们的翻译模型和数据处理方法不同。这种差异可能导致相互矛盾的信息出现。