(论文总结)思维链激发LLM推理能力

研究背景&动机

背景:扩大模型规模已被证实具有提升模型性能和模型效率的功效,但是LLM对于完成推理、算术任务仍有较大不足。

动机:从之前的应用和研究中得知,可以用生成自然语言解释、使用神经符号等形式语言的方法来提高大模型的算术推理能力,当时采用了从头预训练和微调模型的方法,耗费的成本较多;而且大模型具有根据少量文本提示进行上下文少样本学习的能力,使用少量输入输出示例即可提高LLM的推理性能,而不必对单独的检查点进行微调

主要贡献

贡献了一种通过上下文提示提升LLM推理能力的方法,并进行了不同大小模型在算数推理、常识推理和符号推理上的能力,以及其他相关研究。

研究细节

思维链

结合上述两种方式,用形式化自然语言撰写少量输入输出示例作为上下文提示,启发LLM进行泛化,从而提高LLM推理性能。

思维链(Chain of Thought,CoT)的最初形式是(输入,思维链,输出)。思维链可以被解释成一种解决方案,类似于人类在思考问题时逐步思考问题的过程,也就是链式思维。

CoT有诸多特性:

  1. CoT推理原则上适用于所有用人类语言完成的任务。
  2. CoT允许LLM把多步骤问题分解为中间步骤,这意味着可以让LLM把额外的计算分配给需要更多推理步骤的问题。(为什么?LLM本身并不能知道要分配额外的计算,会不会只是因为CoT的出现增大了问题的文本量,所以LLM自动分配了更多算力?)
  3. 只要在少样本实例中包含CoT,就可以在较大的模型中把它激发出来。

对比实验

对比:

标准提示vs思维链提示

标准提示:标准少样本提示方法

思维链提示:为标准少样本提示中的每个实例都添加一个思维链进行增强。对每一个测试数据集,都手动编写了一组八个思维链增强示例用于提示。每次输入时,随机选择八个中的一个作为示例。

算术推理

对五种大小不一的模型进行了测试,且随机种子造成的结果方差不大。

大致结论:

  1. CoT对LLM推理能力的增强是跟模型的参数大小有关的。参数较小的模型没有积极影响,只有在100B以上参数的LLM中使用CoT时才有明显效果。(为什么?)
  2. 在对多个数据集进行测试的时候,CoT提示下的LLM都表现出了明显的性能提升。对于参数量足够大的LLM而言,问题越复杂,模型的性能提升就越好。(这是否因为,问题复杂导致CoT需要足够长,而大参数的LLM恰好可以很好的学习这种更长的CoT?)
  3. 在GPT3 175B模型和PaLM 540B模型上,CoT的提升比在具体任务上微调相应模型还要大。(对于参数足够大的模型,CoT甚至比微调还有用?可能原因是对于较大的模型而言,如果进行微调,微调后的LLM相比用CoT少样本学习的LLM更难以对相关问题进行精准泛化,会使用微调前学习到的其他数据中的思考方式污染新学习到的CoT。LLM尝试进行过往知识的重新整合,但是并不总是成功。)
  4. CoT训练后的模型也经常出现错误,有的是诸如计算上的小失误,有的则是语义理解错误等大错误。这种错误可以通过增大模型参数量修正一部分。

消融研究:

分别进行了"CoT中只有数学方程"、“CoT中只有自然语言”、“先给答案后给思路”,最终结果都与基础提示相差不大。
消融研究结果

鲁棒性:

分别使用了不同标注人员撰写的不同风格的CoT提示,结果差别不大。

其他推理

常识推理:CoT对进行常识推理也有一定帮助。

符号推理:CoT可以帮助100B以上参数的大模型进行符号推理,并且可以进行一定的长度泛化。(需要指出的是,这里并没能给出LLM是否能生成更细致CoT的能力。例如,如果我的示例CoT中没有提到,LLM是否能给出特殊情况的考虑?是否能给出注意事项?对于某个较为含糊不清/语义模糊/笼统的步骤,能否给出更细致的推理,从而将其细化为多个步骤?)

灵感

多模态的CoT是否有可行性?或者说,给定一些工具和在一个任务中一串工具的操作描述,将他们构建成一种类似CoT的形式化自然语言,能否让LLM推理出新任务的解法?

LLM在提示下的思考粒度是否完全取决于CoT的粒度?提升LLM的思考推理能力除了1. 提升模型参数量 2. 选用思考过程更详细的训练集3. 用思维链进行提示 还有什么方法?像Deepseek-R1那样的自我否定的能力是否也是通过这三种方式实现的?是否跟Deepseek是混合专家模型(MoE)有关系?

LLM之所以能够进行分步骤的思考,是否是因为训练集中有着分步骤思考的案例?如果训练集中只有单纯的(输入、输出),少样本实例中也只有单纯的(输入、输出),LLM能否涌现出分步骤的能力?还是说实际上它不可能有这种创造性?现在所谓的LLM的创造性只是它基于预训练集和不断地微调实现的根据人类过往历史的组合爆炸?

是否可以通过对于小参数模型在这里插入图片描述
的预训练使用质量更高,逻辑性更强的训练集进行训练,从而提高小模型的性能?

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

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

相关文章

前后端开发概述:架构、技术栈与未来趋势

一、前后端开发的基本概念 1.1 什么是前后端开发? 前后端开发是 Web 开发的两个核心部分,各自承担不同的职责: 前端(Frontend) 负责网页的用户界面(UI)和用户体验(UX)…

anythingLLM结合searXNG实现联网搜索

1、docker-compose 部署searXNG GitHub - searxng/searxng-docker: The docker-compose files for setting up a SearXNG instance with docker. cd /usr/local git clone https://github.com/searxng/searxng-docker.git cd searxng-docker 2、修改 .env文件 # By default…

人形机器人科普

人形机器人(Humanoid Robot)是一种模仿人类外形和行为的机器人,通常具有头部、躯干、双臂和双腿等结构。它们的设计目标是与人类环境无缝交互,执行复杂的任务,甚至在某些领域替代人类工作。 1. 人形机器人的定义与特点…

【CICD】Ansible知识库

一、主机清单配置 1. 配置文件路径 默认路径 /etc/ansible/hosts 这是 Ansible 的全局默认库存文件路径,但许多用户可能不会直接使用它。项目目录或自定义路径 用户通常会为不同项目创建独立的库存文件,例如: 当前目录下的 hosts、inventor…

ArkUI-List组件

列表是一个复杂的容器,当列表项达到一定数量,使得列表内容超出其范围的时候,就会自动变为可以滚动。列表适合用来展现同类数据类型。 List的基本使用方法 List组件的构建声明是这个样子的 List(value?: {space?:number | string, initial…

Ubuntu实时读取音乐软件的音频流

文章目录 一. 前言二. 开发环境三. 具体操作四. 实际效果 一. 前言 起因是这样的,我需要在Ubuntu中,实时读取正在播放音乐的音频流,然后对音频进行相关的处理。本来打算使用的PipewireHelvum的方式实现,好处是可以直接利用Helvum…

【yolo】YOLO训练参数输入之模型输入尺寸

模型输入尺寸是YOLO训练和推理过程中非常重要的参数之一。YOLO要求输入图像的尺寸是固定的,通常为正方形(如416416、640640等)。这个尺寸直接影响模型的性能和速度。以下是对模型输入尺寸的详细介绍: 1. 模型输入尺寸的作用 统一…

【TI MSPM0】Timer学习

一、计数器 加法计数器:每进入一个脉冲,就加一减法计算器:每进入一个脉冲,就减一 当计数器减到0,触发中断 1.最短计时时间 当时钟周期为1khz时,最短计时时间为1ms,最长计时时间为65535ms 当时…

从WebRTC到嵌入式:EasyRTC如何借助大模型提升音视频通信体验

随着人工智能技术的快速发展,WebRTC与大模型的结合正在为音视频通信领域带来革命性的变革。WebRTC作为一种开源实时通信技术,以其低延迟、跨平台兼容性和强大的音视频处理能力,成为智能硬件和物联网设备的重要技术支撑。 而EasyRTC作为基于W…

使用brower use AI 代理自动控制浏览器完成任务

第一步:终端运行命令下载 brower use pip install browser-use 第二步: 终端运行命令下载playwright playwright install 第三步:新建test.py代码,粘贴复制以下代码 import asyncio import osfrom dotenv import load_doten…

自由学习记录(45)

顶点片元着色器(important) 1.需要在Pass渲染通道中编写着色器逻辑 2.可以使用cG或HLSL两种shader语言去编写Shader逻辑 3.代码量较多,灵活性较强,性能消耗更可控,可以实现更多渲染细节 4.适用于光照处理较少&#xf…

Quartus + VScode 实现模块化流水灯

文章目录 一、通过VScode编写Verilog代码二、模块化编程三、代码示例 一、通过VScode编写Verilog代码 1、下载Vscode 2、下载相关插件 搜索Verilog就会弹出有如图所示的插件,下载并安装 3、创建Quartus项目 4、创建完成后点击Tools,选择Options 然后在…

tryhackme——The Lay of the Land

文章目录 一、网络基础设施1.1 内网1.2 DMZ区1.3 网络枚举(Network Enumeration) 二、域环境三、用户和组管理四、安全解决方案4.1 基于主机的安全解决方案4.1.1 防病毒软件4.1.2 Microsoft Windows Defender4.1.3 主机防火墙4.1.4 安全事件记录与监控4.…

STM32---FreeRTOS消息队列

一、简介 1、队列简介: 队列:是任务到任务,任务到中断、中断到任务数据交流的一种机制(消息传递)。 FreeRTOS基于队列,实现了多种功能,其中包括队列集、互斥信号量、计数型信号量、二值信号量…

2025年了,5G还有三个新变化

最近舆论开始讨论5G为什么不火了?5G是不是停滞发展了。 实际上,5G不仅在发展,还迎来了它的升级版5G-A。 在今年西班牙举行的世界移动通信大会上,5G-A就是焦点之一。 被誉为全球通信领域风向标的MWC,汇聚了华为、中兴通…

SQLMesh SCD-2 时间维度实战:餐饮菜单价格演化追踪

场景背景:动态菜单价格管理 考虑某连锁餐厅的菜单管理系统,需要记录食品价格的历史变更轨迹。业务需求包括: 记录每次价格调整的时间点支持历史价格查询(如"2020年1月2日汉堡多少钱")维护当前有效价格清单…

失物招领|校园失物招领系统|基于Springboot的校园失物招领系统设计与实现(源码+数据库+文档)

校园失物招领系统目录 目录 基于Springboot的校园失物招领系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、 管理员功能实现 (1) 失物招领管理 (2) 寻物启事管理 (3) 公告管理 (4) 公告类型管理 2、用户功能实现 (1) 失物招领 (2) 寻物启事 (3) 公告 …

基于BClinux8部署Ceph 19.2(squid)集群

#作者&#xff1a;闫乾苓 文章目录 1.版本选择Ceph版本发布历史目前官方在维护的版本 2.部署方法3.服务器规划4.前置配置4.1系统更新4.2配置hosts cat >> /etc/hosts << EOFssh-keygenssh-copy-id ceph01ssh-copy-id ceph02ssh-copy-id ceph034.5 Python34.6 Syst…

安装React开发者工具

我们在说组件之前&#xff0c;需要先安装一下React官方推出的开发者工具&#xff0c;首先我们分享在线安装方式 首先打开谷歌网上应用商店(针对谷歌浏览器)&#xff0c;在输入框内搜索react&#xff0c;安装如下插件&#xff1a; 注意安装提供方为Facebook的插件&#xff0c;这…

linux中如何修改文件的权限和拥有者所属组

目录标题 chmod指令八进制形式权限修改文件拥有者所属组的修改umask有关内容 chmod指令 chmod指令可以用来修改人员的权限其形式如下&#xff1a; u代表的是拥有者&#xff0c;g代表的是所属组&#xff0c;o代表的是其他人&#xff0c;a表示所有人&#xff0c;如果你想增加权…