【论文精读】Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

news2024/9/26 5:14:44

Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

  • 前言
  • Abstract
  • 1 Introduction
  • 2 Chain-of-Thought Prompting
  • 3 Arithmetic Reasoning
    • 3,1 Experimental Setup
    • 3.2 Results
    • 3.3 Ablation Study
    • 3.4 Robustness of Chain of Thought
  • 4 Commonsense Reasoning
  • 5 Symbolic Reasoning
  • 6 Discussion
  • 7 Related Work
  • 8 Conclusions
  • 阅读总结

前言

本文是CoT的开山之作,来自于Google,中稿于NeurIPS 2022。CoT是一种简单高效的大模型prompt,旨在激发大模型的推理能力,是当前热门的方向之一,很多prompt的工作都开始转向CoT。本文思路清晰,方法简单,通俗易懂,并且实验巧妙,是一篇特别值得精读的文章。


Paperhttps://arxiv.org/pdf/2201.11903.pdf
Codehttps://github.com/guidance-ai/guidance
FromNeurIPS 2022

Abstract

本文提出思维链,即一系列中间推理步骤,用于提升大语言模型的复杂推理能力。该方法高效简单,又被称为chain-of-thought prompting。在三个大语言模型上的实验表明CoT在算数、常识和符号推理上有明显提升。

1 Introduction

在NLP领域,扩大语言模型可以提高模型性能和采样效率,但是在一些具有挑战性的任务上如算数、常识和符号推理上难以实现与模型规模相匹配的性能。本篇工作展示了CoT如何释放大模型的推理性能。
CoT受到两点启发:

  1. 算数推理可以从中间推理步骤中受益。
  2. 大语言模型通过prompting进行小样本学习有令人兴奋的前景。

但是高质量的中间步骤成本很高,小样本学习在推理任务上表现不佳。CoT将这两个想法相结合,避免了它们的局限性。具体来说,作者构建了prompt三元组<input, chain of thought, output>,思维链是一系列中间自然语言推理步骤,如下图所示:
image.png
作者对算数、常识和符号的推理基准进行了经验评估,下图是在GSM8K上的评测结果:
image.png
可以看到,CoT对Palm 540B模型有显著的提升,达到了SOTA。本项工作强调了大语言模型如何通过任务相关的自然语言提示进行学习。

2 Chain-of-Thought Prompting

当我们自己在解决复杂推理任务时,我们也会将问题分解为多个中间步骤,然后一步步解决直到给出最终的答案。本文的目标也是赋予语言模型类似思维链的能力,从而解决复杂的问题。具体来说,在小样本prompt的示例中提供CoT的演示,可以产生思维链。
作为促进语言模型推理的方法,CoT prompting有一些吸引人的特性:

  1. CoT原则上来说可以让模型将多步任务分解为多个中间步骤,这意味着可以将额外的计算量分配给需要更多推理的步骤。
  2. CoT为模型的生成行为提供了可解释性。
  3. CoT适用各种推理任务,如数学、常识推理等,通用性好。
  4. CoT应用简单,只需要将CoT的示例序列包含到小样本prompt中,就可以提高模型的推理能力。

3 Arithmetic Reasoning

作者在540B的语言模型上进行思维链的实验,引人注目的是,使用思维链的模型在多项任务上的表现与任务特定的微调相当,甚至在具有挑战的GSM8K基准测试中达到了SOTA。

3,1 Experimental Setup

**Benchmark: **GSM8K,SVAMP,ASDiv,AQuA,MAWPS.
**Standard prompting: **same as figure 1(left).
**CoT: **same as figure 1(right), Each CoT composed a set of eight few-shot exemplars.
image.png
**Language models: **GPT-3, LaMDA, PaLM, UL2 20B, Codex.

3.2 Results

image.png
image.png
实验结果如上图所示,CoT在小模型上并没有明显的提升,当模型超过100B时,会有显著的表现,表明了模型的涌现能力。具体来说,有如下的发现:

  1. 小模型上会产生不符合逻辑的思维链,导致表现低于标准的prompt。
  2. CoT在复杂的问题上有显著的性能提升。
  3. 在GPT-3和PALM上的CoT超过了微调的SOTA。

为了更好理解CoT的工作原理,作者手动检查了思维链生成的结果,在正确结果上,其思维链在逻辑和数学上都是正确的,在错误结果上,一半的思维链几乎正确,其余的错的离谱。此外为了探索模型规模对CoT的影响,作者对PaLM 62B和PaLM 540B进行了类似的分析,发现后者在CoT上修复了前者很大部分的缺失和语义理解错误。

3.3 Ablation Study

CoT的优异表现自然引发了问题,是否可以通过其它类型的prompt来实现相同的性能改进?下图展示了三种CoT变体的消融实验。
image.png

  • **Equation only. **思维链有效的一个原因可能是它会生成要评估的数学方程,因此一个CoT的变体是在给出答案前仅输出数学方程。上图表明仅输出方程并没有太大帮助,因为仅输出方程无法结果语义推理问题。
  • Variable compute only. 由于思维链允许模型在更困难的问题上花费更多的时间,有没有可能是因为计算量带来的性能提升?作者将CoT换为了同样长度的点序列,结果发现和基线大致相同,表明计算量不是CoT成功的原因。
  • **Chain of thought after answer. **最后一个变种是在答案后面加上思维链,从而判断模型是否是依赖CoT得到的答案,该变体表现和基线大致相同,说明模型确实依赖CoT从而生成答案。

3.4 Robustness of Chain of Thought

不同的prompt信息会对大模型生成的结果产生巨大影响,例如打乱few-shot示例的顺序,就会将GPT-3在SST-2上的性能从54.3%提升到93.4%。因此文章对比了三个不同作者构建的CoT、以及另一个更简洁的CoT,来验证CoT的鲁棒性。
image.png
上图展示了这些CoT基于LaMDA 137B模型在GSM8K和MAWPS两个数据集上的结果,虽然不同的CoT会有性能的波动,但都比baseline有着显著的提升,这表明CoT的成功并不依赖于特定的语言风格。此外作者还从训练集中随机抽样三组示例CoT,结果和手写的示例相当。

4 Commonsense Reasoning

虽然CoT特别适合解决数学问题,但是自然语言提示理论上在常识推理上更为实用。作者在CSQA、StrategyQA、Date、Sports、SayCan这五个数据集上进行了实验,prompt设置和数学推理实验中设置一致。结果如下:
image.png
对于所有的任务,扩大模型规模都能提升模型的性能,CoT相对于baseline提升更大,这表明CoT能够提升大模型在常识推理任务上的性能。

5 Symbolic Reasoning

最后评估CoT在符号推理上的表现。符号推理任务对人类来说很简单,但是对标准的大模型来说是一个有挑战的任务。作者选取了Last letter concatenationCoin flip两个任务,前者要求模型将名字中最后一个字母拼接起来,后者要求模型回答硬币翻转特定次数后的正反。实验设置和前两个实验相同,结果如下:
image.png
在PALM 540B的模型上,CoT在域内数据上几乎达到了100%的准确率,在域外数据上也有接近100%的表现,相反,标准prompt在这两者上都失败了。

6 Discussion

本文探索了CoT作为引发大模型多步推理的简单机制,在不进行微调的情况下,大大提高了模型算数推理、常识推理和符号推理上的性能。这也引发了作者一系列思考:

  1. 随着模型规模的增加,还期望模型理解能力能够提升多少?
  2. 还有哪些prompt方法可以扩展模型的解决任务范围?

此外,作者还提出了本文的一些局限性,虽然文中证明了模型有利用到中间推理的信息,但是模型是否真的在推理是一个悬而未决的问题。其次,手动构建CoT成本高,质量难以保证。第三,对于推理路径,无法保证其正确性。

7 Related Work

略。

8 Conclusions

本文探索CoT作为一种简单实用的prompt方法可以增强大模型的推理能力,通过算数、常识、符号推理的实验,发现它允许足够大的模型执行推理任务,而这些任务在标准prompt中是失败的。通过进一步扩大模型规模,有望激发基于自然语言的方法的工作。

阅读总结

本文作为CoT的开山之作,虽然简单且易于理解,但是其实验丰富,并且消融实验构造巧妙,也是一篇无论是写作还是实验都特别值得借鉴的工作。当然作为开山之作,肯定有很多值得改进的地方,比如本文是手动构建的CoT,这种方式质量难以保证,并且效率不高,成本巨大,一个省时省力的工作是利用chatgpt等优质大语言模型自动构建CoT,当然除了构建的形式不同,CoT本身也有很多可以做的工作,比如多阶段的CoT会进一步提升模型的效果。强化学习+CoT也能进一步提高CoT的质量等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1078890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过Java Record提升代码质量:简洁而健壮的数据对象

为了提高开发效率和代码可读性&#xff0c;Java 14引入了一个新的特性 - Records&#xff08;记录类型&#xff09;。Records旨在简化和改进Java中的数据类定义&#xff0c;使得创建简单的数据传输对象&#xff08;DTO&#xff09;或值对象更加便捷。 什么是Java Record&#x…

Springboot接收http参数总结(最简单易懂)

1. 前端能携带请求参数的地方 http请求一半前端请求参数放在三个地方&#xff1a;请求头&#xff0c;请求查询参数&#xff08;Query String&#xff09;&#xff0c;请求体。 请求体需要获取HttpServletRequest对象才能获取。 2. 请求体常见格式 而请求体中可以存放多种格式…

Leetcode92. 反转链表 II

Every day a Leetcode 题目来源&#xff1a;92. 反转链表 II 解法1&#xff1a;模拟 注意 STL 的 reverse() 是左闭右开的。 代码&#xff1a; class Solution { public:ListNode *reverseBetween(ListNode *head, int left, int right){vector<int> nums getNums(…

Altium Designer 20.2.3导入自带的原理图库

看了几天的AD学习视频&#xff0c;把我看得晕头转向的&#xff0c;静整些没用的东西&#xff0c;浪费时间&#xff0c;画个原理图讲了好几天&#xff0c;就那么点东西&#xff0c;在那扯淡&#xff0c;有系统自带的库他不教你怎么用&#xff0c;故意藏着掖着。想叫学习的小伙伴…

抽象轻松的java——mybaties

前置工作http://t.csdnimg.cn/RVvn4完成了前置工作后的IDEA应该是这样的 正式进入mybaties的入门 第一步&#xff0c;打开mybaties的官网文档https://mybatis.net.cn/getting-started.html本次入门&#xff0c;将从XML构造SQL工厂 第一步&#xff0c;创建一个XML文件&#xf…

Java架构师主流架构设计模式

目录 1 主流架构设计模式1.1 分层架构模式1.1.1 分层架构的一些常见原则1.1.2 分层的单向依赖原则1.1.3 无循环依赖的原则1.1.4 避免跨层通信的原则1.2 微服务架构模式1.3 基于事件的架构模式2 整洁架构3 六边形架构4 微内核架构模式5 基于空间的架构模式6 道过滤器模式和代理模…

UE5中实现沿样条线创建网格体2-SplineMesh版本

我在之前的一篇文章中写过沿样条线创建网格体的方法&#xff1a; https://blog.csdn.net/grayrail/article/details/130453733 但该方法没有网格变形操作&#xff0c;就会导致每一段网格对象是无法连接的&#xff1a; 后来发现了SplineMesh方法可以比较好的解决这个问题&…

电子沙盘数字沙盘大数据人工智能开发教程第16课

电子沙盘数字沙盘大数据可视化GIS系统开发教程第16课&#xff1a;新增加属性在MTGIS3d控件 public bool ShowFLGrid;//是否显 示方里网格。 public bool Atmosphere;//是否显示大气圈。&#xff08;因为WPF不支持shader功能&#xff0c;所以效果嘛。。。&#xff09; 在SDK中为…

ACK 云原生 AI 套件:云原生 AI 工程化落地最优路径

作者&#xff1a;胡玉瑜(稚柳) 前言 在过去几年中&#xff0c;人工智能技术取得了突飞猛进的发展&#xff0c;涵盖了机器学习、深度学习和神经网络等关键技术的重大突破&#xff0c;这使得人工智能在各个领域都得到广泛应用&#xff0c;对各行各业产生了深远的影响。 特别值…

Springcloud中间件-----分布式搜索引擎 Elasticsearch

该笔记是根据黑马程序员的课来自己写了一遍的,b站有对应教程和资料 第一部分 第二部分 第三部分 预计看完跟着练习5小时足够 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff…

【调试工具|mqtt-spy】mqtt客户端调试工具 mqtt-spy 详细使用教程

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

数据分析:小红书“情绪营销”如何拿捏年轻人

导语 小红书话题#不扫兴养成计划#上线&#xff0c;近30天话题浏览量破5000W&#xff0c;同比增长418.19%&#xff0c;数据表现良好。 图 | 千瓜数据 什么是不扫兴养成&#xff1f; 定义&#xff1a;想了解“不扫兴”的意思&#xff0c;那就先来看看它的反义“扫兴”吧。“扫…

2023版 STM32实战9 RTC实时时钟/闹钟

RTC简介 实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器&#xff0c;在相应软件配置下&#xff0c;可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。 注意事项 -1- 要手动配置中断寄存器 -2- 需要等待写操作完成 -3- 时钟闹钟中段…

JVM 性能监控与故障处理工具

基础工具 jps&#xff1a;虚拟机进程状态工具 jps 命令格式&#xff1a;jps [options] [hostid] 命令可选项解释&#xff1a; 选项解释-q只输出 LVMID&#xff0c;省略主类的名称-m输出传给 main 函数的参数-l输出主类的全名&#xff0c;如果进程运行的 JAR 包&#xff0c;…

ESP8266 WiFi物联网智能插座—下位机软件实现

目录 1、软件架构 2、开发环境 3、软件功能 4、程序设计 4.1、初始化 4.2、主循环状态机 4.3、初始化模式 4.4、配置模式 4.5、运行模式 4.6、重启模式 4.7、升级模式 5、程序功能特点 5.1、日志管理 5.2、数据缓存队列 本篇博文开始讲解下位机插座节点的MCU软件…

淘宝京东拼多多商品价格采集分析接口

淘宝、京东、拼多多商品价格采集分析接口的具体信息&#xff0c;但是可以为您提供一些参考内容&#xff1a; 登录京东、天猫、淘宝、拼多多、苏宁、国美、唯品会等电商平台&#xff0c;注册并获取开发者账号和API接口权限。通过开发者账号和API接口权限&#xff0c;访问京东、…

Java之实现添加文字水印、图片水印功能

文章目录 1 添加文字水印、图片水印1.1 给图片添加文字水印1.1.1 获取原图片对象信息1.1.1.1 读取本地图片1.1.1.2 读取网络图片 1.1.2 添加水印1.1.3 确定水印位置1.1.3.1 设置固定值1.1.3.2 根据原图大小进行设置 1.1.4 获取目标图片1.1.5 完整代码 1.2 java实现给图片添加图…

HomeView/主页 的实现

1. 创建数据模型 1.1 创建货币模型 CoinModel.swift import Foundation// GoinGecko API info /*URL:https://api.coingecko.com/api/v3/coins/markets?vs_currencyusd&ordermarket_cap_desc&per_page250&page1&sparklinetrue&price_change_percentage24…

论文中的小细节——为什么论文中总是写WX而不是XW?

这是最近一个师弟问我的问题&#xff0c;为什么在论文里面总是写的 Y W X YWX YWX&#xff0c;而不是 Y X W YXW YXW&#xff1f;就算有的时候需要转置 W W W 或者 X X X&#xff0c;都不写 Y X W YXW YXW&#xff1f; 这个问题我最开始回答的是这就是约定俗成的写法&…

新能源三电系统测试如何快速连接,避免多次插拔?安规测试电连接器的作用

新能源汽车行业高速发展&#xff0c;电机、电动、电池作为核心三部件&#xff0c;必须有严格的检测已确保产品性能、质量、安全性符合要求。其中会涉及多种测试&#xff0c;如&#xff1a;防水防尘/气密测试、EOL测试、DCR测试等&#xff0c;需要连接相应的检测设备仪器。如何快…