使用思维链(Chain-of-thoughts)提示在大型语言模型中引出推理

news2025/1/15 6:44:13

语言模型(LM)在NLP领域的发展速度非常快,特别是在大型语言模型(LLM)方面:当语言模型具有大量参数或权重/系数时,它们被称为“大型”。这些“大型”语言模型拥有处理和理解大量自然语言数据的能力。

LLM被用于一系列自然语言任务,如文本摘要、情感分析、主题分类、语言翻译、自动完成等。扩展LM的一些广泛的好处包括提高性能、泛化和效率,虽然这些模型执行的大多数任务都受益于扩展,但像算术、常识和符号推理这样的任务在扩展模型时没有看到性能的提高。

这就引出了“思维链提示”的方法,通过生成一系列中间推理步骤或思维链来提高法LLM 的复杂推理能力。这种方法基于两个想法:1、考虑到LM可以被训练来生成自然语言的中间步骤,增加自然语言的基本原理可能是一个额外的好处;2、当通过上下文少样本方法提示时,LLM在问答任务中取得了显著的成功。但在实践中,为训练训创造大量的理由是费时费力的。所以将这两种思想结合起来,就产生了一个模型,只要有几个由<input, chain-of-though, output>三元组组成的提示,模型的性能会得到改善。

思维链提示

思维链是解决推理任务时人类思维过程遵循的一系列典型步骤。它可以帮助我们将一个问题分解成一系列的子问题,然后逐个解决这些子问题,从而得出最终的答案。在大型语言模型中,思维链可以用来引出推理。思路链方法带来以下好处:

  • 由于问题可以分为多个步骤,因此可以将额外的计算分配给复杂的问题
  • 推理路径提供了一个调试模型可能出错的窗口
  • 任何一般的 LLM 都可以通过提供思维链提示来为复杂的推理任务做准备

数学推理

上图显示了 LLMs 在数学单词问题上使用思维链提示的表现结果。y 轴是结果表现,x 轴上是模型大小的比例。

  • 只有在足够大的模型中才能看到思维链提示为 LLM 带来的好处。因此大型模型是必要的,但还不够
  • 对于更复杂的推理问题,性能的提高更大。鉴于 GSM8K 与 MAWPS 中问题的复杂性降低,GSM8K 中的性能增益对于大型模型几乎翻了一番
  • 大型 GPT 和 PaLM 模型中的思维链提示的性能与之前的 SOTA 方法相当,其中包括在标记的训练数据集上微调模型
  • 除了上述几点外,对 PaLM 62B 错误的分析表明,当模型缩放到 540B 时,很大一部分的缺失和语义理解都得到了修复,这进一步强化了通过思维链提示提高LLM推理能力需要大模型的观点

消融实验

性能改进将根据三种不同的思维链提示进行评估

仅限方程:系统提示模型仅在响应数学应用题时输出方程式。这些模型在 GSM8K 上的这个提示上表现不佳,这表明在没有给出思维链中的步骤的情况下,这些问题的语义对于模型来说太具有挑战性,无法为它们输出方程。

仅进行变量计算:这种变化背后的思想是模型在复杂问题的计算上花费(令牌)更多。在分离提示时,提示的中间步骤是有用的。

回答后的思维链:这种变化测试思维链是否只是让模型访问预训练知识。给出答案后产生思维链的提示,其表现与基线相同,这表明在思维链的中间步骤中可用的推理比激活知识更必要。

稳健性研究

评估从GSM8K训练集到LaMDA 137B的不同注释和示例给出的思维链提示的稳健性时,所有这些思维链提示的变体都大大优于标准提示。

除算术推理外,还对模型进行了常识性和符号推理评价

常识推理

虽然PaLM模型在CSQA上的性能提升很小,但它在StrategyQA上的表现超过了之前的SOTA,对于运动理解上也超过了一个独立的人类运动爱好者。

符号推理

下图显示了PaLM模型在域内(示例和测试中的步骤数相同)和域外/OOD(测试中的步骤多于示例)上的评估结果。尽管对于域内测试,已经在思维链中提供了完美的解决方案结构,但小型模型表现不佳。

总结

虽然思维链提示假设建立在人类推理过程的基础上,但神经网络是否“推理”的问题仍然没有答案。在调优的情况下,手动提供示例的成本可能非常高,因为此过程将需要更多的示例。虽然使用示例的模型遵循“正确”推理路径的可能性很高,但不能保证这一点。为了实现思维链推理能力,模型必须“大”,这一先决条件使得它在实际应用中的使用代价高昂。

这篇论文的研究表明,思维链提示提高了模型在算术、常识和符号推理任务上的性能,但扩大模型可以执行的任务范围和降低这些模型改进推理的尺度阈值是潜在的广泛研究领域。

论文地址:https://avoid.overfit.cn/post/f281ad2e54614d029c8061cc693376ed

介绍这篇论文的另外一个原因是可以使用思维链提高ChatGPT的结果,因为思维链是一种逐步分解问题、逐步推理的思考方法,可以引导模型生成更准确、更有逻辑性的答案。

  1. 对问题进行分解:将一个大问题分解成多个小问题,逐个解决。这样可以使模型更好地理解问题的结构,提高问题的细节处理能力。
  2. 比较和对比:将多个对象进行比较和对比,找出它们之间的共同点和不同点。这样可以使模型更好地理解对象之间的关系,提高其分类和判断能力。
  3. 推理和预测:根据已知的信息,推断可能的结果。这样可以使模型更好地处理复杂的问题,提高其推理和预测能力。
  4. 归纳和演绎:从具体情况中推导出一般规律,或者从一般规律中推导出具体情况。这样可以使模型更好地理解问题的本质和规律,提高其概括和推广能力。
  5. 假设实验:通过模拟实验来推断事物的本质或规律。这样可以使模型更好地理解事物的属性和行为,提高其推断和预测能力。

通过使用思维链的方法,可以帮助ChatGPT更好地理解问题,提高其推理、预测、分类和判断能力。在输入问题时,可以尝试将问题分解成多个子问题,然后逐个解决;在生成回答时,可以尝试进行比较和对比、推理和预测、归纳和演绎等操作,从而生成更准确、更有逻辑性的答案。所以无论你看不看这篇论文,它的思路对我们来说是非常重要的。

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

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

相关文章

【Java EE】-Servlet(三) MessageWall

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【JavaEE】 分享: 寂寞会发慌&#xff0c;孤独是饱满的。——史铁生《命若琴弦》 主要内容&#xff1a;前后端交互接口协商&#xff0c;约定好&#xff0c;使用什么数据格式传输&…

变现 起航篇! 手把手交你用chatgpt快速生成视频!

Chatgpt 很多同学都用的非常熟练了&#xff0c;但是都停留在文字阶段&#xff0c;有没有更好玩的用法&#xff0c;可以深度的利用chatgpt做一些事情呢&#xff1f; 今天菜哥就找一个方法可以快速利用chatgpt制作视频&#xff0c;整个过程大概3分钟&#xff0c;非常有趣&#xf…

浪涌保护器的工作类型及其应用

所有电路系统中的电气设备都需要浪涌保护器的保护支持。这主要取决于器件的内部电路如何能够处理电压波动。如果器件出现输入电压波动&#xff0c;则会导致器件损坏&#xff0c;因为电源电压的波动可能对器件有害。在本文中&#xff0c;我们将了解什么是浪涌保护器&#xff0c;…

【源码+个人总结】Spring 的 三级缓存 解决 循环依赖

Spring可以通过以下方法来避免循环依赖&#xff1a; 构造函数注入&#xff1a;使用构造函数注入来注入依赖项&#xff0c;这是一种比较安全的方式&#xff0c;因为在对象创建时就会注入依赖项&#xff0c;可以避免循环依赖。 Setter方法注入&#xff1a;使用Setter方法注入依赖…

云开发谁是卧底线下小游戏发牌助手微信小程序源码

源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/87614365 云开发谁是卧底线下小游戏源码&#xff0c;发牌助手微信小程序源码。 “谁是卧底OL”是一个非常有趣&#xff0c;风靡全国的比拼语言表述能力、知识面与想象力的游戏。 谁是卧底OL是一款由开发…

Notepad++下载安装NppFTP插件

文章目录 一、Notepad内下载安装NppFTP插件1.打开Notepad——插件——插件管理2.找到NppFTP插件——点击安装3.安装完成 二、直接下载安装NppFTP插件1.网盘下载2.将下载好的NppFTP插件放入到Notepad\plugins的插件目录下3.重启Notepad 三、Notepad下载总结 一、Notepad内下载安…

【刷题】142. 环形链表 II

142. 环形链表 II 一、题目描述二、示例三、实现3.1 方法13.2 方法2 142. 环形链表 II 一、题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 nex…

前端学习 - 淼哥学Vue

如何判断数据是否受Vue管理&#xff0c;数据&#xff08;对象&#xff0c;数组&#xff0c;字符串等&#xff09;能否响应式更新&#xff1f; 即查看数据是否有对应get/set方法&#xff0c;数组没有对应get/set方法&#xff0c;故操作数组要通过其封装好的变更方法 变更方法 …

js高级知识汇总一

目录 1.怎么理解闭包&#xff1f; 2.闭包的作用&#xff1f; 3.闭包可能引起的问题&#xff1f; 4.变量提升 5.函数动态参数 6.剩余参数 ...&#xff08;实际开发中提倡使用&#xff09; 7.展开运算符 8.箭头函数 9.解构赋值&#xff08;数组、对象&#xff09; 10 创…

一文总结动态规划

动态规划 一、背包问题1 问题定义2 问题分类3 解题模板01背包最值问题剩余背包问题 4 例题分析LeetCode1049.最后一块石头的重量II 二、区间动态规划1 解题模板2 例题分析牛客.石子合并 总结与分析 一、背包问题 1 问题定义 如何确定一个题目是否可以用背包问题解决 背包问题…

给儿童使用护眼台灯怎么样选择更好?专家建议孩子买台灯

随着娃越长越大&#xff0c;虽然还在读幼儿园&#xff0c;但平时免不了要写写画画&#xff0c;之前一直在这个桌子上&#xff0c;台灯是一个赠送的LED货色&#xff0c;那个频闪啊&#xff0c;于是趁着当地商场活动先入了张学习桌椅&#xff0c;至于台灯嘛当然要选个好的了&…

21财经专访徐亚波博士:AI恒纪元时代,数说故事踏浪新征途

21世纪经济报道【创业投资】栏目&#xff0c;一直致力于寻找中国最有生命力和创造力的快速成长公司&#xff0c;探秘其背后的新兴资本推动力。为此&#xff0c;数说故事创始人兼CEO徐亚波博士接受了21世纪经济报道的专访。 近年来&#xff0c;大数据产业已经成为推动数字经济发…

【C语言】都玩过三子棋游戏把,但你知道怎么用C语言实现三子棋游戏吗?让我来手把手教你。

三子棋游戏 1.前言2.功能分析2.1主函数设计及菜单设计2.2打印棋盘与棋盘初始化2.3玩家下棋2.4电脑下棋2.5判断输赢 3.game.h头文件展示4.text.c源文件文件展示5.game.c源文件文件展示 所属专栏&#xff1a;C语言 博主首页&#xff1a;初阳785 代码托管&#xff1a;chuyang785 感…

Android 开发中高阶函数的 10 个实例

Android 开发中高阶函数的 10 个实例 Kotlin 是一种现代编程语言&#xff0c;由于其表现力、简洁性和多功能性而变得越来越流行。它的关键特性之一是支持高阶函数&#xff0c;这使您可以编写更简洁、更灵活的代码。高阶函数是一种将一个或多个函数作为参数或返回一个函数作为结…

python+java+nodejs基于vue的企业人事工资管理系统

根据系统功能需求分析&#xff0c;对系统功能的进行设计和分解。功能分解的过程就是一个由抽象到具体的过程。 作为人事数据库系统&#xff0c;其主要实现的功能应包括以下几个模块&#xff1a; 1.登录模块 登录模块是由管理员、员工2种不同身份进行登录。 2.系统管理模块 用户…

工具抓包Charles配置HTTPS步骤

charles抓取HTTPS设置&#xff0c;详细踩坑版 写这篇文章的背景就是&#xff0c;每次我在一台新电脑上用charles抓包时&#xff0c;总是因为各种原因无法抓到https请求&#xff0c;每个百度出来的回答又不是那么详细&#xff0c;需要通过几篇回答才能解决过程中的各种问题&…

C++程序员的职业前景怎么样?来谈谈我自己的想法

我之前提到了程序员在二线城市的大概待遇。今天&#xff0c;我要说一下普通程序员的职业前景。因为最初阶段的工资可能比较高&#xff0c;但如果没有可持续性&#xff0c;这就不是一个特别好的工作。 从我自身的经验来看&#xff0c;我们公司的程序员主要有两条路线。一条是纯…

【存储数据恢复】NetApp存储WAFL文件系统数据恢复案例

存储数据恢复环境&#xff1a; NetApp存储设备&#xff0c;WAFL文件系统&#xff0c;底层是由多块硬盘组建的raid磁盘阵列。 存储故障&#xff1a; 工作人员误操作导致NetApp存储内部分重要数据被删除。 存储数据恢复过程&#xff1a; 1、将存储设备的所有磁盘编号后取出&…

软考A计划-常用公式复习

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

使用Nginx做反向代理

使用Nginx做反向代理 文章目录 使用Nginx做反向代理代理HTTP请求代理HTTPS请求举个大栗子 代理HTTP请求 按照以下步骤使用Nginx做反向代理&#xff1a; 编辑 Nginx 的配置文件。默认情况下&#xff0c;Nginx 的配置文件位于 /etc/nginx/nginx.conf。 sudo nano /etc/nginx/ngi…