论文阅读:ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs

论文题目

ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs

论文地址

http://arxiv.org/abs/2307.16789

开源地址

https://github.com/OpenBMB/ToolBench

解决问题:

当前针对提升LLM在tool use领域的效果的研究存在一些问题: 1.涉及的API比较有限 2.应用场景受限 3.使用的规划、推理方法能力较差(COT ReACT),这些问题使得在生产实践中使用LLM来选择恰当的工具去处理用户的需求变得非常困难。

解决思路:

对于第一个问题,可以从一些知名API供应商处获取大量的API,文中选择了Rapid API

对于第二个问题,文中选择使用ChatGPT来生成丰富且多样的查询语句,这些查询语句需要通过调用API才能获取回答它们必须的信息 -》 实际上,对单个API生成多样的场景是容易的,主要难点在于构造需要多个API解决的多样的场景,如何保障这些API是相关的,可以被串联起来的

对于第三个问题,文中基于DFS思想,提出让LLM逐步选择恰当的工具,并在失败时返回上一步

具体步骤:

  1. 作者从Rapid API网站上采集了大量的API,这些API有着三层分类结构(category, tool, api),然后按照可用性以及质量对API进行了过滤,得到了一组高质量的API
    rapid_api

  2. 作者对API进行采样,采样出若干组API,然后对每组让ChatGPT生成需要使用这些API的查询语句。

    1. 作者使用了三种采样策略进行采样
    • 随机选择一个tool,将该tool下的所有api作为样本

    • 随机选择一个category,从中随机选择2-5个tool,每个tool中随机选择不超过3个api,这些api构成一个样本

    • 随机选择一个collection,从中随机选择2-5个tool,每个tool中随机选择不超过3个api,这些api构成一个样本

    1. 对于每个样本S,作者让chatgpt生成多个查询语句,以及每个语句涉及的S中的API,除了prompt,作者还使用了ICL
    2. 作者从DFS得到启发,让ChatGPT每次对话时选择一个可用的API,然后提供API的结果,除了第一轮,ChatGPT每次选择的api除了正常api还包括give up 和 finish两个额外的api,利用DFSDT方法和ChatGPT,作者获取了大量query对应的api调用过程
      dfs
    3. 为了评估调用过程的合理性,作者参考AlpacaEval,提出了ToolEval,使用ChatGPT判断这个调用过程是否解决了查询语句中的问题(Pass Rate),以及两个查询过程之间谁更好(Win Rate)。作者通过文字详细描述了两个指标的判断标准来prompt ChatGPT
    4. 为了向LLM推荐恰当的API,作者训练了一个SentenceBert来计算query和api document的embedding,通过embedding的相似度来选择api,训练过程中使用2中的query和相关api作为正例,采样部分其他api作为负例
    5. 作者将3中得到的(query, 调用过程)使用ToolEval筛选出其中pass的样本,将这这些样本作为训练集以对话的形式微调llama
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值