2023-arXiv-CoT Prompt 思维链提示提升大型语言模型的推理能力

news2025/2/23 2:06:13

arXiv | https://arxiv.org/abs/2201.11903

摘要:

我们探讨了如何生成思维链(一系列中间推理步骤)显著提高大型语言模型执行复杂推理的能力。在三个大型语言模型上的实验表明,思维链提示提高了一系列算术、常识和符号推理任务的性能。例如,在GSM8K的数学单词问题基准测试中,仅使用八个思维链示例就可以实现最先进的精度,甚至超过了经过微调的带有验证器的GPT-3。

一、引言

NLP领域最近被语言模型彻底改变了。提高语言模型的规模已被证明可以带来一系列好处,例如提高性能和样本效率。然而,单靠提高模型大小还不足以在算术、常识和符号推理等具有挑战性的任务上实现高性能。以往的方法都有关键的局限性:

  • **rationale-augmented training and finetuning:**创建大量高质量的 rationale(一道题的解释或理由)代价很高,比普通机器学习中使用的简单输入输出对要复杂得多。

  • **few-shot prompting:**在需要推理能力的任务上表现不佳,并且通常不会随着语言模型规模的增加而大幅提高。

本文结合两种理念的优势,提出了思维链提示,即一系列导致最终输出的中间自然语言推理步骤,包括三元组: ⟨ input , chain of thought , output ⟩ \langle \text{input}, \text{chain of thought}, \text{output} \rangle input,chain of thought,output

二、思维链提示

在解决一个复杂的推理任务,比如一个多步骤的数学单词问题时,典型的做法是将问题分解为中间步骤,并在给出最终答案之前解决每个步骤:“After Jane gives 2 flowers to her mom she has 10 …… then after she gives 3 to her dad she will have 7 …… so the answer is 7”。本文的目标是赋予语言模型产生类似思维链的能力,即一系列连贯的中间推理步骤,推理出问题的最终答案。如果在示例中为 few-shot prompting 提供了思维链推理的演示,那么足够大的语言模型可以生成思维链。

image-20241211111636514

思维链提示作为一种促进语言模型推理的方法有几个特性:

  1. 思维链原则上允许模型将多步骤问题分解为中间步骤,这意味着可以将额外的计算分配给需要更多推理步骤的问题。

  2. 思想链为模型的行为提供了一个可解释的窗口,提示它是如何得出特定答案的,并在当推理路径有误时,提供了调试的机会。

  3. 思维链推理可以用于数学单词问题、常识推理和符号操作等任务,并且可能(至少在原则上)适用于人类可以通过语言解决的任何任务。

  4. 思维链推理可以很容易地在足够大的现成语言模型中引出,只需将思维链序列的示例增加到 few-shot prompting 的示例中。

三、算术推理 Arithmetic Reasoning

虽然对人类来说很简单,但算术推理是语言模型经常难以完成的任务。当思维链应用于540亿参数的语言模型时,在多个任务上表现与专门针对任务进行微调的模型相媲美,甚至在具有挑战性的 GSM8K 基准测试上达到了最新水平。

3.1 实验设置

基准测试:

image-20241211133631846

**标准提示:**标准 few-shot prompting,在输出预测前给出示例的输入-输出对(a language model is given in-context exemplars of input-output pairs before outputting a prediction for a test-time example)。

思维链提示:

  • 使用表20中的8个思维链范例来进行除了AQuA外的基准测试,使用表21中的4个思维链范例来进行AQuA的基准测试。

image-20241211134905283

image-20241211134919707

大语言模型:

  • **GPT-3:**text- data -001、text-babbage-001、text-curie-001、text- davincii -002,对应于350M、1.3B、6.7B和175B参数的InstructGPT模型。
  • **LaMDA:**422M、2B、8B、68B和137B。
  • **PaLM:**8B、62B和540B。
  • UL2 20B
  • **Codex:**code-davinci-002

3.2 实验结果

image-20241211135817022

image-20241211135932748

  1. **思维链提示是一种模型尺度的涌现能力。**即思维链提示不会对小模型性能产生积极影响,只有在与参数为~ 100B的模型一起使用时才会产生性能提升。较小规模的模型产生流畅但不合逻辑的思维链,导致性能低于标准提示。
  2. **思维链提示对于更复杂的问题有更大的性能提升。**对于GSM8K,最大的GPT和PaLM模型的性能增加了一倍以上。对于 MAWPS: SingleOp 性能改进要么是负的,要么是非常小的。
  3. 通过GPT-3 175B和PaLM 540B进行的思维链提示优于之前最先进的方法,即通过在标记的训练数据集上微调特定于任务的模型。

3.3 样本分析

从通过LaMDA 137B进行的思维链应用于GSM8K中手动筛选了50个正确答案样本和50个错误答案样本:

  • **50个正确答案样本:**1个通过错误的推理得出了正确的答案,5个在保持连贯和可理解的逻辑时存在小缺陷(1个有未指定的语句,1个有不相关但正确的陈述,2个逻辑正确但省略了具体步骤,1个颠倒了语义)

image-20241211143306416

  • **50个错误答案样本:**46%的思维链几乎是正确的,除了小错误(计算错误,符号映射错误,一个推理步骤的缺失),另外54%的思维链在语义理解或连贯方面有重大错误。
    • 仅计算错误 8%:当我们添加一个Python程序作为外部计算器时,LaMDA 137B GSM8K的思维链提示解决率从14.3%上升到17.3%。image-20241211145016843
    • **符号映射错误 16%:**当思维链除了数字符号之外是正确的,并且它可以通过只修改方程而不修改单词而完全正确时。image-20241211145040732
    • **遗漏一步错误 22%:**缺少了一个步骤,即可以通过添加模型错过的额外推理步骤来重写为正确的。image-20241211145109682
    • 语义理解错误 27个:image-20241211145450104
    • **不连贯 8个:**在生成的思维链中,有些语句没有遵循先前的语句或违反了基本的世界知识。image-20241211145514784

3.4 模型规模与错误修复

通过对增加模型规模可以修复错误,将PaLM从62B扩展到540B修复了大部分错误:

image-20241211141337204

image-20241211141411848

3.5 消融实验

image-20241211145941633

  • **仅输出方程:**只有方程提示对GSM8K没有多大帮助,这意味着GSM8K中问题的语义太具有挑战性,无法在没有思维链中的自然语言推理步骤的情况下直接转换为方程。然而,对于一步或两步问题的数据集,我们发现只有方程提示确实提高了性能,因为方程可以很容易地从问题中推导出来。
  • **仅变量计算:**表现与基线大致相同,这表明变量计算本身并不是思维链提示成功的原因,通过自然语言表达中间步骤似乎是有用的。
  • **回答后再给出思维链(思维链提示仅在答案之后给出,从而隔离模型是否实际上依赖于生成的思想链来给出最终答案):**表现与基线大致相同,这表明在思维链中体现的顺序推理在激活知识之外的原因上是有用的。

image-20241211151322902

3.6 稳健性检验

image-20241211150000432

  • 注解者B和C编写的思维链
  • 注解者A编写的更简洁版本

尽管在使用基于范例的提示时,不同的思维链注释之间存在差异,所有的思维链提示都大大优于标准基线。这一结果表明,思维链的成功运用并不取决于特定的语言风格。

  • 从GSM8K训练集随机抽取的三组8个示例进行了实验,与我们手工编写的示例相比的执行情况,也大大优于标准提示。

四、常识推理 Commonsense Reasoning

虽然思维链特别适用于数学单词问题,但思维链基于语言的性质实际上使其适用于广泛的常识推理问题,这些问题涉及在一般背景知识的假设下对物理和人类互动进行推理。常识推理是与世界互动的关键,目前的自然语言理解系统仍然无法实现。

4.1 实验设置

基准测试:

  • **CSQA:**一些关于世界的常识性问题,这些问题涉及复杂的语义,通常需要先验知识
  • **StrategyQA:**要求模型推断多跳策略来回答问题。
  • BIG-bench:日期理解,包括从给定的上下文中推断日期;体育理解,包括确定与体育相关的句子是可信的还是不可信的。
  • **SayCan:**涉及将自然语言指令映射到来自离散集合的机器人动作序列。

思维链提示:

  • 对于CSQA和StrategyQA,我们从训练集中随机选择示例,并手动组成思维链供它们用作 few-shot 样本。两个BIG-bench任务没有训练集,所以我们选择前10个例子作为评估集中的样本作为 few-shot 样本。对于SayCan,我们使用了原文使用的训练集中的六个示例。

image-20241211154131408

image-20241211154146869

image-20241211154200939

image-20241211154215256

image-20241211154231558

4.2 实验结果

image-20241211154440474

image-20241211154516582

五、符号推理 Symbolic Reasoning

我们最后的实验评估考虑了符号推理,这对人类来说很简单,但对语言模型来说可能具有挑战性。我们表明,思维链提示不仅使语言模型能够执行在标准提示设置中具有挑战性的符号推理任务,而且还有助于长度泛化到比在少数示例中看到的更长的推理时间输入。

5.1 实验设置

任务:

  • **最后一个字母连接 Last letter concatenation:**这个任务要求模型连接名字中单词的最后一个字母(“Amy Brown” → “yn”)。这是首字母连接的一个更具挑战性的版本,语言模型已经可以在没有思维链的情况下执行我们通过从姓名普查数据中随机连接前1000个姓和名来生成全名。
  • **抛硬币 Coin flip:**这个任务要求模型回答在人们抛硬币或不抛硬币后,硬币是否仍然是正面朝上的(“硬币是正面朝上的,菲比抛硬币,奥斯瓦尔多不抛硬币,硬币还是正面朝上吗” → “不”)

思维链提示:

  • 对于每个任务,我们考虑一个域内测试集,其中示例具有与 few-shot 样本相同的步骤数,以及一个域外(OOD)测试集,其中评估样本比示例中的步骤更多。
  • 对于最后一个字母连接任务,模型只看到包含2个单词的示例,然后对包含3个和4个单词的执行测试,对抛硬币任务中可能被抛的次数做同样的处理。

image-20241211154304392

image-20241211154318530

5.2 实验结果

image-20241211154720011

image-20241211154546341
mg-gTuNmIve-1739195670221)]

[外链图片转存中…(img-steeow6C-1739195670221)]

5.2 实验结果

[外链图片转存中…(img-Puirl4iM-1739195670221)]

[外链图片转存中…(img-bkQuA40W-1739195670221)]

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

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

相关文章

程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<10>

大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。 今天我们继续来复习指针… 目录 一、看一段代码二、 一维数组传参的本质三、冒泡排序3.1 基本思想四、二…

CNN|ResNet-50

导入数据 import matplotlib.pyplot as plt # 支持中文 plt.rcParams[font.sans-serif] [SimHei] # 用来正常显示中文标签 plt.rcParams[axes.unicode_minus] False # 用来正常显示负号import os,PIL,pathlib import numpy as npfrom tensorflow import keras from tensor…

吉祥汽车泰国首发,用 Unity 实现行业首创全 3D 座舱虚拟世界

11 月 19 日,均瑶集团吉祥智驱(以下简称“吉祥汽车”)首款纯电动汽车 JY AIR 在泰国首发。延续吉祥航空在飞行体验上的优势,吉祥汽车对 JY AIR 赋予了将航空级服务标准延伸至地面的使命,为用户提供一站式大出行体验。此…

【OpenCV】双目相机计算深度图和点云

双目相机计算深度图的基本原理是通过两台相机从不同角度拍摄同一场景,然后利用视差来计算物体的距离。本文的Python实现示例,使用OpenCV库来处理图像和计算深度图。 1、数据集介绍 Mobile stereo datasets由Pan Guanghan、Sun Tiansheng、Toby Weed和D…

Uniapp 原生组件层级过高问题及解决方案

文章目录 一、引言🏅二、问题描述📌三、问题原因❓四、解决方案💯4.1 使用 cover-view 和 cover-image4.2 使用 subNVue 子窗体4.3 动态隐藏原生组件4.4 使用 v-if 或 v-show 控制组件显示4.5 使用 position: fixed 布局 五、总结&#x1f38…

【数据结构初阶第十节】队列(详解+附源码)

好久不见。。。别不开心了,听听喜欢的歌吧 必须有为成功付出代价的决心,然后想办法付出这个代价。云边有个稻草人-CSDN博客 目录 一、概念和结构 二、队列的实现 Queue.h Queue.c test.c Relaxing Time! ————————————《有没…

250213-RHEL8.8-外接SSD固态硬盘

It seems that the exfat-utils package is still unavailable, even after enabling the RPM Fusion repository. This could happen if the repository metadata hasn’t been updated or if the package isn’t directly available in the RPM Fusion repository for RHEL 8…

游戏引擎学习第99天

仓库:https://gitee.com/mrxiao_com/2d_game_2 黑板:制作一些光场(Light Field) 当前的目标是为游戏添加光照系统,并已完成了法线映射(normal maps)的管道,但还没有创建可以供这些正常映射采样的光场。为了继续推进&…

Linux初始化 配置yum源

问题出现:(报错) 1 切换路径 2 备份需要操作的文件夹 3 更改 CentOS 的 YUM 仓库配置文件,以便使用阿里云的镜像源。 4 清除旧的yum缓存 5 关闭防火墙 6 生成新的yum缓存 7 更新系统软件包 8 安装软件包

【笛卡尔树】

笛卡尔树 笛卡尔树定义构建性质 习题P6453 [COCI 2008/2009 #4] PERIODNICF1913D Array CollapseP4755 Beautiful Pair[ARC186B] Typical Permutation Descriptor 笛卡尔树 定义 笛卡尔树是一种二叉树,每一个节点由一个键值二元组 ( k , w ) (k,w) (k,w) 构成。要…

Java String 类深度解析:内存模型、常量池与核心机制

目录 一、String初识 1. 字符串字面量的处理流程 (1) 编译阶段 (2) 类加载阶段 (3) 运行时阶段 2. 示例验证 示例 1:字面量直接赋值 示例 2:使用 new 创建字符串 示例 3:显式调用 intern() 注意点1: ⑴. String s1 &q…

探索顶级汽车软件解决方案:驱动行业变革的关键力量

在本文中,将一同探索当今塑造汽车行业的最具影响力的软件解决方案。从设计到制造,软件正彻底改变车辆的制造与维护方式。让我们深入了解这个充满活力领域中的关键技术。 设计软件:创新车型的孕育摇篮 车辆设计软件对于创造创新型汽车模型至…

TikTok走红全球:中国短视频平台以全新姿态登陆海外市场

在数字化浪潮中,短视频已经成为全球年轻人表达自我、分享生活的重要方式。TikTok,这个起源于中国的短视频平台,以其独特的魅力和创新的功能在全球范围内迅速走红。本文将探讨TikTok如何以全新姿态登陆海外市场,并分析其成功的关键…

计算机毕业设计Python旅游评论情感分析 NLP情感分析 LDA主题分析 bayes分类 旅游爬虫 旅游景点评论爬虫 机器学习 深度学习

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

day9手机创意软件

趣味类 in:记录趣味生活(通用) 魔漫相机:真人变漫画(通用) 活照片:让照片活过来(通用) 画中画相机:与众不同的艺术 年龄检测仪:比一比谁更年轻&#xf…

A001基于SpringBoot实现的小区物业管理系统

系统介绍 基于SpringBoot实现的小区物业管理系统是为物业管理打造的一款在线管理平台,它可以实时完成信息处理,对小区信息、住户等进行在线管理,使其系统化和规范化。 系统功能说明 1、系统共有物业、业主角色,物业拥有系统最高…

【Uniapp】关于实现下拉刷新的三种方式

在小程序、h5等地方中,常常会用到下拉刷新这个功能,今天来讲解实现这个功能的三种方式:全局下拉刷新,组件局部下拉刷新,嵌套组件下拉刷新。 全局下拉刷新 这个方式简单,性能佳,最推荐&#xf…

深入理解DeepSeek与企业实践(二):32B多卡推理的原理、硬件散热与性能实测

前言 在《深入理解 DeepSeek 与企业实践(一):蒸馏、部署与评测》文章中,我们详细介绍了深度模型的蒸馏、量化技术,以及 7B 模型的部署基础,通常单张 GPU 显存即可满足7B模型完整参数的运行需求。然而&…

数据结构-链式二叉树

文章目录 一、链式二叉树1.1 链式二叉树的创建1.2 根、左子树、右子树1.3 二叉树的前中后序遍历1.3.1前(先)序遍历1.3.2中序遍历1.3.3后序遍历 1.4 二叉树的节点个数1.5 二叉树的叶子结点个数1.6 第K层节点个数1.7 二叉树的高度1.8 查找指定的值(val)1.9 二叉树的销毁 二、层序…

【云安全】云原生- K8S etcd 未授权访问

什么是etcd? etcd 是一个开源的分布式键值存储系统,主要用于存储和管理配置信息、状态数据以及服务发现信息。它采用 Raft 共识算法,确保数据的一致性和高可用性,能够在多个节点上运行,保证在部分节点故障时仍能继续提…