avatar

齐远航

2023-10-11 14:07:54

3699 浏览, 5 min 阅读

在人工智能领域,大语言模型(LLMs)是根据预训练数据集进行”学习“,获取可以拟合结果的参数,虽然随着参数的增加,模型的功能也会随之增强。 但无论专业领域的小模型,还是当下最火、效果最好的大模型,都有一个共同的劣势:无法准确/正确地回答出训练数据集以外(区别于验证集和测试集的 新增数据,如实时新闻、未公开的企业信息等)的结果,进而编造答案进行回复,即大模型幻觉问题

为了解决上述问题,同时避免微调(Fine-tuning)/重新训练(Retrain)带来的成本,LLMs插件应运而生。 通过LLMs强大的内容生成能力和上下文理解能力,结合插件提供的数据以及特定功能,不仅拓宽了LLMs的应用领域,还增加了LLMs生成结果的可信度, 更好地服务于用户。

第一部分:什么是插件?

插件是一种软件组件,它可以被添加到一个主要的应用程序或系统中,以扩展其功能或提供额外的特性。插件通常被设计成可独立安装和卸载, 并且可以与主应用程序进行交互。插件的功能取决于所应用的领域和具体的应用程序,在AIGC快速发展的今天,大语言模型插件异军突起, 改变了插件存在的形态,这也是本篇文章重点的研究对象。

结合当前大语言模型插件的发展,插件分类如下:

插件分类

1. 传统插件

传统插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序。 其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行,即插件的运行依赖于宿主软件, 无差别地启用或禁用插件功能。

传统插件可分为浏览器插件客户端软件插件,传统插件的存在形态如下图所示:

浏览器插件 客户端软件插件

2. 大语言模型插件(LLM)插件

大语言模型插件是随着大语言模型发展而诞生的全新插件。 大语言模型插件的核心是Web API,独立于大语言模型,插件开发过程不受大语言模型的约束, 同时没有开发语言的限制,更加通用,只要Web API遵循 RESTful 相关规则即可。只是在为大语言模型配置插件时遵循配置规则, 如原生ChatGPT插件配置遵循OpenAPI格式以及添加相关描述。

大语言模型与插件是相对独立的两个部分,大语言模型与插件关系示意如下图所示:

大语言模型插件(LLM)插件

大语言模型是插件的选择器,按需使用插件功能,即只有当用户提供的问题或数据满足插件调用条件时,才会调用插件,不是无差别地使用插件功能。

大语言模型(LLM)插件的工作流程如下图所示:

大语言模型(LLM)插件的工作流程

第二部分:什么是大语言模型(LLM)插件以及如何創建和使用它們?

大语言模型(LLM)插件包括两种类型的插件:ChatGPT 插件自定义 AI 机器人平台插件,以 GPTBots 为例。

1. ChatGPT 插件

目前最强大的商用大语言模型莫过于OpenAI的大语言模型ChatGPT-3.5/4.0,均支持插件功能(后面统一使用ChatGPT), 并且对支持开发者开放了插件开发入口,开发者可以基于自身需求开发Web API作为ChatGPT插件。 但是,ChatGPT创建插件的过程比较繁琐。

下面以GPTBots插件创建过程作为对比,两者插件创建过程如下图所示(左:ChatGPT创建插件;右:GPTBots创建插件):

ChatGPT 和 GPTBots 插件创建过程

2. 自定义 AI 机器人平台插件 - GPTBots 插件(工具)

GPTBots插件应用的技术路线不同于ChatGPT,GPTBots插件融合了ChatGPT插件创建规范(通用的OpenAPI规范)和函数调用功能,这样做有如下优势:

  • 开发者只需专注于自身功能接口开发,无需开发额外的接口。
  • 插件配置遵循OpenAPI规范,开发者可以直接复用面向 ChatGPT Web 的插件,一键发布插件至 GPTBots。
  • GPTBots 插件自动兼容市面上主流已支持插件能力的 LLM,开发者无需再去适配每个LLM。

通过上述插件创建过程的比较,我们可以知道使用 GPTBots 插件只需四个步骤:开发插件接口、创建新插件、配置插件认证,并添加符合 OpenAPI 规范的接口配置。其余的由 GPTBots 处理。

接下来,我们将介绍如何创建 GPTBots 插件(工具):

  • 1

    开发插件接口

    这里与ChatGPT原生方式相同,需要开发者自行开发插件接口,但是,在GPTBots中不需要开发者另行开发插件清单接口、插件接口配置 信息接口、插件Logo接口,只需要开发者专注于插件功能接口开发。
  • 2

    新建插件-工具(Tools)

    首先,请登录您的 GPTBots 账号并进入管理后台。 点击左侧菜单栏中的工具(Tools),跳转到工具列表。 接下来,点击创建工具(Create Tools), 并填写创建表单上的信息, 包括工具的名称、工具连接的 API 接口,以及工具介绍, 这些介绍有助于 LLM 更好地理解并在对话中帮助用户调用它们。 新建插件 GPTBots 插件tools
  • 3

    配置插件鉴权

    GPTBots 插件提供 4 种身份验证方法:无身份验证(None)、基本身份验证、Bearer 验证和服务身份验证(Service Auth,自定义)。 配置过程如下所示。 GPTBots-plugin-tools-auth-configuration 尤其是对于服务身份验证(Service Auth),您可以自订身份验证,并轻松设置身份验证参数值是否来自 请求头(Request Header)查询字串(Querystr),对应的身份验证 参数名称(Parameter name)服务令牌/API 金钥(Service token/API key), 这让按需配置变得非常方便。 GPTBots 插件鉴权 配置
  • 4

    新建动作(Actions)

    动作(Actions),相当于一个 API。一个工具(Tools)可以包含多个动作(Actions)。 您可以通过编写符合 API 的 OpenAPI 规范的 JSON 文档直接创建一个工具(Tools)。

    1. 首先,填写Tools的名称、描述和服务地址。之后点击“下一步”保存。

    GPTBots-插件工具创建1

    2. 之后,请填写输入参数。

    GPTBots-插件工具创建2

    3. 填写输出参数。输出参数可以留空,但填写它可以进一步帮助 LLM 理解输出字段的含义以更好地执行。 您可以使用「自动解析」让系统自动为您填写输出参数。

    GPTBots-插件工具创建3

    4. 最后,通过调试来验证 API 是否成功调用,您可以完成操作的创建。一旦身份验证和操作信息配置完成,工具(Tools)就完全设置好并可以使用了。

    GPTBots-插件工具创建4

综上,GPTBots 插件 Tools最大程度简化了用户创建和使用插件的流程,极大降低了插件使用门槛。

第三部分:GPTBots 開放工具(Tools)插件应用市场

登录您的 GPTBots 账号,点击"开放工具(Open Tools) "。 这里有许多类型的工具(Tools)(即上面提到的插件), 包括开发、SEO 写作或翻译、生活(天气查询)、图像和视频处理等免费或付费插件。 您可以在 Bot 配置界面中,将这些 Tools 添加至 Bot 内使用。

gptbots-open-tools-market

每个工具(Tools)都可以查看其具体资讯,包括介绍、使用方法、输入参数和输出参数等。下图是一个使用 GPT-4 将图像转换为文本的工具(Tools)示例。

Tools- GPT-4将图像转换为文本的工具(Tools)示例

思考与展望

插件在实际业务应用中,由于 LLM每次调用 token是有上限的,而插件也不可避免的占用 token,这样就导致无法在一次请求调用中提供多个插件备用。或者一个插件协议如果过于复杂,可能导致直接调用失败。

GPTBots 平台为了更好解决此类问题,推出了Flow功能。开发者可以在不同的步骤编排多个LLM参与业务处理,每个 LLM 可以最多添加 3 个插件,这样就很好的解决了插件使用限制的问题,同时通过减少请求上下文内容长度让 LLM更加专注,从而提升插件调用成功率。

LLMs插件区别于传统插件,它独立、灵活、自由、功能强大,大语言模型插件的核心是Web API,因此大语言模型插件完全拥抱互联网,同时,没有开发语言“歧视”,无论开发者的语言栈是Python、Java、Go、PHP等, 只要可以开发HTTP协议接口,遵循 RESTful 规则,就可以构建大语言模型插件,相信未来大语言模型插件种类会越来越丰富,功能越来越强大。 相对于ChatGPT繁琐的插件创建流程,GPTBots平台简化了插件创建流程,简单、易用、好用,提高插件开发者效率, 降低开发者学习成本,未来一定会有越来越多的开发者选择GPTBots平台。

免费开始使用