前言

​ 本文简单记录介绍一下BMTools的使用情况和相关原理。

​ 还在为ChatGPT-Plugins申请不到而苦恼吗?BMTools相当于一款开源版的ChatGPT-Plugins使用库,可以自定义扩展插件,也可以使用官方的ChatGPT-Plugins。


正文

一、BMTools介绍

BMTools 是一能让语言模型使用扩展工具的开源仓库,其也是开源社区构建和共享工具的一个平台。在这个仓库中,您可以 (1) 通过编写 Python 函数轻松构建插件,(2) 使用外部的 ChatGPT-Plugins。

二、BMTools特点

ChatGPT Plugins是OpenAI推出的测试功能,使ChatGPT可以支持连网、解决数学计算,被称为OpenAI的“App Store”时刻。然而,由于目前其支持的工具数量有限,并且仅支持部分OpenAI Plus用户,大多数开发者仍然无法使用。

BMTools是一个基于语言模型的开源可扩展工具学习平台,通过语言模型调用扩展插件,实现特定功能。类似的工具还有AutoGPT、BabyAGI和AgentGPT。

而BMTools其实更通用,不仅支持 OpenAI的Plugins,还允许开发者自己扩充工具库。开发者只用编写简单的 python 程序就能轻松构建新的插件功能,并可集成其他来源的外部工具,比如AutoGPT。

三、BMTools原理

从上文特点中我们知道,BMTools不仅仅是一个使用CHatGPT调用其他api接口的自动化工具,而是一个开放平台,将这些Agent工具和Plugin扩展都可以适配进来,进行统一调度。

基础模型需要具备调用各种专业化工具的能力,这样才能为现实世界任务提供更为全面的支持,如何将基础模型与专业化工具相结合,共同打造更强大、高效的解决方案这一问题催生出了BMTools的诞生。

根据论文Tool Learning with Foundation Models的研究综述,工具学习是指让模型能够理解和使用各种工具来完成任务的学习过程。从学习目标的角度来看,现有工具学习主要可以分为两类:

  • 工具增强学习(Tool-augmented Learning),利用各种工具的执行结果,增强基础模型性能。在这一范式中,工具执行结果被视为辅助生成高质量输出的外部资源。
  • 工具导向学习(Tool-oriented Learning),将学习过程重点从增强模型性能转向工具执行本身。这一类研究关注开发能够代替人类控制工具并进行序列决策的模型。

上述两类方法的核心差异在于学习过程的侧重点,即通过工具执行来增强基础模型(工具为AI服务)或者通过基础模型优化工具的使用(AI为工具服务)。在这篇综述中,团队提出了统一这两类方法的工具学习框架,对两者进行了统一。

论文研究中提出了一个基础模型工具学习的框架:一个通用的工具学习框架包含 人类用户四个关键组成部分:工具集、控制器、感知器和环境

bmtools

其中的Tool Set类似现在围绕ChatGPT的各种扩展插件,比如调用谷歌搜索api,调用天气api,调用外卖api等等,但这只是其中的一部分含义。Controller相当于翻译用户指令为模型可执行的命令的一个控制器,既然要翻译指令,自然就有不同的翻译策略,类似AutoGPT或AgentGPT的不同策略。

其他的部分不过多分析,如果只是了解简单的原理并尝试自定义,只需要理解这两个部件的功能即可,这两个部件其实就已经统一了现在出现的各种自动工具了:选择不同的控制策略,比如AutoGPT或BabyAGI作为Controller,将用户指令转化为可执行的命令交给Tool Set执行,比如ChatGPT Plugin或其他api,工具执行可能导致环境发生变化,感知器捕捉这些变化并将信息反馈给控制器,进行新一轮的工具执行;人类也可以提供反馈来纠正或协助控制器的决策。经过多轮工具执行后,实现用户需求;最后,控制器可以将工具返回的信息总结给用户。

四、总结

BMTools搭建没有什么难度,官方也提供了试用demo和多种扩展插件,并适配了AutoGPT和BabyAGI,测试效果根据工具的丰富程度而定。

目前这个项目只是一篇研究综述中提出的框架的试验性工具,好处是不用等OpenAI Plugin的申请,直接就支持了Plugin,同时还支持自定义插件,使用AutoGPT的控制策略等,还是可以期待一下的。

这类自动化Agent的统一缺点可能就是Token使用量爆炸:cry:。


最后

参考文章:

官方项目

<基础模型工具学习>综述


声明

本文仅作为个人学习记录。

本文永久记录于区块链博客xlog