https://z83d9ankt1.feishu.cn/docx/WeJmdLpb7oeICoxaOKNcjoR9nGg

CREATOR

**动机:**在数学问题数据集上探索大模型创建工具的能力;构建工具创建能力测评数据集Creation Challenge。

Benchmark:MATHTabMWP

如何创建工具:

  1. creation: LLM根据给定的一个问题,生成解决该问题的通用工具(python代码)以及工具的功能文档。
  2. decision: LLM决定如何使用工具来解决问题,并估计求解所需时间。
  3. execution: 由解释器执行求解。
  4. rectification: 解释器将执行结果反馈给LLM,LLM检查其中错误并以此来修正creation/decision,如果没有错误则LLM根据执行结果输出答案。

Untitled

实现细节:

  1. **生成设置:**使用ChatGPT(gpt-3.5-turbo),最大长度512,温度0.3。
  2. **数据处理:**如果输出文本中包含数字则提取数字作为答案,如果没有数字则直接以LLM输出的文本作为答案。去除了测试数据集中答案为小数的部分(大约占20%)。
  3. **代码执行:**代码均用python实现。执行时将工具的代码与使用工具的代码直接拼接在一起执行。
  4. **错误修正:**将traceback信息提供给LLM,让其重新执行创建步骤。

**Creation Challenge:**该数据集中的问题不能直接应用现有的工具或代码包来解决。每条数据包含一个问题描述,以及实例工具和使用工具的代码。使用人工编写的种子数据集和text-davinci-003来扩增得到。

局限性:

  1. 所创建的工具的通用性没有保证。
  2. 对于已有工具的增强、组合、拆解等还有待探索。
  3. 目前的探索仅局限于数学问题的求解,与实际的场景相差甚远。

代码和数据集目前均未开源。

LATM

**动机:**让更强大也更昂贵的模型(GPT-4)来生成工具,而让更经济的模型(GPT-3.5-turbo)来复用工具解决问题,以降低成本。本质上是一种知识迁移。

Benchmark:

如何创建工具:

  1. propose: 根据问题的三个实例,由tool maker (e.g. GPT-4)来创建一个通用的python函数。(Programming by example paradigm)
  2. verify: 由tool maker将提供的三个实例改写成单元测试,来验证和修正工具。
  3. wrap: 将上一步的单元测试生成过程 作为从task转化到function call的示例,和生成的工具打包在一起,作为prompt提供给tool user使用。

Untitled

流式场景:

多种任务混杂在一起,流式地请求。需要增加一个调度器,判断所需的工具是否存在,以及应该使用什么工具。

Untitled

**CoT as tool:**很有趣的视角,将tool maker的CoT作为tool给tool maker。然而实验结果显示效果不如人工编写的CoT。