背景与问题
工具是人类能力的扩展,而人工智能能否像人类一样使用工具是核心问题。基础模型具备强大的语义理解、广泛的世界知识和推理能力,因此能够使用工具。
工具学习的分类
工具学习分为两类:
- 工具增强学习:将工具视为互补资源,使用工具的执行结果增强基础模型。
- 面向工具的学习:利用模型管理工具并做出顺序决策,代替人类进行复杂推理和规划。
工具学习框架
工具学习框架包括以下步骤:
- 意图理解:
- 通过指令调整(如 Instruction Tuning)理解指令的基本目的。
- 扩大模型大小和指令调整数据集的多样性以增强泛化能力。
- 理解模糊指令,理论上无限指令空间支持个性化指令。
- 工具理解:
- 通过零射提示描述 API 功能、输入/输出格式等。
- 通过少拍提示提供具体工具使用演示,模型模仿人类行为学习工具使用。
- 规划与推理:
- 内省推理:生成静态计划而不与环境交互,模型可分解高层任务为中层计划。
- 外向推理:生成考虑环境和反馈变化的动态计划,通过约束模型提出可行且符合上下文的语言行动。
- 多步骤多工具方案:了解不同工具的相互作用,模型应能逻辑排序工具并支持并行执行。
- 多代理协作:复杂任务需要多个代理协作,每个代理具备独特专业知识。
培训策略
- 从演示中学习:通常涉及人类注释。
- WebGPT:使用监督学习和强化学习,仅需 6,000 个注释数据。
- WebCPM:公开的交互式网络搜索 QA 数据集,框架由搜索模型和信息综合模型组成,整体管道评价基于人类偏好。
- Webshop:学习进行网上购物。
- Toolformer:自我监督工具学习,鼓励模型调用和执行工具 API,设计自监督损失评估工具执行是否有助于语言建模。
工具创建
- 人类是工具创造和使用的主要媒介,大多数工具为人类创造而非 AI。
- 为模型制作的工具:模块化,新的输入和输出格式更适用于 AI。
- 现有工程限制:集中在有限工具,推理过程复杂,缺乏错误处理机制。
- 工具创建程序:整改。
- 实验结果:在数学和 TabMWP 数据集上对 PoT 和纯 CoT 显著改进。
应用程序
- ChatGPT 插件:通过提供带有描述的 API,使 ChatGPT 调用应用程序完成复杂任务。
- 开源解决方案:
- 支持用户构建新插件,托管局部模型(如 LLaMA、CPM)使用工具。
- 支持 30+ 工具,欢迎贡献。
- 特点:支持 BabyAGI 和 AutoGPT,100k+ 工具使用 SFT 数据的方式。
- ToolBench:开源、大规模、高质量的指令调整 SFT 数据,促进工具使用能力。
- 特点:支持单工具和多工具方案,提供模型思想链过程、工具执行和结果。
- 多步骤决策和工具执行,API 为现实场景设计。
- 数据创建过程易于扩展,提供数据集、训练和评估脚本,以及 ToolLLaMA 模型。
总结
传统语言任务已得到较好解决,而更具挑战性的任务需要基础模型在复杂场景中利用工具。工具学习的性能主要依赖于大规模语言模型的有效性,未来需探索在复杂场景中利用工具学习,理论问题和实际问题仍需解决。