编辑:好困 桃子
【新智元导读】ChatGPT能力解禁,还是加入插件功能后,性能得到了强化。所有大模型皆是如此。面壁智能给大模型接入16000 真实API,性能匹敌ChatGPT。这段时间,开源大语言模型(LLM)可谓是进步飞快,像是 LLaMA 和 Vicuna 等模型在各种语言理解、生成任务上展现了极佳的水平。
然而,当它们面对更高级别的任务,例如根据用户指令使用外部工具(API)时,仍然有些力不从心。
为了解决这个问题,面壁智能联合来自 TsinghuaNLP、耶鲁、人大、腾讯、知乎的研究人员推出 ToolLLM 工具学习框架,加入 OpenBMB 大模型工具体系「全家桶」。
大模型工具学习范式
尽管已经有一些工作(例如Gorrila、APIBank等)探索了如何让LLM掌握API调用能力,这些工作仍然存在以下局限性:
1. 有限的API:很多研究没有使用真实世界的API(如RESTful API),存在API范围有限、多样性不足的问题
2. 场景受限:先前工作大多集中在单一工具的使用,而实际场景中可能需要多个工具协同工作来完成复杂任务;此外,现有研究通常假设用户提供与指令相关的API,但现实中可供选择的API可能非常多,用户难以从中高效选择
3. 模型规划和推理能力不足:现有模型推理方法如CoT、ReACT过于简单,无法充分利用LLM的潜力来处理复杂指令,因而难以处理复杂任务
ToolLLM 研究框架
为了激发开源LLM的工具使用能力,该研究提出了ToolLLM,一个包括数据构建、模型训练和评估过程的通用工具学习框架。
作者首先收集高质量的工具学习指令微调数据集ToolBench,随后对LLaMA进行微调得到ToolLLaMA,最后通过ToolEval评估ToolLLaMA的工具使用能力。
RapidAPI层次架构和工具指令生成示意图
为了兼顾生成高质量的指令和保证指令能用 API 完成,作者采用自底向上的方法进行工具指令生成,即从收集的 API 入手,反向构造涵盖各种 API 的指令。具体而言,作者首先从整个 API 集合中采样各种各样的 API 组合,接着通过 prompt engineering 让 ChatGPT 构思可能调用这些 API 的指令。
其中 prompt 包括了每个 API 的详细文档,这样 ChatGPT 能够理解不同 API 的功能和 API 之间的依赖关系,从而生成符合要求的人类指令。具体的采样方式分为单工具指令(指令涉及单工具下的多个 API)和多工具指令(指令涉及同类或跨不同类的工具的多个 API)。
通过该方法,作者最终自动构造逾 20 万条合格的指令。
03 解路径标注
给定一条指令 ,作者调用 ChatGPT 来搜索(标注)一条有效的解路径(动作序列):{,...,} 。这是一个多步决策过程,由 ChatGPT 的多轮对话来完成。
在每个时间步 t,模型根据先前的行为历史和 API 响应预测下一步动作 ,即:
总而言之,DFSDT 算法显著提升了模型推理能力,增加了解路径标注的成功率。
最终,作者生成了 12000 条指令-解路径数据对用于训练模型。
ToolEval 模型评估
为了确保准确可靠的工具学习性能评测,作者开发了一个名为 ToolEval 的自动评估工具,它包含两个评测指标:通过率(Pass Rate)和获胜率(Win Rate)。
通过率是指在有限步骤内成功完成用户指令的比例;获胜率则基于 ChatGPT 衡量两个不同解路径的好坏(即让 ChatGPT 模拟人工偏好)。
在应用方面,ChatGPT Plugins 的出现补充了 ChatGPT 最后的短板,使其可以支持连网、解决数学计算,被称为 OpenAI 的「App Store」时刻。然而直到现在,它仅支持部分OpenAI Plus用户,大多数开发者仍然无法使用。
为此,面壁智能之前也推出了工具学习引擎 BMTools,一个基于语言模型的开源可扩展工具学习平台,它将是面壁智能在大模型体系布局中的又一重要模块。
研发团队将各种各样的工具(例如文生图模型、搜索引擎、股票查询等)调用流程都统一到一个框架上,使整个工具调用流程标准化、自动化。
开发者可以通过 BMTools,使用给定的模型(ChatGPT、GPT-4)调用多种多样的工具接口,实现特定功能。此外,BMTools 工具包也已集成最近爆火的 Auto-GPT 与 BabyAGI。
未来,团队还将围绕大模型工具学习有更多发布,敬请大家期待!
BMTools 工具包:
https://github.com/OpenBMB/BMTools
工具学习综述链接:
https://arxiv.org/abs/2304.08354
工具学习论文列表:
https://github.com/thunlp/ToolLearnirgPapers
花粉社群VIP加油站
猜你喜欢