©PaperWeekly 原创 · 作者 | 宋一帆
单位 | 北京大学计算语言学研究所博士生
研究方向 | 自然语言处理
论文题目:
RestGPT: Connecting Large Language Models with Real-World RESTful APIs
论文链接:
https://arxiv.org/abs/2306.06624
代码链接:
https://github.com/Yifan-Song793/RestGPT
研究背景
诸如 ChatGPT 和 GPT-4 这样的大语言模型(LLM)已经涌现出包括思维链、推理、规划在内许多强大的能力。为了让 LLM 能够在现实应用中实现更大的价值,目前一个热门的研究方向就是将 LLM 与外部的工具或 API 相连接,以拓展 LLM 的能力范围。
本文我们尝试将 LLM 与 RESTful API 相连接,构建名为 RestGPT 的 agent 以控制诸如音乐播放器、电影数据库这类的真实应用,完成用户的复杂指令。
RESTful API 是现代网络应用的基础规范,通过 HTTP 方法(如 GET、POST)来访问和控制网络资源,许多互联网应用,诸如 Spotify、Gmail、Twitter、Slack都提供了公开的 RESTful API。而只要提供 API 对应的描述文件 OAS,我们设计的框架 RestGPT 可以“即插即用”地与任何已有 RESTful 应用连接,具有极强的可拓展性。
然而,现实 API 也会为我们带来诸多挑战:1)真实 API 的调用可能会遇到各种错误、异常,需要框架具有较强的规划能力和鲁棒性;2)真实 API 返回的结果往往是复杂的 JSON 文档,需要设计机制来对其进行解析。
方法简述
为了构建具有较强鲁棒性的 agent 以及解决 RESTful API 带来的现实挑战,我们提出 RestGPT 框架。如图所示,RestGPT 主要由三个模块组成:规划器(Planner)、API 选择器(API Selector)、执行器(Executor),其中执行器又包括调用器(Caller)和解析器(Parser),每一个模块的核心都是 LLM 和描述了其功能的 prompt。
为了在有限的上下文范围内充分理解 API 的功能,在 RestGPT 中,我们让不同模块读取 OpenAPI Specification 文档中的不同部分。RestGPT 遵循“规划-执行”的模式,每次对下一步的 API 调用进行规划,调用 API 后根据反馈结果进行下一次规划。
在规划阶段,规划器和 API 选择器协同合作,完成由粗至细的在线规划(coarse-to-fine online planning)。首先规划器根据用户指令和上一步执行的结果,以自然语言的形式生成当前步较粗粒度的子任务,接下来 API 选择器根据子任务选择具体的 API 构成细粒度的 API 调用规划,最后由执行器执行 API 调用规划,再将结果返回规划器,进行下一次规划。
当规划器评估当前子任务没有被完成,会发出 “Continue” 指令,并指示 API 选择器重新选择新的 API 执行。当规划器评估用户指令已经完成,则发出 “End” 指令,并返回最终执行结果。
在执行阶段,调用器根据 API 调用规划和 API 文档生成调用参数,调用 RESTful API,而解析器则根据 OAS 中定义的 response schema,利用 LLM 的代码生成能力,生成解析代码,从复杂的 JSON response 中抽取需要的信息
新评测数据集
为了更好地评估 RestGPT 解决真实用户指令的性能,我们引入了一个高质量人工标注的测试集 RestBench。该数据集包含两个场景:LLM 访问 TMDB 电影数据库,LLM 控制 Spotify 音乐播放器。数据集中包含真实用户指令和对应的标准 API 调用路径,最终得到 TMDB 场景下覆盖 54 个 API 的 100 条指令,Spotify 场景下覆盖 40 个 API 的 57 条指令。
RestBench 中的样例数据如下:
我们使用人工检查的成功率(Success)、API 调用路径正确率(Correct Path,CP)和调用路径长度(Solution Length)来评估模型的性能和执行效率。
实验结果
我们使用 text-davinci-003 作为基础模型实现了 RestGPT 和若干基线模型,并测试了使用 ChatGPT、Llama2 和 Vicuna 作为基础模型的性能。实验结果显示,在两个场景上,RestGPT 都能达到超过 70% 的执行成功率,并且在调用路径长度所代表的执行效率上优于基线模型。
错误分析显示,规划阶段,即规划器和 API 选择器的错误占据了主导,显示出现有 LLM 在规划和推理能力上仍有提升空间。此外 ChatGPT 的规划能力明显差于 text-davinci-003。
我们对指令复杂度和 API 数量进行了规模缩放实验,得到如下结论:RestGPT 的强大规划能力使得其可以解决更为复杂的用户指令(标准 API 调用路径更长的问题);RestGPT 可以扩展到 API 数量更多的场景。
更多例子
RestGPT 可以解决较为复杂的用户指令,如音乐播放器场景“帮我创建一个包含周杰伦歌曲的歌单,并且将其命名为 ‘Love Jay’”,电影数据库场景“请给我一张泰坦尼克号主演的照片”等。
总结
本文介绍了 RestGPT 框架,探索将 LLM 与 RESTful API 相连接,以构建自动化 agnet 控制诸如 TMDB 和 Spotify 这样的真实应用,在高质量测试集 RestBench 上的实验充分证明了 RestGPT 能够解决现实中复杂的用户指令。我们相信 RestGPT 的提出将推动 LLM 在实际场景中的应用,并在学术和工业领域展现出更大的潜力和价值。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·
·