文献阅读:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

news/2025/2/28 10:42:09/
  • 文献阅读:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
    • 1. 文章简介
    • 2. 具体方法
    • 3. 实验结果
      • 1. 数学推理
        • 1. 实验设计
        • 2. 实验结果
        • 3. 消解实验
        • 4. 鲁棒性考察
      • 2. 常识推理
        • 1. 实验设计
        • 2. 实验结果
      • 3. 符号推理
        • 1. 实验设计
        • 2. 实验结果
    • 4. 结论 & 思考
  • 文献链接:https://arxiv.org/abs/2201.11903

1. 文章简介

这篇文章还是一篇关于大模型的prompt调优的文章。

这里,主体的思路是使用Chain of Thought,也就是说把CoT的思路加入到prompt调优当中。和finetune当中使用的CoT方式相似,前者是将答案推导的推理链给出然后交给模型进行finetune,而这里,不在用于finetune,而是将其给出到few-shot learning当中,作为例子来指导模型进行生成推理,从而优化推理过程。

下面是一个具体的CoT prompt的例子:

在这里插入图片描述

而CoT Prompting效果的话,我们可以从下述GSM8K上的效果上一窥大概:

在这里插入图片描述

可以看到,在GSM8K测试集上,CoT Prompting的效果给LLM带来了显著的效果提升,且超过了当前的SOTA结果。

下面,我们就来看一下CoT Prompting的设计以及文中的实验考察。

2. 具体方法

关于CoT Prompting的具体方法设计,其实在上述的样例图中已经展示的比较清晰了,主旨来说,其实就是通过带有CoT的推理链的few shot例子的方式教给LLM推理的思路链,从而使得模型可以模仿其将问题进行拆分从而获得更加合理的回答。

更具体的,文中给出了CoT Prompting的4个主要的优点如下:

  1. CoT Prompting将问题进行了解构,从而将多步的问题拆分为了多个中间子问题,从而使得模型在推理过程中可以获得更多的计算,从而优化推理准确率;
  2. CoT由于解构了问题,从而在回答过程中存在了更多的可解释性,便于调试以及模型的自纠正;
  3. 可拓展性,CoT Prompting的方式可以广泛地用于数学问题,常识推理以及符号推理等问题当中;
  4. 使用上的便捷性,只需要通过几个简单的few shot的case,就能引导模型进行CoT的推理方式;

我们给出一些常见问题当中CoT Prompting使用的case如下:

在这里插入图片描述

下面,我们来看一下文中给出的一些具体的实验考察。

3. 实验结果

文中从数学推理,常识推理以及符号推理三个方面对CoT Prompting的效果进行了具体的考察。

下面,我们来看一下其各自的实验结果。

1. 数学推理

1. 实验设计

对于数学推理的问题,文中使用的测试数据主要包括:

  1. GSM8K
  2. SVAMP
  3. ASDiv
  4. AQuA
  5. MAWPS

而关于Prompt的设计,作为control,文中使用Brown et al.(2020)给出prompt,具体可以参考图一左侧的样例。而作为treatment,则是通过few-shot给出了CoT的样例,同样可以参考图一当中右侧的样例。

最后,关于实验中使用的LLM模型,具体包括以下一些:

  1. GPT-3
  2. LaMDA
  3. PaLM
  4. UL2 20B
  5. Codex

2. 实验结果

给出文中具体的实验结果如下:

在这里插入图片描述

可以看到:

  • 和早期的CoT实验效果相仿,对于小模型,CoT Prompting不一定能够带来提升,但是对于大模型,CoT Prompting可以带来显著的效果提升。

3. 消解实验

对于数学推理问题,中文还给出了CoT Prompting的一些消解实验,具体考察了以下几方面的影响:

  1. 用公式替换文本描述
  2. 依然只给出公式,不过公式中用变量名替换掉纯数字
  3. 将CoT的解释放置到给出答案之后,而不是之前

得到的实验结果如下:

在这里插入图片描述

可以看到,普遍效果都不太好,而这些也都比较好理解:

  • LLM显然对于语义的理解方面做的比公式的理解能力会强很多;
  • 前置解释可以辅助语言模型对于后续答案概率的生成优化。

4. 鲁棒性考察

而除了上述实验之外,文中还对CoT Prompting的鲁棒性进行了考察,具体而言,通过:

  1. 给出不同的人写作的CoT Prompting进行考察
  2. 用不同的样例作为few-shot的case

得到的结果如下:

在这里插入图片描述

可以看到:

  • 虽然存在一定的效果波动,不过整体而言CoT Prompting依然可以稳定地带来效果上的提升。

2. 常识推理

文中除了对于数学推理之外,还对常识推理进行了一些实验考察。

1. 实验设计

我们首先来看一下常识推理的一些实验设计。

在数据集选择方面,文中使用了如下一些测试数据集:

  1. CSQA
  2. StrategyQA
  3. Date
  4. Sports
  5. SayCan

而关于prompt以及模型的设计,则保持和前述数学推理相一致。

2. 实验结果

给出文中的实验结果如下:

在这里插入图片描述

可以看到:

  • 除了在CSQA数据集上没有获得较大的提升之外,在其他数据集上,CoT Prompting都带来了很大的性能提升,甚至在Sports数据集上超出了人类的水平。

3. 符号推理

最后,我们来看一下文中对于符号推理的实验结果。

1. 实验设计

首先,在实验设计方面,其他方面同样和之前的两个实验保持一致,只有在数据集上存在区别。

具体而言,这里使用如下两个数据集:

  1. Last letter concatenation
  2. Coin flip

2. 实验结果

给出文中的实验结果如下:

在这里插入图片描述

同样可以看到:

  • CoT可以稳定地带来效果提升。

4. 结论 & 思考

综上,我们基本可以得出结论:

  • 通过在few-shot learning当中加入CoT的方式,可以使得模型在生成过程中模仿CoT的方式,从而优化生成的结果。

这个结论本身倒是还挺好理解的,易用且有效,在这个以优化prompt为王的时代里,倒是可以在工作当中帮上大忙了。

不过这里我个人觉得,更本质的特征还是如何诱导模型进行CoT推理,诚然,这里是使用了一个最直接的方式,就是在few-shot当中直接加入样例,但是对于一些context非常长的case,这不一定可行,但是核心思路依然是可以借鉴的,在后续的prompt调优当中,个人觉得不失为一种优化的思路。


http://www.ppmy.cn/news/1102591.html

相关文章

powershell 搜索文本并返回行号

目录 powershell 搜索文本并返回行号 python调用powershell搜索文本并返回行号; powershell 搜索文本并返回行号 $keyword PS dir "d:\" -Filter "*.txt" -Recurse | foreach {$line 0 $fileName $_.FullNameGet-Content $fileName | f…

HTML <time> 标签

实例 如何定义时间和日期&#xff1a; <p>我们在每天早上 <time>9:00</time> 开始营业。</p><p>我在 <time datetime"2008-02-14">情人节</time> 有个约会。</p>定义和用法 <time> 标签定义公历的时间&…

13-RocketMQ主从同步(HA实现)源码原理

slave每次接收到master发过来的一批commitlog数据时&#xff0c;会看master传过来的这段commitlog的起始端&#xff0c;对应的全局物理偏移量&#xff0c;和slave本地存储的批commitlog数据的最大物理偏移量&#xff0c;是否相等 如果相等&#xff0c;也说明master端没有给sla…

【JavaScript】WebAPI入门到实战

文章目录 一、WebAPI背景知识1. 什么是WebAPI&#xff1f;2. 什么是API&#xff1f; 二、DOM基本概念三、获取元素三、事件初识1. 点击事件2. 键盘事件 四、操作元素1. 获取/修改元素内容2. 获取/修改元素属性3. 获取/修改表单元素属性4. 获取/修改样式属性 五、操作节点1. 新增…

倒⽴摆闭环控制的设计与开发

倒立摆是一种典型的多变量、高阶次、非线性、强耦合、自然不稳定系统&#xff0c;常被用来检验新的控制理论和算法的正确性及其在实际应用中的有效性。 load func_ip_comp% Locations of Poles and Zeroes of Open-Loop Compensated Transfer Function in Complex Plane figur…

typeScript 学习笔记(二)

类接口 TypeScript 入门教程 (xcatliu.com) 十四.类 ① 类 类&#xff1a;定义了一件事物的抽象特点&#xff0c;包含它的属性和方法对象&#xff1a;类的实例&#xff0c;通过new生成面向对象&#xff08;OOP&#xff09;的三大特性&#xff1a;封装、继承、多态封装&…

Single View Point Omnidirectional Camera Calibration from Planar Grids

参考论文 paper里面最关键的部分为这段 实际相当于有一个xi的参数要使用, 和正常的相机内参定义不太一样, 那么在3d往相机上投的时候, 是这样的 也参考: https://github.com/autonomousvision/kitti360Scripts/blob/master/kitti360scripts/helpers/project.py#L174-L198

Redis带你深入学习数据类型set

目录 1、set 2、set相关命令 2.1、添加元素 sadd 2.2、获取元素 smembers 2.3、判断元素是否存在 sismember 2.4、获取set中元素数量 scard 2.5、删除元素spop、srem 2.6、移动元素smove 2.7、集合中相关命令&#xff1a;sinter、sinterstore、sunion、sunionstore、s…