思维链(Chain-of-Thought, CoT)

一、引言:为什么需要思维链?

大语言模型(LLMs)在复杂推理任务(如数学、逻辑、常识推理)中,单步输出答案的准确性有限。**思维链(Chain-of-Thought, CoT)**通过引导模型显式分解问题、逐步推理,提升答案的准确性和可解释性。它模仿人类的分步思考过程,尤其适用于多步推理任务。

1.1 定义

CoT是一种提示工程技术,要求模型以自然语言输出中间推理步骤,逐步推导答案,适用于数学、逻辑、编程等任务。

1.2 起源

  • 提出时间:2022年,Google Research的论文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》(Jason Wei et al.)。
  • 背景:Zero-shot或One-shot提示在复杂推理任务中性能不稳定,CoT通过显式推理显著提升效果。
  • 关键发现:CoT效果随模型规模(10B到540B)增强。

1.3 核心思想

  • 显式推理:将推理过程语言化,强制“慢思考”。
  • 问题分解:拆分复杂问题为简单子问题。
  • 语言驱动:利用LLM的序列生成能力。

1.4 例子

问题:一辆车以60公里/小时行驶2.5小时,行驶多少公里?

传统提示

  • 输入:一辆车以60公里/小时行驶2.5小时,行驶多少公里?
  • 输出:150公里(过程不透明)。

CoT提示

  • 输入:一辆车以60公里/小时行驶2.5小时,行驶多少公里?请一步步推理。
  • 输出:
    1. 距离 = 速度 × 时间。
    2. 速度 = 60公里/小时,时间 = 2.5小时。
    3. 距离 = 60 × 2.5 = 150公里。
      答案:150公里。

二、理论基础:CoT为何有效?

2.1 语言建模与推理

  • LLMs通过自回归建模学习逻辑模式,CoT激活这些模式,将推理转化为语言生成。
  • 数学视角:优化 P ( 推理链 + 答案 ∣ x ) \text{P}(\text{推理链}+\text{答案}|x) P(推理链+答案x),提高正确答案概率。

2.2 上下文学习

  • CoT利用LLMs的In-context Learning,通过示例或指令引导推理。
  • 数学视角:Few-shot CoT提高 P ( 推理链 ∣ x , 示例 ) \text{P}(\text{推理链}|x, \text{示例}) P(推理链x,示例)

2.3 问题分解

  • 复杂问题分解为子问题,降低每次推理难度。
  • 示例: ( 2 + 3 ) × 4 − 5 = 15 (2 + 3) \times 4 - 5 = 15 (2+3)×45=15,CoT分步计算。

2.4 错误修正

  • CoT允许中间步骤检查错误,降低总错误率。
  • 数学视角:每步错误率 ϵ / n \epsilon/n ϵ/n,显式检查减少累计错误。

2.5 规模律

  • CoT在大型模型(>100B参数)上效果显著,因其更强语言建模能力。
  • 数学建模:性能 P ∝ f ( N , Q ) \text{P} \propto f(N, Q) Pf(N,Q),CoT提高提示质量 Q Q Q.

2.6 类比人类认知

  • CoT类似“系统2思维”(逻辑驱动),提供“工作记忆”空间。

三、CoT的实现方法

3.1 Zero-shot CoT

  • 定义:仅通过指令要求“一步步推理”。
  • 提示
    问题:[问题描述]
    请一步步推理,写出思考过程,最后给出答案。
    
  • 优缺点:简单但依赖模型能力。
  • 例子
    问题:一本书20元,买3本享8折,多少钱?
    输出:
    1. 原价:3 × 20 = 60元。
    2. 折扣:60 × 0.8 = 48元。
    答案:48元。
    

3.2 Few-shot CoT

  • 定义:提供推理示例,引导模仿。
  • 提示
    问题1:[问题]
    解答1:[推理 + 答案]
    问题2:[问题]
    解答2:[推理 + 答案]
    问题:[目标问题]
    请一步步推理,写出思考过程。
    
  • 优缺点:稳定但需手动设计示例。
  • 例子
    问题1:苹果1元,橙子2元,买2苹果3橙子多少钱?
    解答1:
    1. 苹果:2 × 1 = 2元。
    2. 橙子:3 × 2 = 6元。
    3. 总计:2 + 6 = 8元。
    答案:8元。
    

3.3 Self-Consistency with CoT

  • 定义:多次运行CoT,投票选择答案。
  • 步骤
    1. 运行CoT n n n 次。
    2. 投票选最常见答案。
  • 数学视角:提高正确率 P sc > p \text{P}_{\text{sc}} > p Psc>p.
  • 优缺点:鲁棒但成本高。
  • 例子
    • 问题: ( 2 + 3 ) × 4 − 5 = ? (2 + 3) \times 4 - 5 = ? (2+3)×45=?.
    • 推理1、2:15(正确);推理3:19(错误)。
    • 答案:15。

3.4 Tree-of-Thought (ToT)

  • 定义:探索多条推理路径,形成树状结构。
  • 提示
    问题:[问题]
    探索多种推理路径,评估正确性,选择最佳答案。
    
  • 优缺点:适合复杂问题但实现复杂。
  • 例子
    • 问题:分配3苹果2橙子给3人。
    • 路径1:每人1苹果,橙子随机。
    • 路径2:2人1苹果,1人1苹果+2橙子。
    • 选择:路径1更公平。

3.5 自动化CoT生成(Auto-CoT)【扩展部分】

3.5.1 定义

自动化CoT生成(Auto-CoT)旨在通过算法或模型自动构造CoT提示,减少人工设计Few-shot示例的成本。它通过生成高质量推理链并优化提示结构,实现与手动CoT相当甚至更好的性能。

3.5.2 背景与动机
  • 人工CoT的局限
    • 手动设计示例费时费力,需领域知识。
    • 示例质量不均,可能引入偏差。
    • 难以适配大规模或多样化任务。
  • Auto-CoT目标
    • 自动化生成逻辑清晰、覆盖广泛的推理链。
    • 适配不同任务(数学、逻辑、问答等)。
    • 降低提示工程门槛,推广CoT应用。
  • 关键论文
    • 《Automatic Chain of Thought Prompting in Large Language Models》(Zhang et al., 2022)。
    • 《AutoPrompt: Eliciting Knowledge from Pretrained Language Models with Automatically Generated Prompts》(Shin et al., 2020,启发性工作)。
3.5.3 核心思想
  • 自生成推理链:利用LLM自身生成推理步骤,作为Few-shot示例。
  • 示例优化:通过过滤、聚类、评分等方法选择高质量示例。
  • 动态调整:根据任务特性(如问题难度、领域)调整提示。
  • 数学视角
    • 优化目标:最大化提示有效性 E [ P ( 正确答案 ∣ Q , 自动提示 ) ] \mathbb{E}[\text{P}(\text{正确答案}|Q, \text{自动提示})] E[P(正确答案Q,自动提示)].
    • 问题建模:从问题集 { Q i } \{Q_i\} { Qi} 中采样,生成推理链集合 { S i } \{S_i\} { Si},选择子集 S ∗ ⊂ { S i } S^* \subset \{S_i\} S{ Si} 构造提示。
3.5.4 实现方法

以下是Auto-CoT的常见实现方法,逐一展开:

方法1:随机采样与自生成
  • 流程
    1. 从问题集 D = { Q 1 , Q 2 , … , Q n } D = \{Q_1, Q_2, \dots, Q_n\} D={ Q1,Q2,,Qn} 随机采样 k k k 个问题。
    2. 对每个问题 Q i Q_i Qi,使用Zero-shot CoT提示(如“请一步步推理”)生成推理链 S i S_i Si.
    3. 收集 { ( Q i , S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱看烟花的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值