ChatCoT 论文粗读

 

<ChatCoT>论文粗读💡 Meta Data Title ChatCoT: Tool-Augmented Chain-of-Thought Reasoning on Chat-based Large Language Models Journal  (10.18653/v1/2023.findings...

<ChatCoT>论文粗读

💡 Meta Data

| Title | ChatCoT: Tool-Augmented Chain-of-Thought Reasoning on Chat-based Large Language Models | | —————————————————————— | ———————————————————————————————————————————————————— | | Journal |  (10.18653/v1/2023.findings-emnlp.985) | | Authors | Chen Zhipeng,Zhou Kun,Zhang Beichen,Gong Zheng,Zhao Xin,Wen Ji-Rong | | Pub.date | 2023 |

📜 研究背景 & 基础 & 目的 (Motivation)


现有的问题:

CoT的生成过程是一次性的,在中间步骤中使用工具将需要对其进行打断,从而损害生成过程的连续性

工具的调用会打断CoT的进程

  • 现有的解决方法:

    • 依赖LLM预先安排工具使用计划以供后序执行

      • 缺点:生成计划后无法与工具交互,及时看到明显的错误也无法纠正,存在误差累积
    • 设计针对特定任务的固定操作

      • 缺点:必须频繁的在LLM推理和执行行动之间切换,损害了CoT之间的连贯性(就比如CoT下一步必须是调工具)

作者要寻找一种更统一的方法整合CoT和tool

🔬 研究方法


解决思路

  • 将LLM的工具的操作视为LLM与工具之间的交互。

  • 将LLM和工具之间的交互过程建模为多轮对话,利用LLM出色的对话能力来操作工具

    • 在每一轮中,LLM可以在需要时自由地与工具交互,否则自行进行推理
    • 对话持续进行直到LLM得出最终答案。
  • 针对问题:在此过程中,由于基于对话的LLM可以很好地理解多轮上下文,它们可以在整个对话中遵循思维链,并自然地相应地调用工具,从而保持推理过程的连续性。

所以作者提出了ChatCoT,一种用于基于聊天的LLM的工具增强型思维推理策略。

初始设定

任务定义

专注于提升LLM在复杂任务上的推理能力(解决数学竞赛问题)

任务描述:

  • 问题陈述:复杂问题的背景和描述
  • 解答文本:获得答案单独详细解决过程
  • 答案

任务目的:给定问题陈述最终生成准确答案

工具集

  • 计算器:给定数据表达式可以化简

    • 实现:用SymPy python库
  • 方程求解器:给定方程组和未知变量,可以求解

    • 实现:用SymPy python库
  • 检索器:给查询提取相关信息

    • 用SimCSE

具体方法

工具学习的训练方法:In-context learning

通过agent(预定义的规则)与LLM的对话来实现推理和工具调用

整体分两个阶段:

  • 给LLM输入关于工具、任务和推理格式的知识来初始化对话的早期轮次(对话形式)

  • 迭代一个专门设计的工具增强型推理步骤(对话),直到获得答案

    • 在每次迭代中,基于当前的结果,我们首先利用大型语言模型进行推理,然后通过大型语言模型选择合适的工具,最后执行所选工具以获得当前步骤的中间结果。
    • 推理:LLM根据示例可以将推理分解为多轮对话,而无需专门的提示或指令。直到需要工具功能才停止
    • 工具选择:通过prompt提示让LLM选择(问LLM用什么工具如果回复不使用工具就继续推理)
    • 工具执行:给定选定的工具和参数,然后执行,可能结果无法让LLM满意,我们也可以增加几轮反馈,让LLM判断结果是否有用,然后重新使用该工具获取新结果

🚩 结论


在两个复杂的推理基准数据集上进行了实验,即MATH 和HotpotQA 。

ChatCoT在MATH上取得了非常有希望的性能,与SOTA基线方法相比,平均性能相对提高了7.9%。

📌 感想 & 疑问


  • 整体的prompt流程具体是什么样子?
  • agent是如何搞的
  • 为什么比其他的CoT+Tool好呢?
  • 读一下其他CoT+Tool