思维链(Chain of Thought, CoT):提升大模型推理能力的关键技术

文章目录

  • 思维链(Chain of Thought, CoT):提升大模型推理能力的关键技术
    • 1 什么是思维链(Chain of Thought, CoT)?
    • 2 CoT的核心原理
      • 2.1 中间推理步骤
      • 2.2 两种实现方式
      • 2.3 自洽性(Self-consistency)
    • 3 CoT的实际应用示例
      • 3.1 数学问题解决
      • 3.2 常识推理
    • 4 CoT的优势与价值
    • 5 如何有效使用CoT
    • 6 CoT的局限性
    • 7 未来发展方向
    • 8 实践建议
    • 9 结语

1 什么是思维链(Chain of Thought, CoT)?

NLP 的研究人员在研究过程中有时会发现大模型的“涌现”现象:当模型的参数量突破某个规模时,性能显著提升,表现出让人惊艳、意想不到的能力,比如语言理解能力、生成能力、逻辑推理能力等。一般来说,模型在 100亿(10B) 到 1000亿(100B) 参数区间,可能产生能力涌现。但一味地靠砸钱买算力扩大模型的规模和运气,也未必能获得“涌现”的效果。强大的逻辑推理是大语言模型“智能涌现”出的核心能力之一,好像AI有了人的意识一样。

类 GPT 应用的“翻车”问题大多都是数学算术题、逻辑思考题等,这类需要精确推理的问题,而这正是思维链能够重点解决的。也就是说,只有解锁了思维链技术,大语言模型才有可能“涌现”。

思维链Chain of Thought,简称CoT)是一种用于提升大型语言模型(LLM)复杂推理能力的技术,通过引导模型展示出逐步的推理过程,而不是直接给出最终答案,能够显著提高模型在算术、常识和符号推理等任务上的表现。

输入、思维链、输出三元组的示例

这种方法最早由Google Research团队的Jason Wei在2022年1月放到Arxiv上(论文:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models),并迅速成为提升LLM推理能力的重要技术。

2 CoT的核心原理

2.1 中间推理步骤

CoT的核心思想是让模型生成一系列中间推理步骤,这些步骤构成了从问题到答案的"思维链"。例如,在解决数学问题时,模型会先展示计算过程,再给出最终答案,而不是直接输出结果。

2.2 两种实现方式

  • Few-shot CoT:在输入提示中提供几个包含逐步推理过程的示例
  • Zero-shot CoT:通过简单指令(如"让我们一步步思考")激发模型的逐步推理能力

2.3 自洽性(Self-consistency)

进阶的CoT技术会生成多条推理路径,然后选择最一致的答案,这种方法称为"自洽性",可以进一步提高准确率。

3 CoT的实际应用示例

3.1 数学问题解决

CoT对解决数学问题的帮助

3.2 常识推理

问题:如果今天下雨,小明会选择什么交通工具上班?已知小明平时骑自行车上班,但有雨时会坐地铁。

传统模型输出:地铁

CoT模型输出

  1. 小明平时的通勤方式是骑自行车
  2. 但今天下雨,骑自行车会淋湿
  3. 已知下雨时小明会选择坐地铁
  4. 因此今天小明会选择坐地铁上班
  5. 最终答案:地铁

4 CoT的优势与价值

  1. 提升复杂任务表现:在GSM8K(小学数学题)等基准测试中,CoT将模型准确率从约20%提升到50%以上

  2. 增强可解释性:通过展示推理过程,用户可以理解模型是如何得出结论的

  3. 降低幻觉风险:逐步验证可以减少模型直接输出错误答案的概率

  4. 通用性强:适用于各种需要推理的任务,包括数学、常识推理、符号操作等

5 如何有效使用CoT

  1. 设计好的提示模板:提供清晰的逐步推理示例

    问题:{示例问题}
    思考过程:
    - 第一步...
    - 第二步...
    - ...
    答案:{正确答案}
    
  2. 结合其他技术

    • 与自洽性(Self-consistency)结合,生成多条推理路径后投票选择最佳答案
    • 与验证机制结合,检查每一步的合理性
  3. 调整解码参数

    • 提高temperature以获得更多样化的推理路径
    • 使用beam search保持推理连贯性

6 CoT的局限性

  1. 不适用于所有任务:对于不需要多步推理的简单任务,CoT可能增加计算成本而不提升效果

  2. 依赖模型能力:小型语言模型可能无法生成有效的推理链

  3. 可能产生错误推理:中间步骤的错误会导致最终答案错误

  4. 增加响应时间:生成多步推理比直接回答问题需要更多时间

7 未来发展方向

  1. 自动CoT提示工程:研究如何自动生成最优的CoT提示

  2. 多模态CoT:将视觉等信息纳入思维链

  3. 可验证的CoT:开发能够自我验证每一步推理正确性的机制

  4. 领域专用CoT:针对医疗、法律等专业领域的优化版本

8 实践建议

对于开发者来说,可以:

  1. 在HuggingFace等平台尝试开源的CoT模型
  2. 使用LangChain等框架集成CoT能力
  3. 针对特定领域收集CoT示例微调模型
  4. 结合RAG(检索增强生成)提升CoT的事实准确性

9 结语

思维链技术显著提升了大型语言模型的推理能力,使其更接近人类的思考方式。随着模型规模的扩大和技术的进步,CoT将继续在复杂问题解决、决策支持等场景中发挥重要作用。理解并合理应用CoT,将是开发智能应用的重要技能。


参考资源

  • Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
  • Self-Consistency Improves Chain of Thought Reasoning
  • Large Language Models are Zero-Shot Reasoners

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

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

相关文章

GitHub 宕机自救指南:打造韧性开发体系

一、引言1.1 GitHub 宕机事件回顾与影响剖析在软件开发的广袤版图中,GitHub 宛如一座熠熠生辉的灯塔,为全球超 1 亿开发者照亮前行之路,其重要性不言而喻。它集代码托管、版本控制、协作开发以及项目管理等核心功能于一身,是无数开…

移动端网页调试实战,iOS WebKit Debug Proxy 的应用与替代方案

在移动端开发中,iOS WebView 的调试一直是个难题。不同于 Android 可以依赖 Chrome DevTools 和 ADB,iOS 的 WKWebView 只能通过 Safari 开发者工具调试,而这需要 Mac 环境和设备直连。为了弥补限制,社区出现了一个常用工具 —— …

焕新升级,Sermant 2.0.0 release版本重磅发布!

Sermant社区在6月底正式发布了2.0.0 release版本,这次更新中,Sermant进行了项目所属组织调整并新增了基于xDS协议的服务发现能力、预过滤启动加速机制、Sermant Backend的配置管理能力。所属组织调整使得Sermant淡化厂商属性,以全新的姿态更好…

sqli-labs通关笔记-第28a关GET字符注入(多重关键字过滤绕过 脚本法)

目录 一、sqlmap之tamper脚本 二、源码分析 1、代码审计 2、SQL安全性分析 三、渗透实战 1、进入靶场 2、tamper脚本 3、sqlmap渗透 SQLI-LABS 是一个专门为学习和练习 SQL 注入技术而设计的开源靶场环境,本小节对第28a关Less 28a基于GET字符型的SQL注入关卡…

联想打印机2268w安装

联想打印机2268w是支持无线打印的。在某度搜索,掀起盖子长按开机键,成功初始化。之后按说明应该能用手机搜索到打印机的热点,反复搜索都没有出现。最后没办法,之后好用我自己的方法安装。找了个笔记本,开机连接到wifi,…

【LeetCode】动态规划——72.编辑距离、10.正则表达式匹配

LeetCode题目链接 https://leetcode.cn/problems/edit-distance/description/ https://leetcode.cn/problems/regular-expression-matching/description/ 题解 72.编辑距离 本题要定义为长度为i、长度为j的字符串的最少编辑次数,每次判断字符的下标为i-1、j-1。dp[i…

[亲测可用]Android studio配置国内镜像源 Kotlin DSL (build.gradle.kts)

一、更改gradle下载镜像Android studio项目需要下载和更新 Gradle 及其依赖。由于网络环境,直接从 Gradle 官网下载可能会遇到速度慢或超时的问题。这里需要更换为使用国内的镜像站点来加速下载。官网地址(较慢):https://services…

《跳出“技术堆砌”陷阱,构建可演进的软件系统》

很多团队陷入了“技术焦虑式开发”—盲目追逐热门框架,将“使用微服务”“引入云原生”“集成AI组件”当作架构先进的标签,却忽视了业务与技术的底层匹配逻辑。某互联网团队为了“彰显技术实力”,在内部协同工具中强行接入机器学习推荐模块&a…

赋能你的应用:英超实时数据接入终极指南(API vs. WebSocket)

在当今数据驱动的时代,为您的应用程序注入实时、准确的英超赛事数据,是提升用户体验、打造差异化竞争力的关键。无论是开发一款球迷必备的比分追踪App,一个深度专业的赛事分析平台,还是一个充满互动性的梦幻足球游戏,首…

计算机网络:(poll、epoll)

一、select的不足1. 最大监听数受限:FD_SETSIZE 默认 1024(Linux)2. 每次调用需重置 fd_set:内核会修改集合,必须每次重新 FD_SET3. 用户态与内核态拷贝开销大4. 返回后仍需遍历所有 fd 才能知道哪个就绪5. 效率随 fd …

网络编程之设置端口复用

首先来说一下为什么要设置端口复用,有些时候在调试服务器代码时势必会经常启动或结束服务器进程,这样就会出现当再次启动服务器时有可能会出现端口绑定失败的情况,造成这个情况的原因是由于你上次关闭服务器时有连接尚未断开等等其他原因&…

stargo缩扩容starrocks集群,实现节点服务器替换

1.背景在企业中可能需要,将starrocks的某一台服务器下架,换上另一台服务器,如何实现这个操作,本篇将进行介绍;节点hadoop101hadoop102hadoop103hadoop104集群原集群节点新节点fe✔✔❌(下线)✔&…

Linux -- 进程间通信【命名管道】

目录 一、命名管道定义 二、命名管道创建 1、指令 2、系统调用 3、删除 三、匿名管道和命名管道的区别 四、命名管道的打开规则 五、代码示例 1、comm.hpp 2、server.cc 3、client.cc 一、命名管道定义 # 匿名管道存在以下核心限制: 仅限亲缘关系进程&a…

LinuxC系统多线程程序设计

一.多线程程序设计1. 线程概述:1.1 什么是线程?线程是进程中的一个实体(组成单元),是系统进程调度的最小单元。一个进程至少具有一个线程,如果进程仅有一个线程,该线程就代表进程本身。把代表进程本身的线程称为主线程,一个进程…

Vue3 + TS + MapboxGL.js 三维地图开发项目

文章目录 1. 安装依赖 2. 新建 Map 组件(components/MapView.vue) 3. 在页面中使用(views/Home.vue) 4. 效果说明 1. 安装依赖 npm install mapbox-gl @types/mapbox-gl --save⚠️ 注意:需要去 Mapbox 官网,申请一个 access token。 package.json {"name":…

【编程语言】Rust 入门

目录 一、Rust 是什么?为什么选择它? 二、环境搭建,迈出第一步 2.1 Windows 系统安装步骤 2.2 macOS 系统安装步骤 2.3 Linux 系统安装步骤 2.4 安装过程中的常见问题及解决方案 三、基础语法,构建知识大厦的基石 3.1 变量…

Python 编码与加密全解析:从字符编码到 RSA 签名验证

在 Python 开发中,字符编码(如 UTF-8、GBK)和 数据加密(如 Base64、MD5、RSA)是处理数据传输、存储安全的核心技术。本文结合实战代码,从基础的字符编解码入手,逐步深入到加密算法的应用&#x…

关于shell命令的扩展

目录 一、逻辑运算符 1. &&(AND) 2. ||(OR) 3. 组合使用:A && B || C 二、输出与重定向 1. echo 输出 2. 标准文件描述符(FD) 3. 重定向操作符 4. 同时重定向 stdout 和…

MySQL EXPLAIN 查看执行计划详解

MySQL 的 EXPLAIN 命令。这是一个分析和优化 SQL 查询性能不可或缺的强大工具。它展示了 MySQL 如何执行一条 SQL 语句,包括如何使用索引、表连接顺序、估计的行数等关键信息。1. 如何使用 EXPLAIN在你要分析的 SELECT 语句前加上 EXPLAIN 或 EXPLAIN FORMATJSON&am…

TensorFlow 面试题及详细答案 120道(51-60)-- 模型保存、加载与部署

《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux… 。 前后端面试题-专栏总目录 文章目录 一、本文面试题目录 51. TensorFlow中保存和加…