banner
hughie

hughie

热爱技术的小菜鸟, 记录一下所学所感

BMTools-基础模型工具学习的通用框架平台

前言#

​ 本文简单记录介绍一下 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.png

其中的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 使用量爆炸😅。


最后#

参考文章:

官方项目

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


声明#

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

本文与hblog保持同步。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。