当前位置: 首页 > article >正文

AI 中的 CoT 是什么?一文详解思维链

文章目录

      • CoT 的组成
      • CoT 的作用
      • CoT 的推理结构变体
      • CoT 的特点
      • CoT 的适用场景
      • 总结

在人工智能领域,尤其是自然语言处理和机器学习中,有一种名为思维链(Chain of Thought,CoT)的技术,它正逐渐改变着我们对 AI 模型推理能力的认知。CoT 由 Google 在 2022 年的论文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》中首次提出,其核心思想是让大模型逐步参与将一个复杂问题分解为一步一步的子问题并依次进行求解,通过显式输出中间逐步的推理步骤来增强大模型的算数、常识和推理的质量。

CoT 的组成

一个完整的包含 CoT 的提示词一般由以下三部分组成:

  • 指令(Instruction) :用于描述问题并且告知大模型的输出格式,让模型明确知道需要做什么。
  • 逻辑依据(Rationale) :指 CoT 的中间推理过程,可以包含问题的解决方案、中间推理步骤以及与问题相关的任何外部知识,是模型思考过程的具体体现。
  • 示例(Exemplars) :以少样本的方式为大模型提供输入输出对的基本格式,每个示例都包含问题、推理过程与答案,帮助模型更好地理解和学习如何进行推理。

根据是否包含示例,可将 CoT 分为 Zero-Shot-CoT 与 Few-Shot-CoT。Zero-Shot-CoT 仅在指令中添加一行经典的 “Let’s think step by step”,无需提供具体示例,即可唤醒大模型的推理能力;而 Few-Shot-CoT 则在示例中详细描述了解题步骤,让模型照猫画虎得到推理能力。

CoT 的作用

  • 提升模型推理能力 :CoT 将复杂问题分解为多个子问题,使模型能够逐步解决,从而更好地应对复杂任务,显著提高了大语言模型在复杂推理任务上的性能,如在数学推理任务 GSM8K 上,PaLM-540B 的准确率从 17% 提升至 58%。
  • 增强模型的可解释性 :显式输出的中间推理步骤为人们提供了一个观察模型思考过程的窗口,方便使用者了解模型是如何得出答案的,也便于发现模型可能存在的错误,进而提高了大模型推理的可解释性和可信度。
  • 具有广泛的适用性 :CoT 能用在数学应用题、常识推理和符号操作等多种任务上,几乎涵盖任何人类通过语言能解决的问题,并且支持任何语言模型使用,只需将其加在 few-shot 的样例中即可生效,无需重新训练模型。

CoT 的推理结构变体

  • PoT(Program of Thought) :对思维链中大模型有可能出错的一些计算问题,让大模型生成编程语言在解释器中运行,将复杂计算与模型的文本生成解耦,从而提高计算的准确性和可靠性。
  • Tab-CoT(Tabular Chain of Thought) :迫使大模型在每一步的推理中记录一个 “∣步数∣子问题∣过程∣结果∣” 的推理表格,并从生成的表格中提取答案,增强大模型的推理能力。
  • ToT(Tree of Thought) :将 CoT 的链式结构扩展为树形结构,让大模型在解决子问题时生成多个不同的答案选择,通过建立的树形结构展望未来确定下一步的决策,并通过追溯来纠正历史决策。
  • GoT(Graph of Thought) :基于 ToT 的思想,将 Tree 拓展为 Graph,其核心在于一个 “控制器”,控制器处理对图的操作以及图状态推理,将任务分解为相互连接的节点 - 边关系,并维护大模型在生成的图上的推理过程。

CoT 的特点

  • 以人类解决问题的方式为灵感 :CoT 模仿人类解题时的思考模式,通过一系列连贯的逻辑推导来促进系统地解决问题,使 AI 模型更接近人类的思维方式。
  • 涌现性 :当模型参数量达到百亿级别时,CoT 才能显著生效,发挥出其在提升模型推理能力方面的作用。

CoT 的适用场景

  • 数学应用题 :对于复杂的数学问题,CoT 可以帮助模型逐步分解问题,进行算术推理,从而得到正确的答案。
  • 常识推理 :在涉及常识的问答中,CoT 能够让模型展示出其推理过程,更好地运用常识进行推理和判断。
  • 符号操作 :如代码生成等任务,CoT 可引导模型按照逻辑步骤生成正确的代码。
  • 其他需要逻辑推理的任务 :如逻辑谜题解答、数据解读等,只要是可以将问题分解为多个步骤并通过逻辑推理解决的场景,CoT 都有其用武之地。

总结

CoT 作为一种简单而有效的方法,为提高 AI 模型的推理能力和可解释性提供了一种新的思路和解决方案。它通过引入中间推理步骤,使模型能够更像人类一样逐步思考和解决问题,在各种复杂任务中展现出了巨大的潜力和价值。随着研究的不断深入,CoT 将不断进化和完善,并与其他技术相结合,进一步推动 AI 模型的发展和应用,为我们带来更强大、更智能的人工智能系统。

相关文章:

AI 中的 CoT 是什么?一文详解思维链

文章目录 CoT 的组成CoT 的作用CoT 的推理结构变体CoT 的特点CoT 的适用场景总结 在人工智能领域,尤其是自然语言处理和机器学习中,有一种名为思维链(Chain of Thought,CoT)的技术,它正逐渐改变着我们对 AI…...

【OC】AVPlayerLayer的学习

文章目录 前言关于AVPlayer概念及作用具体方法及使用 关于AVPlayerLayer基本概念及作用具体用法 AVPlayer与AVPlayerLayer结合实现视频播放应用使用本地视频使用网络请求申请视频数据 总结 前言 在编写类视频软件项目时,涉及到视频播放的问题,我们需要给…...

C++笔记-list

list即是我们之前学的链表,这篇主要还是讲解list的底层实现,前面会讲一些list区别于前面string和vector的一些接口以及它们的注意事项。 一.list的基本使用 和之前的string,vector一样,有很多之前见过的一些接口,经过…...

k8s报错kubelet.go:2461] “Error getting node“ err=“node \“k8s-master\“ not found“

问题 首先最初问题: [rootk8s-master ~]# kubectl get pods -owide --all-namespaces The connection to the server 192.168.2.129:6443 was refused - did you specify the right host or port?检查kubelet状态 查看kubelet status报找不到master节点 [rootk8…...

open webui 介绍 是一个可扩展、功能丰富且用户友好的本地部署 AI 平台,支持完全离线运行。

AI MCP 系列 AgentGPT-01-入门介绍 Browser-use 是连接你的AI代理与浏览器的最简单方式 AI MCP(大模型上下文)-01-入门介绍 AI MCP(大模型上下文)-02-awesome-mcp-servers 精选的 MCP 服务器 AI MCP(大模型上下文)-03-open webui 介绍 是一个可扩展、功能丰富且用户友好的…...

使用cursor进行原型图设计

1.下载cursor 2.模式设置: 模型使用claude-3.7-sonnet的think模式 3.引导词模板: 我想要开发一个中高考英语口语考试的模拟考试系统,我需要将上面的这个应用输出成高保真的原型图设计。请考虑以下的规范: 用户体验&#xff1…...

极狐GitLab 登录限制如何设置?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 登录限制 (BASIC SELF) 您可以使用登录限制自定义 Web 界面以及基于 HTTP(S) 的 Git 的身份验证限制。 设置 要访问登录限…...

设计模式之工厂模式(factory pattern):在商品对象创建系统中的应用

目录 一、设计思路 1. 简单工厂模式 2. 工厂方法模式 3. 抽象工厂模式 二、UML类图(PlantUML格式) 1.简单工厂模式 2.工厂方法模式 3.抽象工厂模式 三、实现过程与结果 1. 简单工厂模式 2. 工厂方法模式 3. 抽象工厂模式 四、总结 在面向对…...

Spring Boot 自定义定时任务组件深度解析:Quartz 集成与设计模式实战

一、组件设计目标 解决痛点: 简化 Quartz 原生 API 的复杂性统一任务调度管理(增删改查、日志、重试)与 Spring Boot 生态无缝整合 二、实现步骤详解 1. 组件初始化配置 1.1 初始化 Quartz 表结构 下载 SQL 脚本 🔗 官方表…...

嵌入式exfat-nofuse文件系统移植和使用

exfat-nofuse 是一款专为linux ARM平台设计的开源项目,它提供了一个非FUSE机制的内核级驱动,用于在Linux系统上无缝地读写exFAT和VFAT文件系统。此项目由Dorimanx维护,采用C语言编写,兼容GPL-2.0许可证。它避开了FUSE(用户空间文件系统)的使用…...

再来一篇,Linux中的软件管理

Linux中软件包的类型 在Linux系统中,软件包有多种不同的格式和类型,主要包括以下几种: DEB (Debian软件包)(此软件包不适用于RHEL8 系统): 适用于 Debian 及其衍生版本(如Ubuntu等&…...

【重学Android】02.Java环境配置的一些分享

背景说明 其实只是学习Android的话,只要下载好Android Studio开发工具,是自带JDK环境的,所以不需要再额外去进行配置,我之所以还要进行单独配置,是因为我其他的工具需要Java的环境,而且我目前用的是JDK 12…...

SimBody安装

SimBody安装 Simbody 是一个用于创建生物力学和机械系统仿真的多体动力学库。 SimBody安装 Windows安装: 下载地址:GitHub - simbody/simbody: High-performance C multibody dynamics/physics library for simulating articulated biomechanical and…...

CUDA编程中影响性能的小细节总结

一、内存访问优化 合并内存访问:确保相邻线程访问连续内存地址(全局内存对齐访问)。优先使用共享内存(Shared Memory)减少全局内存访问。避免共享内存的Bank Conflict(例如,使用padding或调整访…...

thinkphp:部署完整项目到本地phpstudy

一、准备工作 首先准备一个thinkphp的项目文件;准备mysql数据库 二、小皮初步搭建 1、建立网站 在小皮界面,网站->创建网站->输入域名,选择PHP版本等 注:确保端口未被占用 2、将项目文件放入根目录 网站->管理->…...

Linux网络编程——基于ET模式下的Reactor

一、前言 上篇文章中我们已经讲解了多路转接剩下的两个接口:poll和epoll,并且知道了epoll的两种工作模式分别是 LT模式和ET模式,下来我们就实现的是一个简洁版的 Reactor,即半同步半异步I/O,在linux网络中&#xff0c…...

大模型相关面试问题原理及举例

大模型相关面试问题原理及举例 目录 大模型相关面试问题原理及举例Transformer相关面试问题原理及举例大模型模型结构相关面试问题原理及举例注意力机制相关面试问题原理及举例大模型与传统模型区别 原理:大模型靠海量参数和复杂结构,能学习更复杂模式。传统模型参数少、结构…...

Redis List 的详细介绍

Redis List 的详细介绍 以下是 Redis List 的详细介绍,从基础命令、内部编码和使用场景三个维度展开: 一、基础命令 Redis List 支持双向操作(头尾插入/删除),适用于队列、栈等场景,以下是核心命令分类&a…...

使用virtualbox的HostOnly建立共享网络-实现虚拟机上网

目录 环境描述解决方案具体步骤1.新建一个virtual host-only ethernet adapter2.设置windows的wifi信号网络共享3.确认winows宿主网络信息3.1.wifi适配器的信息3.2.虚拟网卡的信息3.3.确认virtualbox中虚拟网卡的ip地址 4.虚拟机网卡设置5.虚拟机网络设置5.1.本地连接设置5.2.u…...

springboot+vue3+mysql+websocket实现的即时通讯软件

项目演示 即时通讯软件项目演示 业务架构 技术栈 后端 选用编程语言 Javaweb框架SpringBootdb MySQL 持久存储nosql 缓存 Redis全双工通信框架 WebSocket 前端 前端框架Vue3TypescriptUI样式 Css、ElementPlus网页路由 vue-router全双工通信框架Websocket 功能完成情况 已实…...

基于 Spring Boot 瑞吉外卖系统开发(五)

基于 Spring Boot 瑞吉外卖系统开发(五) 删除分类 分类列表中每条分类信息右侧提供了一个“删除”按钮,当需要将已经存在的分类信息删除时,可以通过单击“删除”按钮实现。 请求路径为/category,携带参数id&#xf…...

AES (高级加密标准)

原理详解 AES是一种对称加密算法,使用相同的密钥进行加密和解密。它采用替代-置换网络(SPN)结构,主要步骤包括: 密钥扩展:从初始密钥派生多轮密钥 初始轮:AddRoundKey(轮密钥加) 主轮&#xff…...

详解Windows(一)——系统盘下目录及文件详解

引言 你是否曾经好奇过电脑里那些神秘的文件夹都是干什么用的?为什么有些文件是.exe而有些是.dll?不同的图片格式.jpg和.png到底有什么区别?如果你对这些问题感到困惑,这篇文章就是为你准备的。今天,我们将以通俗易懂…...

基于Spring MVC的客户端真实IP获取方案解析

文章目录 基于Spring MVC的客户端真实IP获取方案解析概述核心方法解析代码实现工作流程 IP获取优先级策略IP有效性验证异常处理与日志使用场景注意事项扩展建议 基于Spring MVC的客户端真实IP获取方案解析 概述 在Web应用开发中,准确获取客户端真实IP地址是常见的…...

【Web部署问题】在Tomcat中部署web项目出现http状态-404 -未找到详细解决方案

部署完tomcat记得在选中要运行的工件。 如果没有工件,或者工件有缺失东西,去这里配置工件,...

Linux——Shell编程之正则表达式与文本处理器(笔记)

目录 基础正则表达式 1:基础正则表达式示例 (4)查找任意一个字符“.”与重新字符“*” (5)查找连续字符范围“{ }” 文本处理器 一、sed工具 二、awk工具 (1)按行输出文本 (2&#xff0…...

Linux 进程控制(自用)

非阻塞调用waitpid 这样父进程就不会阻塞,此时循环使用我们可以让父进程执行其他任务而不是阻塞等待 进程程序替换 进程PCB加载到内存中的代码和数据 替换就是完全替换当前进程的代码段、数据段、堆和栈,保存当前的PCB 代码指的是二进制代码不是源码&a…...

05-DevOps-Jenkins自动拉取构建代码

新建Gitlab仓库 先在Gitab上创建一个代码仓库,选择创建空白项目 安装说明进行填写,然后点击创建项目 创建好的仓库是空的,什么都没有 新建一个springboot项目,用于代码上传使用。 只是为了测试代码上传功能,所以代码…...

【Spring学习】

Spring学习 简介 Spring 是一个开源的 Java 企业级开发框架,最核心的特点是: IOC(控制反转)AOP(面向切面编程) 它有完整的生态: 🚀 Spring Boot:用于快速构建服务&a…...

网络基础与 HTTP 协议

一、网络基础 (一)TCP/IP 协议族 TCP/IP 协议族是互联网通信的核心协议,它包含了多个层次的协议,共同协作实现网络通信。 1. IP 协议 IP(Internet Protocol)协议位于网络层,主要负责将数据包…...