摘要

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

在三种大型语言模型上的实验表明,思维链提示能够提升模型在算术、常识和符号推理任务上的表现。实验结果非常显著。例如,仅使用八个思维链示例提示PaLM 540B,就在数学文字题基准GSM8K上达到了最先进的准确率,甚至超越了经过微调并带有验证器的GPT-3。

在这里插入图片描述

1.引言

自然语言处理领域最近因语言模型的发展而发生了革命性变化(Peters 等,2018;Devlin 等,2019;Brown 等,2020 等)。扩大语言模型的规模已被证明带来多方面的好处,例如提升性能和样本效率(Kaplan 等,2020;Brown 等,2020 等)。然而,仅仅增加模型规模并不足以在算术、常识和符号推理等具有挑战性的任务上取得高性能(Rae 等,2021)。

本研究探讨了一种简单方法,如何激发大型语言模型的推理能力,该方法基于两个核心思想。首先,算术推理技术可以通过生成引导至最终答案的自然语言推理过程获益。此前的工作使模型具备了生成自然语言中间步骤的能力,这包括从零开始训练(Ling 等,2017)或对预训练模型进行微调(Cobbe 等,2021),此外还有使用形式语言而非自然语言的神经符号方法(Roy 和 Roth,2015;Chiang 和 Chen,2019;Amini 等,2019;Chen 等,2019)。其次,大型语言模型带来了通过提示实现上下文内少量样本学习的令人兴奋的可能性。也就是说,不需要针对每个新任务微调单独的语言模型检查点,而是可以简单地通过“提示”模型几个输入-输出示例来演示任务。令人惊讶的是,这种方法已在多种简单问答任务中取得了成功(Brown 等,2020)。

在这里插入图片描述

上述两种方法均存在关键限制。对于增强推理过程的训练和微调方法,制作大量高质量的推理步骤成本较高,这比普通机器学习中使用的简单输入-输出对复杂得多。而传统的少样本提示方法(如Brown等,2020年所用)在需要推理能力的任务上表现不佳,且随着语言模型规模的增大,性能提升往往不明显(Rae等,2021年)。本文结合了这两种思想的优势,同时避免了它们的缺陷。具体而言,我们探索了语言模型在推理任务中利用少样本提示的能力,提示中包含三元组:〈输入,推理链,输出〉。推理链是一系列中间的自然语言推理步骤,最终导向答案,我们将这种方法称为“推理链提示法(chain-of-thought prompting)”。图1展示了一个示例提示。

我们在算术、常识和符号推理基准测试中进行了实证评估,结果显示推理链提示法优于标准提示,有时差距显著。图2展示了其中一个结果——在数学文字题基准GSM8K(Cobbe等,2021)上,使用PaLM 540B的推理链提示法远超标准提示,取得了新的最先进性能。仅通过提示的方式尤为重要,因为它不需要大量训练数据,并且单一模型检查点可以在多种任务上通用而不损失表现。此工作强调了大型语言模型如何通过少量示例和自然语言的任务信息学习(相比于通过大量训练数据自动学习输入输出之间的模式)。

2 推理链提示法

想象一下自己在解决复杂推理任务(例如多步骤的数学文字题)时的思考过程。通常,我们会将问题分解为若干中间步骤,逐步求解,最后给出答案:“简给妈妈2朵花后,她还有10朵……然后她给爸爸3朵后,就剩7朵……所以答案是7。”本文的目标是赋予语言模型生成类似推理链的能力——即生成一系列连贯的中间推理步骤,最终得到问题的答案。我们将展示,只要在少样本提示中提供了推理链的示范,足够大的语言模型就能生成这样的推理链。

图1展示了一个模型为了解决一题数学文字题而生成的推理链,这道题如果不使用推理链,模型本来会答错。此处的推理链类似于解题过程,也可以看作是一个解决方案,但我们仍称之为推理链,以更好地体现它模拟了逐步思考的过程(而且通常解答和解释是在最终答案之后给出的,见Narang等,2020;Wiegreffe等,2022;Lampinen等,2022等研究)。

推理链提示法作为促进语言模型推理能力的手段,具有以下几个显著优势:

  1. 首先,推理链原则上允许模型将多步骤问题拆解成中间步骤,意味着可以为需要更多推理步骤的问题分配额外计算资源。
  2. 其次,推理链为模型的行为提供了可解释的窗口,帮助理解模型如何得出某一答案,并为调试推理路径中的错误提供机会(尽管完整刻画支持答案的计算过程仍是一个开放问题)。
  3. 第三,推理链推理可以应用于数学文字题、常识推理和符号运算等任务,且原则上适用于任何人类能通过语言解决的任务。
  4. 最后,只需在少样本提示示例中加入推理链示范,就能轻松在足够大的现成语言模型中激发推理链推理能力。

在实证实验中,我们将观察推理链提示法在算术推理(第3节)、常识推理(第4节)和符号推理(第5节)上的效用。

3 算术推理

我们首先考虑如图1所示形式的数学文字题,这类题用于测量语言模型的算术推理能力。尽管对人类来说很简单,但算术推理是语言模型经常感到困难的任务(见Hendrycks等,2021;Patel等,2021等)。令人惊讶的是,使用推理链提示法并配合5400亿参数的语言模型,在多个任务中表现可与针对特定任务微调的模型相媲美,甚至在具有挑战性的GSM8K基准测试(Cobbe等,2021)上取得了新的最先进成绩。

3.1 实验设置

我们在多种语言模型和多个基准测试上探索推理链提示法的效果。

基准测试。我们考虑以下五个数学文字题基准数据集:
(1) GSM8K数学文字题基准(Cobbe等,2021);
(2) 结构多样的SVAMP数学文字题数据集(Patel等,2021);
(3) 多样化数学文字题的ASDiv数据集(Miao等,2020);
(4) 代数文字题的AQuA数据集;
(5) MAWPS基准(Koncel-Kedziorski等,2016)。
示例题目见附录表12。

标准提示法。作为基线,我们采用Brown等(2020)推广的标准少样本提示法,即给语言模型提供输入-输出对的上下文示例,之后模型对测试样本给出预测。示例格式为问题和答案,模型直接给出答案,如图1左侧所示。

推理链提示法。我们提出的方法是在少样本提示的每个示例中,增加与答案对应的推理链,如图1右侧所示。由于大多数数据集仅有评估集,我们手工编写了一组包含八个推理链的少样本示例用于提示——图1右侧展示了其中一个推理链示例,完整示例集见附录表20。(这些示例未经过提示工程处理;第3.4节和附录A.2讨论了方法的鲁棒性。)

为了验证这种形式的推理链提示法是否能够在多种数学文字题上成功激发推理能力,我们对除AQuA外的所有基准均使用了同一组八个推理链示例。由于AQuA是多选题而非自由回答,我们使用了训练集中四个示例及其解答,见附录表21。

在这里插入图片描述

语言模型。我们评估了五个大型语言模型。
第一个是GPT-3(Brown等,2020),我们使用了text-ada-001、text-babbage-001、text-curie-001和text-davinci-002,这些模型大致对应参数规模为3.5亿、13亿、67亿和1750亿的InstructGPT模型(Ouyang等,2022)。
第二个是LaMDA(Thoppilan等,2022),包含参数规模为4.22亿、20亿、80亿、680亿和1370亿的多个模型。
第三个是PaLM,拥有参数规模为80亿、620亿和5400亿的模型。
第四个是UL2 20B(Tay等,2022),第五个是Codex(Chen等,2021,OpenAI API中的code-davinci-002)。

我们通过贪心解码从模型中采样(尽管后续工作表明,链式思维提示法可通过对多次生成结果进行多数投票以提升性能(Wang等,2022a))。

对于LaMDA,我们报告了五个随机种子下的平均结果,每个种子对应一组不同随机打乱的示例顺序。由于LaMDA实验中不同种子的结果方差不大,为节省计算资源,其它模型仅报告单一示例顺序的结果。

3.2 结果

链式思维提示法的最强结果总结在图4中,所有模型集合、模型规模和基准测试的实验输出详见附录表2。有三个关键要点:首先,图4显示链式思维提示是一种随模型规模自然出现的能力(Wei等,2022b)。也就是说,对于小规模模型,链式思维提示并不会带来性能提升,只有当模型规模达到约1000亿参数时,才开始产生性能提升。我们通过定性分析发现,小规模模型虽然能够生成流畅的链式思维文本,但逻辑不够严密,反而导致表现低于标准提示法。

第二,链式思维提示在更复杂的问题上带来更大的性能提升。例如,在GSM8K数据集(基线表现最低的数据集)上,最大的GPT和PaLM模型的性能提升超过一倍。相反,对于MAWPS中最简单的SingleOp子集(只需要一步即可解决的问题),性能提升则要么是负面,要么非常小(详见附录表3)。

第三,使用GPT-3 175B和PaLM 540B的链式思维提示,在性能上优于以往通常通过在标注训练集上微调任务专用模型所达到的最新水平。图4显示,PaLM 540B通过链式思维提示,在GSM8K、SVAMP和MAWPS上达到了新的最先进成绩(尽管标准提示在SVAMP上已超过了之前的最好成绩)。在另外两个数据集AQuA和ASDiv上,PaLM使用链式思维提示的表现也接近最先进水平,差距不到2%(详见附录表2)。

为了更好地理解链式思维提示为何有效,我们对LaMDA 137B在GSM8K上的模型生成的思维链进行了人工检查。在50个模型给出正确最终答案的随机样本中,除了两例偶然得到正确答案的情况,所有生成的思维链在逻辑和数学上均正确(详见附录D.1及表8中的正确示例)。我们还随机检查了50个模型答错的样本,分析总结显示,46%的思维链几乎正确,仅存在一些小错误(如计算器错误、符号映射错误或缺少一步推理),而其余54%的思维链则存在语义理解或连贯性上的重大错误(详见附录D.2)。

为了探究模型规模为何能提升链式思维的推理能力,我们对PaLM 62B的错误进行了类似分析,并比较这些错误是否被扩展到PaLM 540B时修正。结果表明,将模型扩展到540B参数,修正了62B模型中大量缺失一步推理和语义理解的错误(详见附录A.1)。

在这里插入图片描述

3.3 消融研究

使用链式思维提示带来的性能提升,引出了一个自然的问题:是否通过其他类型的提示也能带来类似的性能提升?图5展示了三个链式思维变体的消融实验,具体如下。

仅输出方程。链式思维提示之所以有效的一个原因可能是它生成了需要计算的数学方程,因此我们测试了一个变体,模型仅被提示先输出数学方程,再给出答案。图5显示,仅输出方程的提示对GSM8K帮助不大,这暗示GSM8K中问题的语义过于复杂,难以在没有链式思维中自然语言推理步骤的情况下,直接转换成方程。然而,对于只有一步或两步问题的数据集,我们发现仅输出方程的提示确实能提升性能,因为这些问题的方程可以很容易地从问题中推导出来(详见附录表6)。

变量计算。另一种直觉认为,链式思维让模型能在更复杂的问题上投入更多计算(即生成更多中间推理步骤的标记)。为了将变量计算的效果与链式思维推理区分开,我们测试了一个变体:模型被提示输出一串点(“: : :”),点的数量等于解题所需方程字符数。这个变体的表现与基线差不多,说明单纯的变量计算并不是链式思维提示成功的原因,表明通过自然语言表达中间步骤确实带来了额外价值。

答案后链式思维。链式思维提示的另一个潜在好处可能是帮助模型更好地访问预训练期间获得的相关知识。为此,我们测试了另一种设置——链式思维提示仅在答案之后给出,以检验模型是否真正依赖链式思维过程来得出最终答案。这个变体的表现与基线相当,表明链式思维中体现的顺序推理过程对于提升性能有重要作用,不只是激活已有知识那么简单。

在这里插入图片描述

3.4 Chain of Thought 的鲁棒性

示例的敏感性是提示方法中的一个关键考虑因素——例如,改变few-shot示例的排列顺序,可能导致GPT-3在SST-2任务上的准确率从接近随机的54.3%波动到接近最先进水平的93.4%(Zhao等,2021)。在本节的最后一小节中,我们评估了不同标注者编写的链式思维的鲁棒性。除了上述使用标注者A编写的链式思维外,本文的另外两位合著者(标注者B和C)也独立为相同的few-shot示例编写了链式思维(见附录H)。标注者A还编写了另一组比原始版本更简洁的链式思维,风格参考了Cobbe等(2021)中给出的解题示例。

图6展示了LaMDA 137B模型在GSM8K和MAWPS数据集上的实验结果(其他数据集的消融结果见附录表6和表7)。虽然不同链式思维注释之间存在差异,这在使用基于示例的提示时是预料之中的(Le Scao和Rush,2021;Reynolds和McDonell,2021;Zhao等,2021),但所有链式思维提示集均远超标准基线。这一结果表明,链式思维的成功应用不依赖于特定的语言风格。

在这里插入图片描述

温馨提示:
阅读全文请访问"AI深语解构" Cot2:思维链提示激发大型语言模型的推理能力

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go交易数据后端

地址 https://gitee.com/EEPPEE_admin/go-stock-line-trading-datahttps://github.com/jerryshell/midas 需求 为了替代rust后端爬虫端: 爬取东方财富数据到index-data目录server端: 项目主要内容 todo 替代https://github.com/jerryshell/midas的前端量化概念性理解扩展: 存储…

灵巧手概览

第一章 灵巧手的技术演进与核心价值 1.1 技术演进的五个阶段 仿生学启蒙阶段(1960-1980) 1968年斯坦福大学首台3自由度机械夹爪标志机器人操作技术开端,1973年MIT提出"仿生手"概念,但受限于材料和控制技术,…

在设计提示词(Prompt)时,关于信息位置的安排z怎么 结合模型特性和任务目标

在设计提示词(Prompt)时,关于信息位置的安排z怎么 结合模型特性和任务目标 在设计提示词(Prompt)时,关于信息位置的安排确实需要结合模型特性和任务目标。从自注意力机制的原理及应用场景来看,关键信息的位置选择需遵循以下启示,并结合具体场景灵活调整: 一、核心启示…

七、性能优化

目录 1. 如何检测Flutter应用的性能问题?2. 什么是重绘边界(Repaint Boundary)?3. 如何避免不必要的重建?4. const 构造函数在优化中起什么作用?5. 如何优化长列表的性能?6. 如何减少应用启动时…

Webpack优化详解

Webpack 5提供了一系列工具和功能,可以在本地开发和线上构建过程中进行优化,以提高开发效率和构建性能。 1. 本地开发优化 1.1. 开启模块热替换(HMR) 模块热替换可以在不刷新整个页面的情况下更新模块,提高开发效率。 const webpack = require(webpack);module.export…

latency 对功耗的影响

文章目录 1、Connection Interval(连接间隔) vs. Latency(从机延迟)2、为什么不能完全依赖 Connection Interval?3、什么时候可以不用 Latency?4、如何正确配置?5、结论调节连接间隔(Connection Interval)确实可以直接影响通信频率和功耗,但 Latency(从机延迟)仍然…

10分钟搭建 PHP 开发环境教程

下载、安装 Xserver 下载 php 过程中如果提示需要安装 vc 运行环境,按照引导下载安装即可 安装 nginx 安装 Mysql 支持多个版本同时安装 下载 php 过程中如果提示需要安装 vc 运行环境,按照引导下载安装即可mysql 默认用户名为 root,默认密…

设计模式(六)

备忘录模式(Memento Pattern)详解 一、核心概念 备忘录模式允许在不破坏封装性的前提下,捕获并保存对象的内部状态,以便后续恢复。该模式通过三个角色实现: 原发器(Originator):需…

迪杰斯特拉算法之解决单源最短路径问题

迪杰斯特拉算法 迪杰斯特拉(Dijkstra)算法是典型**最短路径算法**,用于计算一个结点到其它结点的最短路径。它的主要特点是以起始点为中心向外扩展(利用广度优先搜索思想),直到扩展到终点。迪杰斯特拉(Dijkstra)算法最佳应用-最短路径 战争时期&#xf…

风平浪静、无事发生

2025年7月4日,16~25℃,阴雨紧急不紧急重要1.备考D1.物理备课不重要遇见:风平浪静、无事发生!感受或反思:体检的结果收到了,医生建议多吃绿蔬多喝水!多运动,少和喝饮料........

QtitanRibbon打造现代办公软件新体验:提升效率的专业界面解决方案

在现代办公环境中,无论是日常公文处理、文档编辑、任务协同还是数据分析,桌面办公软件仍扮演着不可替代的角色。然而,许多传统系统依旧使用菜单繁杂、图标混乱、交互老旧的界面,用户操作效率低、上手慢、满意度差。 QtitanRibbon…

MSPM0G3507学习笔记(一) 重置版:适配逐飞库的ti板环境配置

由于使用逐飞库,很多东西其实都不用配置了,也不需要自己移植空工程了,于是写一个重置版的环境配置教程。 1.下载芯片支持包 MSPM0G3507芯片支持CCS、IAR、KEIL等IDE,选择KEIL作为开发工具,首先安装芯片支持包。 前往…

如何查看自己电脑的显卡信息?

右键单击底部导航栏选择“任务管理器” 点开之后 选择左侧的性能一栏 查看你的显卡的信息

使用Go语言实现智能EXE文件重命名工具

文章目录 使用Go语言实现智能EXE文件重命名工具 🛠️引言工具功能概述核心技术实现Windows版本信息API调用大模型API集成交互式命令行界面 完整工作流程实际应用示例附录完整代码 使用Go语言实现智能EXE文件重命名工具 🛠️ 引言 在日常开发和软件管理…

3.1.1.9 安全基线检查项目九:检查是否设置限制su命令用户组

限制su配置 关于限制su命令检查项,对于大多数的Linux(Redhat系列、Debian系列),进行本项检查很简单。只需要检查/etc/pam.d/su中是否配置了: auth required pam_wheel.so use_uid [group用户组名] 有些资料讲说需要有…

【加解密与C】对称加密(四) RC4

RC4算法概述RC4(Rivest Cipher 4)是由Ron Rivest在1987年设计的流密码算法,广泛应用于SSL/TLS、WEP等协议中。其核心是通过密钥调度算法(KSA)和伪随机生成算法(PRGA)生成密钥流,与明…

医科+AI!和鲸支持南京医科大学医学数据挖掘课程实践教学落地

近两年,生物统计学更多地进入了公众视野。作为统计学、医学与计算机科学交叉的前沿学科,伴随测序技术革新与人工智能算法突破,其发展前景也被十分看好。 市场需求的背后是人才需求的爆发与人才培养的挑战。目前,生物统计学专业在国…

亚马逊云科技中国峰会:数新智能CTO原攀峰详解一站式AI原生数智平台DataCyber在Amazon EKS的实践

6月20日,在上海世博中心举办的亚马逊云科技中国峰会 “在 Amazon EKS 上运行高性能生成式 AI 应用” 分论坛圆满结束。本次分论坛聚焦于 Amazon EKS 在生成式 AI 应用领域的强大支撑作用,数新智能CTO原攀峰凭借其深厚的技术背景和丰富的实践经验&#xf…

32岁入行STM32迟吗?

作为一个在嵌入式领域摸爬滚打了近10年的老兵,看到这个问题时心情五味杂陈。32岁入行STM32迟吗?说实话,如果你问我这个问题的时候我还是24岁的小白,我可能会觉得"哇,32岁才开始学单片机,是不是有点晚了…

OneCode 智能化UI布局与定位:注解驱动的视觉编排艺术

在现代企业级应用开发中,UI布局的灵活性与精确性直接影响用户体验与开发效率。OneCode框架创新性地采用注解驱动开发(Annotation-Driven Development)模式,通过分层注解体系实现UI组件的声明式布局与精准定位。本文将深入解析OneCode的UI布局技术栈及其在…