CoT: 思路链提示促进大语言模型的多步推理

CoT

    • 总览
    • 摘要
    • 1 引言
    • 2 Chain-of-Thought Prompting
    • 3 算术推理 (Arithmetic Reasoning)
      • 3.1 实验设置
      • 3.2 结果
      • 3.3 消融实验
      • 3.4 CoT的鲁棒性
    • 4 常识推理 (Commonsense Reasoning)
    • 5 符号推理 (Symbolic Reasoning)
    • 附录
      • A.1 为什么增加模型的规模,能提升CoT的能力?
      • A.2 提示词工作的作用是什么?

总览

题目: Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
机构:Google Brain, NeurIPS 2022
论文: https://arxiv.org/pdf/2201.11903.pdf
任务: 设计CoT prompting,促进大模型推理能力(特别是多步推理),更具体地,它隶属于一种离散提示学习,即在大模型下的上下文学习(即不进行训练,将例子添加到当前样本输入的前面,让模型一次输入这些文本进行输出完成任务)
特点: 思维链路的开山之作
前置相关工作:GPT,PaLM,Language models are few-shot learners

摘要

我们探索如何生成一条思想链(一系列中间推理步骤)来显著提高大语言模型执行复杂推理的能力。特别是,我们展示了这种推理能力如何通过一种称为思维链提示(chain-of- thought prompting)的简单方法在足够大的语言模型中自然出现,其中提供了一些思维链演示作为提示的范例。

对三种大语言模型的实验表明,思维链提示可以提高一系列算术、常识和符号推理任务的表现。经验收益可能是惊人的。例如,仅用八个思维链示例来提示 PaLM 540B,即可在数学解题的 GSM8K 基准上达到SOTA,甚至超过带有验证器的微调 GPT-3。

BLIP model

从摘要想到的一些QA:

  1. 这种step by step看着是以一种自然语言的形式进行组织,有没有一种更加逻辑化/规则化的组织方式?形式化语言进行描述?
  2. 对于一个问题,推理链路可能是不同的,但是都能得到正确答案,如果进行推理链路的定义还是说是一个ensemble的方式?
  3. 一步错步步错的问题如何解决?
  4. 模型涌现的原因?

1 引言

NLP 领域最近因语言模型而发生了革命性的变化。扩大语言模型的规模已被证明可以带来一系列好处,例如提高性能和采样效率(sample efficiency)。然而,事实证明,仅扩大模型大小不足以在算术、常识和符号推理等具有挑战性的任务上实现高性能

这项工作受到两个想法的启发,来探讨了大语言模型的推理能力如何可以通过简单的方法来进行解锁。

  1. 生成最终答案所需要的理由(rationale),能够对数学推理有增益。
  2. 大型语言模型提供了令人兴奋的通过提示进行in-context few-shot learning的前景。

然而,上述两种想法都有关键的局限性。对于理由增强(rationale augmented)训练和微调方法来说,创建大量高质量理由的成本很高,这比普通机器学习中使用的简单输入输出对要复杂得多。对于 Brown 等人 Language Models are Few-Shot Learners使用的传统少样本提示方法。,它在需要推理能力的任务上表现不佳,并且通常不会随着语言模型规模的增加而得到实质性改善 (Rae et al., 2021 Scaling Language Models: Methods, Analysis & Insights from Training Gophe)。在本文中,我们将这两种想法的优点结合起来,避免了它们的局限性。具体来说,我们探索语言模型在推理任务中执行few-shot prompting的能力,给出由三元组组成的提示:⟨输入、思维链、输出⟩。思维链是一系列导致最终输出的中间自然语言推理步骤,我们将这种方法称为思维链提示。图 1 给出了一个示例。

我们对算术、常识和符号推理基准进行了实证评估,表明思维链提示优于标准提示,有时甚至达到了惊人的程度。图 2 展示了这样一个结果:在数学解题的 GSM8K 基准上,PaLM 540B 的思维链提示大大优于标准提示,并实现了SOTA。

BLIP model

A prompting only approach很重要,因为它不需要大型训练数据集,并且单个checkpoint可以执行许多任务而不失通用性。这项工作强调了大语言模型如何通过一些带有有关任务的自然语言数据的示例来学习(自动学习隐藏在大型训练数据集中输入输出的patterns)。

2 Chain-of-Thought Prompting

在解决复杂的推理任务(例如多步骤数学题)时,请考虑自己的思维过程,通常我们是将问题分解为中间步骤并在给出最终答案之前解决每个步骤:“Jane 给了她妈妈 2 朵花后,她有 10 朵……” 。 。那么当她给她爸爸 3 朵后,她将得到 7 …所以答案是7。”本文的目标是赋予语言模型生成类似思维链的能力——一系列连贯的中间推理步骤,从而得出问题的最终答案。我们将证明如果在小样本提示的范例中提供了思想链推理的演示,那么大语言模型就可以生成思想链。

图 1 提供一个示例,用于展示大模型产生用于解决数学应用题的一系列思路,否则该模型可能会出错。在这种情况下,思维链路可以被resemble为一个完整的解决方案,但是我们依旧倾向于把它称之为思维链路,因为它模拟了达到最终答案所需要的一步接一步的思考过程。

对于促进大模型的推理能力,CoT拥有如下的吸引人的性质:

  1. 首先,思想链原则上允许模型将多步骤问题分解为中间步骤,这意味着可以将额外的计算分配给需要更多推理步骤的问题。
  2. 其次,思想链提供了模型行为的可解释窗口,表明模型如何得出特定答案,并提供调试推理路径出错位置的机会(充分刻画模型用于支持最终答案的中间计算过程,依旧是一个开放性的问题)。
  3. 思想链推理可用于数学解题、常识推理和符号操作等任务,并且可能适用于(至少原则上)人类可以通过语言解决的任何任务。
  4. 最后,只需将思维链序列的示例包含到少样本提示的示例中,就可以在足够大的现成语言模型中轻松引发思维链推理。

3 算术推理 (Arithmetic Reasoning)

我们首先考虑图 1 中形式的数学解题,它衡量语言模型的算术推理能力。虽然算术推理对人类来说很简单,但语言模型经常难以完成算术推理任务。引人注目的是,与 540B 参数大语言模型一起使用时的思想链提示在多项任务上的表现与特定于任务的微调模型相当,甚至在具有挑战性的 GSM8K 基准上实现了SOTA。

3.1 实验设置

在多个大语言模型以及多个benchmarks上进行了CoT prompting的探索:
数据集 GSM8K, SVAMP, ASDiv, AQuA, MAWPS
标准Prompting : 参见图1
思维链路Prompting

BLIP model BLIP model

大语言模型 : 我们评估了五个大型语言模型。第一个是 GPT-3 ,我们使用 text-ada-001、text-babbage-001、text-curie-001 和 text-davinci-002,它们大概对应于 InstructGPT 模型350M、1.3B、6.7B 和 175B 参数的模型。第二个是LaMDA,它有 422M、2B、8B、68B 和 137B 参数的模型。第三个是PaLM,有8B、62B、540B参数的模型。第四个是 UL2 20B,第五个是 Codex OpenAI API 中的 code-davinci-002。我们通过贪婪解码从模型中进行采样(尽管后续工作表明,可以通过在许多采样代中采用大多数最终答案来改进思想链提示(Wang 等人,2022a))。对于 LaMDA,我们报告了五个随机种子的平均结果,其中每个种子都有不同的随机洗牌顺序的样本。由于 LaMDA 实验并未显示不同种子之间存在较大差异,为了节省计算量,我们报告所有其他模型的单个示例顺序的结果。

3.2 结果

BLIP model

有三个关键要点。首先,图4表明,思维链提示是模型规模的一种涌现能力(Wei et al., 2022b)。也就是说,思想链提示不会对小型模型的性能产生积极影响,并且仅在与 ~100B 参数的模型一起使用时才会产生性能增益。我们定性地发现,较小规模的模型会产生流畅但不合逻辑的思维链,导致表现低于标准提示。

其次,对于更复杂的问题,思维链提示可以带来更大的性能提升。例如,对于 GSM8K(基线性能最低的数据集),最大的 GPT 和 PaLM 模型的性能提高了一倍多。另一方面,对于 SingleOp(MAWPS 最简单的子集)来说,只需要一步即可解决,性能改进要么是负的,要么非常小(参见附录表 3)。

第三,通过 GPT-3 175B 和 PaLM 540B 进行的思想链提示优于现有有监督的技术。图 4 显示了 PaLM 540B 如何使用思想链提示在 GSM8K、SVAMP 和 MAWPS 上实现新的技术水平(但请注意,标准提示已经超过了 SVAMP 的先前最佳状态)。在另外两个数据集 AQuA 和 ASDiv 上,具有思维链提示的 PaLM 与现有技术的差距在 2% 以内(附录表 2)。

为了更好地理解为什么思考链提示有效,我们手动检查模型LaMDA 137B 在GSM8K产生的思想链。我们随机选择了50个模型预测出正确答案的样例,发现除了两个误打误撞预测正确之外,其余的cases全部给出了符合逻辑的解释。此外,我们也随机验证了50个给出错误答案的cases,我们发现46%的cases其CoT过程几乎是正确的,但是由于一些微小的错误(比如计算错误,符号映射错误,某步骤的推理过程缺失)造成推理过程错误,其余54%的CoT过程错误,主要是在语义理解以及一致性理解上存在比较大的问题。为了更好地理解为什么模型规模会造成能力的涌现,我们也在PaLM 62B上进行了类似的实验,我们发现将 PaLM 扩展到 540B 修复了 62B 模型中的很大一部分推理步骤缺失和语义理解错误的cases。

3.3 消融实验

使用思维链提示所观察到的好处自然引发了一个问题:是否可以通过其他类型的提示来实现相同的性能改进。图 5 显示了具有下述三种思路变化的消融研究。

仅等式。思维链提示可能有帮助的一个原因是它会产生要评估的等式,因此我们测试了一种变体,其中提示模型在给出答案之前仅输出等式。图5显示,仅等式提示对GSM8K没有太大帮助,这意味着GSM8K中问题的语义太具有挑战性,无法在没有思维链中的自然语言推理步骤的情况下直接翻译成等式。然而,对于一步或两步问题的数据集,我们发现仅提示方程确实可以提高性能,因为可以很容易地从问题中推导出等式(参见附录表 6)。
仅变量计算:
CoT过程在answer之后: 是否有可能CoT仅仅是能够让模型接触到预训练相关的一些知识。因此,设置了一个CoT after answer的实验,发现CoT的确是能激发推理,而非单纯的激发知识。

3.4 CoT的鲁棒性

  • 不同的标注人
  • 精细的标注
  • 不同的样例
BLIP model

4 常识推理 (Commonsense Reasoning)

BLIP model

5 符号推理 (Symbolic Reasoning)

BLIP model

附录

A.1 为什么增加模型的规模,能提升CoT的能力?

文中是通过失败案例分析,从语义理解,推理步骤缺失,幻觉,重复输出,符号映射错误等维度,去对比不同规模的模型表现。(Future work could more thoroughly investigate what properties of pretraining data, model architecture, and optimization objective causally enable such reasoning capabilities.)

A.2 提示词工作的作用是什么?

比较分析了如下的一些维度:

  • 不同的标注人员
  • 标注人员是否有机器学习背景
  • 不同的样例
  • 样例的顺序
  • 样例的数量
  • 不同的语言模型

如何进行CoT的标注,保持鲁棒性,依旧有比较多的探索空间

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SystemC入门之测试平台编写完整示例:全加器

导读: 本文将完整演示基于systemC编写一个全加器的测试平台。具体内容包括:激励平台,监控平台,待测单元的编写,波形文件读取。 1,main函数模块 搭建一个测试平台主要由:Driver, Monitor, DUT(design under …

Nginx编译安装和配置

官网:http://nginx.org/ 这里以1.20.2为例 Nginx是C语言写的 如果Linux系统上没有安装C编译环境 先执行下面命令 yum install -y gcc automake autoconf libtool make 如果不确定 可以使用命令查看 命令格式 rpm -q xxx 例如 说明有C编译环境 安装前需要安装4个依赖包…

基因组WGD的鉴定与分化时间

1. WGD 简介 全基因组复制(Whole genome duplications, WGD)是生物进化的重要因素之一(导致基因组扩增的因素包括全基因组复制和转座子TEs), 所以WGD分析也是基因组分析经常用到的一种分析方法。 古 WGD 检测有两种方法,一种是共线性分析&a…

Spring Boot创建多模块项目

创建一个普通的Spring Boot项目, 然后只留下 pom.xml 剩下的都删掉 删除多余标签 标识当前为父模块 创建子模块 删除子模块中多余标签 声明父模块 在父模块中声明子模块

体验SOLIDWORKS旋转反侧切除增强 硕迪科技

大家在设计中经常使用的旋转切除命令在solidworks2024版本中迎来了新的增强,添加了旋转反侧切除选项。在设计过程中不必修改复杂的草图即可切除掉我们不需要的部分。使设计工作更加方便快捷。 打开零部件后,点击键盘上的S键并输入旋转切除以搜索该命令&a…

[极客大挑战 2019]Knife 1(两种解法)

题目环境: 这道题主要考察中国菜刀和中国蚁剑的使用方法 以及对PHP一句话木马的理解 咱们先了解一下PHP一句话木马,好吗? **eval($_POST["Syc"]);** **eval是PHP代码执行函数,**把字符串按照 PHP 代码来执行。 $_POST P…

使用HttpClient库的爬虫程序

使用HttpClient库的爬虫程序,该爬虫使用C#来抓取内容。 using System; using System.Net.Http; using System.Threading.Tasks; ​ namespace CrawlerProgram {class Program{static void Main(string[] args){// 创建HttpClient对象using (HttpClient client new…

【蓝桥杯基础题】门牌制作

👑专栏内容:蓝桥杯刷题⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停目录 一、题目描述二、题目分析三、代码汇总1、C++代码2、Java 代码四、总结1、枚举思想2、取余判断每位数字一、题目描述 题目链接:门牌制作 小蓝要为一条街的住户制作门牌号。这条街一共…

Powercli批量修改分布式交换机端口组

背景 需求&#xff1a; 批量修改虚拟机的分布式端口组 解决方式一&#xff1a; 三条命令解决&#xff1a;先获取目标虚拟机、获取目标端口组、修改虚拟机端口组、检查虚拟机状态。 $vm Get-VM -Name <虚拟机名称> $portGroup Get-VirtualPortGroup -Name <端口…

视频编码转换技巧:视频批量转码H264转H265,高效且顺畅

随着数字媒体的广泛应用&#xff0c;视频编码转换已成为一种普遍的需求。不同的视频格式和编码标准使得在不同设备上播放视频成为可能&#xff0c;同时也带来了兼容性和传输效率的问题。本文讲解引用云炫AI智剪使视频编码转换技巧&#xff0c;即批量将H264编码转换为H265编码&a…

【CIO人物展】黄淮学院副CIO周鹏:构建数智化平台赋能学校高质量发展

周鹏 本文由黄淮学院副CIO周鹏投递并参与《2023中国数智化转型升级优秀CIO》榜单/奖项评选。丨推荐企业—锐捷网络 大数据产业创新服务媒体 ——聚焦数据 改变商业 黄淮学院是2004年经教育部批准成立的一所省属全日制普通本科高校。学校位于素有“豫州之腹地、天下之最中”之美…

关于ROS的网络通讯方式TCP/UDP

一、TCP与UDP TCP/IP协议族为传输层指明了两个协议&#xff1a;TCP和UDP&#xff0c;它们都是作为应同程序和网络操作的中介物。 **TCP&#xff08;Transmission Control Protocol&#xff09;协议全称是传输控制协议&#xff0c;是一种面向连接的、可靠的、基于字节流的传输…

蓝鹏测控测宽仪系列又添一员大将——双目测宽仪

轧钢过程中钢板的宽度是一个重要的参数&#xff0c;它直接决定了成材率。同时&#xff0c;随着高新科技越来越广泛的应用到工程实际中&#xff0c;许多控制系统需要钢板实时宽度值作为模型参数。 当前&#xff0c;相当一部分宽厚板厂还在采用人工检测的方法&#xff0c;检测环境…

LangChain+LLM实战---ChatGPT的工作原理

一个词一个词的输出 ChatGPT能够自动生成类似于人类书写的文本&#xff0c;这是非常了不起和出乎意料的。但它是如何做到的&#xff1f;为什么会有效果呢&#xff1f;我的目的在于大致概述ChatGPT内部发生了什么&#xff0c;然后探讨它为什么能够很好地生成我们认为有意义的文…

CSS必学:元素之间的空白与行内块的幽灵空白问题

作者:WangMin 格言:努力做好自己喜欢的每一件事 CSDN原创文章 博客地址 &#x1f449; WangMin 我们在开发的过程中&#xff0c;难免会出现一些难以预料的问题。那么其中&#xff0c;CSS空白现象就是非常常见的问题之一。虽然它已经被发现很久&#xff0c;但仍然有许多新手和经…

RabbitMQ 消息应答与发布

目录 一、消息应答 1、自动应答&#xff08;默认&#xff09; 2、手动消息应答的方法 ​编辑 3、消息重新入队 4、手动应答案列与效果演示 二、RabbitMQ持久化 1、队列持久化 2、消息持久化 三、不公平分发&#xff08;能者多劳&#xff0c;弱者少劳&#xff09; 1、…

Trajectory-guided Control Prediction for End-to-end Autonomous Driving论文学习

1. 解决了什么问题&#xff1f; 端到端自动驾驶方法直接将原始传感器数据映射为规划轨迹或控制信号&#xff0c;范式非常简洁&#xff0c;从理论上避免了多模块设计的错误叠加问题和繁琐的人为规则设计。当前的端到端自动驾驶方法主要有两条独立的研究路线&#xff0c;要么基于…

【leetcode】88. 合并两个有序数组(图解)

目录 1. 思路&#xff08;图解&#xff09;2. 代码 题目链接&#xff1a;leetcode 88. 合并两个有序数组 题目描述&#xff1a; 1. 思路&#xff08;图解&#xff09; 思路一&#xff1a;&#xff08;不满足题目要求&#xff09; 1. 创建一个大小为nums1和nums2长度之和的…

CrossOver软件2024最新版本下载

我们都明白快速运行&#xff1a;无须再独立运行一个Win电脑操作系统&#xff0c;进而解决双启动的繁杂和vm虚拟机的卡屏。习惯上来说极速运行&#xff1a;CrossOver能够让Win软件全速全状态运行&#xff0c;不会有丝毫的性能影响&#xff0c;让你在MAC系统中使用熟悉的Win应用。…

R语言爬虫代码模版:技术原理与实践应用

目录 一、爬虫技术原理 二、R语言爬虫代码模板 三、实践应用与拓展 四、注意事项 总结 随着互联网的发展&#xff0c;网络爬虫已经成为获取网络数据的重要手段。R语言作为一门强大的数据分析工具&#xff0c;结合爬虫技术&#xff0c;可以让我们轻松地获取并分析网络数据。…
最新文章