近期,来自清华大学、中国人民大学、北京邮电大学、UIUC、NYU、CMU等高校的研究人员联合 OpenBMB开源社区、知乎、面壁智能公司探索了基础模型调用外部工具的课题,联合发表了一篇74页的 基础模型工具学习 综述论文,并发布了 开源工具学习平台。该团队提出了基础模型工具学习的概念,系统性地整理和阐述了其 技术框架,同时展示了未来可能面临的 机遇和挑战。这项研究对于了解基础模型工具学习的最新进展及其未来发展趋势具有重要价值。
➤ 论文链接 🔗:https://arxiv.org/abs/2304.08354
➤ BMTools 工具包 🔗:https://github.com/OpenBMB/BMTools
➤ 工具学习论文列表 🔗:https://github.com/thunlp/ToolLearningPapers
研究背景
—
近年来,基础模型(Foundation Model)在自然语言处理、计算机视觉、生物学等诸多领域展现出惊人的应用价值,持续刷新各类下游任务的效果上限。基础模型通过预训练过程中积累的丰富世界知识,在复杂交互环境中展现出了非凡的推理与决策能力,并能与现实世界进行紧密交互。尤其是最近诞生的 ChatGPT 和 GPT-4,更是彰显了基础模型在理解人类意图、自动化复杂过程、解读多模态信息等方面的巨大潜力。
尽管基础模型在很多方面取得了显著的成果,但在特定领域的任务上,仍然存在一定的局限性。这些任务往往需要专业化的工具或领域知识才能有效解决。以金融领域为例,基础模型虽然可以在自然语言处理和风险评估上发挥作用,但在证券交易和金融市场预测等领域,却需要更为专业的工具和领域知识来应对特定问题。整合专用工具与基础模型可以充分发挥各自独特优势。专用工具可 解决模型时效性不足的问题、增强专业知识、提高可解释性和鲁棒性。而基础模型在理解复杂数据和场景方面 具备类人的推理规划能力,进而与现实世界交互。
团队认为,基础模型需要具备调用各种专业化工具的能力,这样才能为现实世界任务提供更为全面的支持。将二者结合就能充分发挥各自的优势,将复杂工具的使用平民化,降低新用户门槛,充分释放创造力。那么,如何将基础模型与专业化工具相结合,共同打造更强大、高效的解决方案呢?
工具学习范式旨在结合专有工具与基础模型的优势
团队总结并提出了新的范式:基础模型工具学习。这一范式的核心在于将专业工具与基础模型的优势相融合,以在问题解决方面达到更高的准确性、效率和自主性。近期的研究成果揭示,基础模型在运用工具方面表现出了显著的灵活性和精细操作能力,这为该范式的发展奠定了坚实基础。
工具增强学习通过工具的执行结果来增强基础模型、辅助内容生成;工具导向学习专注于利用模型来管理工具并代替人类进行序列决策
工具学习是指让模型能够理解和使用各种工具来完成任务的学习过程。从学习目标的角度来看,现有工具学习主要可以分为两类:
工具增强学习(Tool-augmented Learning),利用各种工具的执行结果,增强基础模型性能。在这一范式中,工具执行结果被视为辅助生成高质量输出的外部资源。
工具导向学习(Tool-oriented Learning),将学习过程重点从增强模型性能转向工具执行本身。这一类研究关注开发能够代替人类控制工具并进行序列决策的模型。
上述两类方法的核心差异在于学习过程的侧重点,即通过工具执行来增强基础模型(工具为AI服务)或者通过基础模型优化工具的使用(AI为工具服务)。在这篇综述中,团队提出了统一这两类方法的工具学习框架,对两者进行了统一。
工具学习框架
—
工具学习整体框架,呈现了人类用户和四个核心成分:工具集、控制器、感知器、环境。
一个通用的工具学习框架包含 人类用户 和 四个关键组成部分:工具集、控制器、感知器和环境:
工具集(Tool Set):可供模型使用的各种工具。从交互接口的视角可以分为三类:基于物理交互的工具、基于GUI交互的工具、基于程序交互的工具。
控制器(Controller):通常使用基础模型建模,负责接收用户的指令,并根据这些指令制定可执行的计划并调用工具执行
感知器(Perceiver):负责接收来自环境和用户的反馈信息,并将其汇总给控制器。
环境(Environment):模型所处的场景,包括物理环境和虚拟环境等。
从用户界面的角度对工具进行分类:(a)基于物理交互的工具,(b)基于图形用户界面交互的工具,和(c)基于程序交互的工具。
在该框架中,模型负责理解用户指令,将复杂任务分解为若干子任务,并通过推理动态调整计划,最终调用合适的工具完成每个子任务。为了有效地利用工具,必须考虑其物理特性、与控制器的关系以及周围环境。因此,工具学习框架是通过强调所有这些组件之间的相互作用来设计的。
整个过程从用户指令开始,接收到指令后,由基础模型支持的控制器被激活来响应用户,并为该指令制定计划并执行工具与环境进行交互;工具执行可能导致环境发生变化,感知器捕捉这些变化并将信息反馈给控制器,进行新一轮的工具执行;人类也可以提供反馈来纠正或协助控制器的决策。经过多轮工具执行后,实现用户需求;最后,控制器可以将工具返回的信息总结给用户。
💡 形式化定义
给定工具集合 ,在时间步 t,环境 提供工具执行的反馈 。感知器 接收用户反馈 和环境反馈 ,并生成总结反馈 。控制器 生成计划 ,选择并执行来自 的合适工具。这个过程可以建模为以下概率分布:
其中 表示控制器 的参数, 表示用户查询或指令, 代表工具的具体执行计划, 表示历史的反馈和计划。我们可以进一步将上式分解:
该分解揭示了制定计划 可以分为两个子任务:基于用户意图选择适当的工具和使用所选工具执行的具体操作。
例如,对于 “我想预订下周去北京的飞机” 的指令,控制器 首先推断出用户的目标是预订一次去北京的航班。
接着,模型选择航空公司预订系统作为工具。
最后,它将时间和目的地作为初步计划输入以完成第二个子任务。良好的工具学习框架必须具备纠错的能力:例如如果下周没有飞往北京的航班,控制器 可以在接受到该反馈后更新计划。
关键研究问题
—
研究团队指出了工具学习领域的一系列重点研究问题:
💡 意图理解
控制器需要理解用户所给出的自然语言指令,识别其对应的任务目标。意图理解在现实工具学习应用场景中仍存在着诸多挑战:(1)指令模糊问题:用户给出的指令很有可能是不精确甚至多义的。(2)指令多样问题:用户给出的指令天然具有个性化和多样性。
💡 工具理解
控制器使用工具的前提是理解工具的功能与使用方式。人类在学习使用工具时通常会有两种途径,一是从工具的说明书或是教程中学习;二是通过观察其它人使用工具的过程来学习。类似的,现有工具学习工作通常采用两种提示学习技术实现工具理解:零样本提示学习和少样本提示学习。但是提示学习的有效性很大程度上取决于模型能力,而且会受到输入上下文长度的限制。
零样本提示学习描述工具的功能、输入输出格式等,少样本提示学习则通过具体的使用案例来提示模型如何使用对应工具。
💡 规划与推理
对于复杂任务,控制器需要具备一定的规划和推理能力,以便将任务拆分成若干子任务。这一过程中的推理能力可以分为两类:内省推理(Introspective Reasoning)是指控制器在不涉及与环境交互的情况下,仅根据指令对任务进行推理和规划,无需中间执行结果。这种推理方式侧重于分析任务的本质,通过对指令的理解来生成相应的规划;与之相反,外省推理(Extrospective Reasoning),涉及控制器与环境的交互。在这种情况下,控制器会根据先前步骤的执行结果逐步推理并生成规划。这种方式强调了模型的实时调整和适应能力,使得控制器能够在完成任务过程中不断优化规划策略。
工具学习内省推理和外省推理
在完成对复杂任务进行分解之外,控制器还需要利用不同工具完成各个子任务,在该过程中存在一些挑战需要进一步研究。
工具间的协同配合:为了完成复杂任务,模型不仅需要理解各个工具的功能,还应该理解它们之间的相互作用和依赖关系。这有助于控制器更有效地使用工具,确保任务的顺利完成。
并行执行:对于彼此不存在依赖关系的子任务,模型需要具有并行执行的能力以提高执行效率。这将有助于在有限的时间内完成更多任务,提高整体性能。
多智能体协作:复杂任务通常需要多个智能体彼此协作,在这种情况下,每个智能体都具有其独特的能力和专业知识,彼此协作可以实现更高效和有效的问题解决。因此,探索多智能体协作机制对于提升控制器在复杂任务中的表现具有重要意义。
💡 可泛化的工具学习训练方法
为了让模型学会使用工具,训练模型也是一种可行的途径。婴儿学习新工具主要有两种方式,一种是观察模仿成人如何使用工具的过程,另一种是依靠自身的探索,摸索出工具的使用方式。受此启发,工具学习的模型训练范式也可以分成两种:
从演示中学习:模型模仿人类使用工具,可采用监督学习、半监督学习或自监督学习来实现。
从反馈中学习:环境或人类的反馈可以帮助模型理解其行为的结果并调整其行为,据此改进其工具使用策略,从而增强模型的使用工具能力。强化学习便是实现从反馈中学习的一个代表性解决方案。
工具学习模型训练范式示意图
通用工具学习:工具使用经验的通用性是人类智能的一个重要特征。人类可以从一个工具的使用中总结出通用性的经验,从而帮助其它工具的使用。为了实现通用工具学习,首先要对工具的操作接口进行形式化统一。这样,模型便可以以标准化的方式操作各种工具,并更容易地抽象出工具的基本特征。这可以通过以下三种方式实现。
语义接口:模型通过使用特定的文本片段(如动作名称)作为动作触发器,从而来操作工具。
GUI接口:模型模仿人类使用图形界面(GUI)来与工具交互。
编程接口:模型通过编写代码来使用工具。这种方式具有广阔的应用前景,首先是因为编写代码可以实现复杂的工具使用逻辑,其次通过执行程序可以更加方便地调用外部工具。
在统一工具操作接口的前提下,模型还需要针对具体的任务或领域进一步地适应、细化和专门化其学习的知识。为了达成此目标,有两种解决方法:
元工具学习:元工具学习体现了模型的元认知能力,使其能够反思自身的学习过程并在必要时调整新的工具使用策略。通过元认知,模型可以识别工具使用策略中的基本原则或共同模式,并将其迁移到新的任务或领域中去。
课程工具学习:课程工具学习则采用逐步学习的方法,让模型从简单的工具开始学习,然后逐渐学习更复杂的工具。这种方法有助于模型理解复杂工具,将其视为简单工具的进阶版。通过课程工具学习,模型能够更有效地识别抽象工具间的共性和差异,从而实现知识和技能的迁移。
开源平台 BMTools
—
ChatGPT Plugins的出现补充了ChatGPT最后的短板,使其可以支持连网、解决数学计算,被称为OpenAI的“App Store”时刻。然而,由于目前其支持的工具数量有限,并且仅支持部分OpenAI Plus用户,大多数开发者仍然无法使用。
为解决这个痛点,研究团队推出了工具学习包 BMTools,一个基于语言模型的开源可扩展工具学习平台。团队将各种各样的工具(例如文生图模型、搜索引擎、股票查询等)调用流程都统一到一个框架上,使整个工具调用流程标准化、自动化。开发者可以通过 BMTools,使用给定的模型(ChatGPT、GPT4)调用多种多样的工具接口,实现特定功能。
BMTools 不仅支持 OpenAI的Plugins,还允许开发者自己扩充工具库。开发者只用编写简单的 python 程序就能轻松构建新的插件功能,并可集成其他来源的外部工具(如ChatGPT Plugins)。该工具包目前已支持论文中提到的 17种工具,并持续维护更新中,未来将支持更多基底模型和面向国内的工具的使用,助力工具学习的前沿学术探索和工程落地。此外,该工具包也已集成最近爆火的 BabyAGI,并且在 Huggingface Spaces 上可直接试用。
BMTools Huggingface Spaces演示
基于 BMTools,团队探索了基础模型使用工具的有效性与局限性,并选取了 text-davinci-003 和 ChatGPT 两个代表性基础模型,评估它们在 17种工具使用场景下的性能表现,实验证明:
1. 在大多数情况下,模型可以通过简单的提示学习如何有效地使用工具,并提高它们的任务性能。
2. 对于模型能够利用其内部知识解决的任务,只有在对工具进行正确调用时,模型才会获得性能提升,否则反而会产生负面影响。
3. ChatGPT相比于text-davinci-003并没有得到更好的结果。对于知识图谱、在线购物、3D建模等较为复杂的工具,ChatGPT和text-davinci-003均不够令人满意,需要进一步提升基础模型能力来提升工具的使用能力。
ChatGPT 和text-davinci-003 工具学习实验结果
前瞻开放讨论
—
最后,论文从不同角度探讨了工具学习带来的机遇与挑战:
工具学习的安全性:在期待基础模型与工具学习结合所带来的生活改变之前,审视其中潜在的风险尤为重要。团队强调了需要防止恶意用户误导模型调用工具,以及提升模型使用工具的可信度等问题。
AI 创造工具:基础模型可能具有自发创造工具的潜力。一直以来,创造和使用工具被认为是人类智能的独特特征,而基础模型的出现可能颠覆这一观念。越来越多的证据表明,创造工具的能力不再是人类专有的领域。
工具学习个性化:模型通常在通用文本语料库上训练,并使用广泛定义的人类偏好进行校准。然而,这种方法无法满足具有不同需求的用户的个性化需求。探索如何实现个性化的工具学习将成为未来研究的重要课题。
知识冲突:引入工具后,模型需要解决来自不同来源的知识冲突问题,包括模型自身、外部知识库等。解决不同知识库间的知识冲突,以实现知识的有效整合,是迎接工具学习挑战的关键一步。
开放性问题:最后,团队提出了一系列开放性问题,包括:工具能力是否应当内化进模型中?如何准确评判模型的工具使用能力?如何规避工具学习场景下的安全性、隐私性问题?如何在工具学习框架下促进更好的人机协同?
总结
—
研究团队深入探讨了基础模型的工具学习范式,提出了一个通用的工具学习框架,并重点探讨了其中的重点研究问题。为了展示基础模型在工具使用方面的灵活性与精细性,团队开发了开源的工具学习平台 BMTools,并对 17个代表性工具进行了实验,通过详细的分析、实验探索,提出了一系列具有前瞻性的问题。我们期待这篇文章能激发更多融合工具与基础模型的研究,助力开创智能化人机协同工作的新篇章。
➤ 传送门 BMTools
🔗 https://github.com/OpenBMB/BMTools
➤ 传送门 OpenBMB 主页
🔗 https://www.openbmb.org/home
➤ 传送门 OpenBMB GitHub
🔗 https://github.com/OpenBMB
➤ 加社群/ 提建议/ 有疑问
请找 OpenBMB 万能小助手:
长期开放招聘|含实习
开发岗 | 研发岗 | 产品岗
官方网站
https://www.openbmb.org
技术文章
Delta Tuning 登陆 Nature子刊 | 大模型工具学习引擎 BMTools
CPM-Ant 训练完成 | BMInf 适配GLM-130B
高效训练工具 BMTrain | BMTrain 技术原理
CPM-Live 邀请函 | CPM-Live 训练启动
OpenBMB 社区介绍 | 大模型课程
大模型榜单 BMList
交流QQ群
735930538
欢迎联系转载
👏期待您的关注与加入👏