从理论到实践:思维链(CoT)提示

在开始前请确保您有一定的LLM基础和强化学习基础😊

如果您没有RL基础我推荐David Sliver的讲座(前三集即可)RL Course by David Silver - Lecture 1: Introduction to Reinforcement Learning - YouTube

叠甲:我对文章中提到的所有算法的数学解析只是片面的,深入研究会在不久的将来发布(也许吧😔),敬请期待😊(欢迎各位大佬指出错误😊)

数学视角

1.CoT的数学描述

1.1问题分解与概率分解

设输入问题为 Q,最终答案为 A,中间推理步骤顺序为 S=\left \{ S_{1},S_{2},...,S_{n} \right \}

传统单步推理直接建模 P(A|Q),而CoT将其分解为:

        P(A|Q)=\sum_{S}^{}P(A,S|Q)=\sum_{S}^{}P(A|S,Q)\cdot P(S|Q)

通过最大化中间步骤的联合概率 P(S|Q),模型更可能生成正确的 A

1.2马尔可夫链视角

CoT可视为一个马尔可夫过程,每个步骤 S_{i} 仅依赖前序步骤 S_{1:i-1}

        P(S|Q)=\prod_{i=1}^{n}P(S_{i}|S_{1+i-1},Q)

每一步的生成概率被局部优化,降低全局搜索的复杂度(从指数级 O(k^{n}) 降至线性级 O(nk)k为每步候选数)

2.CoT有效性的数学证明

2.1信息熵减少

  • 单步推理的熵:直接生成答案的熵 H(A|Q) 较高,因模型需在巨大空间搜索
  • CoT的熵:分布生成时,每步熵 H(S_{i}|S_{1:i-1},Q) 较低,总熵为:

        H(S|Q) = \sum_{i=1}^{n}H(S_{i}|S_{1:i-1},Q)\ll H(A|Q)

        分布生成通过降低局部不确定性,间接降低全局熵

2.2错误传播的数学控制

假设每步正确率为 p,各步骤独立,则最终正确率为 p^{n},但实际中:

  • 错误可检测性:若某步 S_{k} 错误,后续步骤可能不满足逻辑约束(如方差不成立),触发重新生成
  • 自洽性修正:生成多个推理链 \left \{ S^{(1)},S^{(2)},...,S^{(m)} \right \},通过多数投票选择最终答案,将正确率提升至:

        P_{correct} \geq 1-\begin{pmatrix} m\\ \left \lfloor m/2 \right \rfloor \end{pmatrix}(1-p^{n})^{m/2+1}

3.数学案例剖析

3.1线性方程组求解

问题:解方程组 \left\{\begin{matrix} x+y=8\\ 2x-y=1 \end{matrix}\right.

CoT步骤:

  1. 消元法:(x+y)+(2x-y)=8+1 \Rightarrow 3x=9 \Rightarrow x=3
  2. 回代:将 x=3 代入方程 1,得 y=5
  3. 验证:检查 2(3)-5=1,满足方程 2

3.2定积分计算

问题:计算 \int_{0}^{\pi /2}sin^{3}xdx

CoT步骤:

  1. 恒等变形:利用 sin^{3}x=sinx(1-cos^{2}x),将积分分解为:\int sinxdx-\int sinxcos^{2}xdx
  2. 换元积分:令 u=cosx,则 du=-sinxdx,转化为:-\int u^{2}dx=-\frac{u^{3}}{3}+C
  3. 合并结果:代入上下限,利用牛顿-莱布尼兹公式计算定积分

4.CoT优化策略

4.1动态计算分配

  • 问题复杂度评估:定义问题复杂度 C(Q) (如方程阶数、积分维度),动态调整步骤数 n

        n=\left \lceil \alpha \cdot C(Q) \right \rceil      (\alpha 为可学习参数)

  • 注意力聚焦:在关键步骤 S_{k} 分配更多计算资源(如增加 Transformer 层数)

4.2符号逻辑约束

在生成过程中嵌入数学公理,如:

  • 等量替换公理:若 a=b,则 f(a)=f(b)
  • 传递律:若 a>b 且 b>c,则 a>c

通过约束采样空间,避免生成违反数学规则的步骤

5.CoT的局限性

5.1组合爆炸问题

  • 若问题需 n 步,每步有 k 种选择,则搜索空间为 O(k^{n})。CoT通过局部贪心搜索(选择最高概率 S_{i})缓解,但可能陷入局部最优

5.2符号系统的脆弱性

  • 模型可能混淆符号(如将 \sum_{i=1}^{n} 误写为 \prod_{i=1}^{n}),需通过语法约束或后处理校正

代码实践

我们使用 DeepSeek-R1-Distill-Qwen-1.5B 演示CoT,以解方程为例,通过代码生成中间步骤,并输出最终答案

from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B")
model = AutoModelForCausalLM.from_pretrained("deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B")

device='cuda'
model.to(device)

# 设置生成参数
def generate_with_cot(prompt, max_length=1000):
    inputs = tokenizer(prompt, return_tensors="pt").to(device)
    inputs["attention_mask"] = inputs.input_ids.ne(tokenizer.pad_token_id).int()
    outputs = model.generate(
        inputs.input_ids,
        max_length=max_length,
        temperature=0.7, 
        top_p=0.9,
        do_sample=True,
        pad_token_id=tokenizer.eos_token_id
    )
    return tokenizer.decode(outputs[0], skip_special_tokens=True)

problem = "解方程组:\n方程1: x + y = 8\n方程2: 2x - y = 1"

# CoT提示:显式要求分步推理
cot_prompt = f"""
请逐步解决以下问题:

{problem}

分步推理:
1. 观察方程组的结构,寻找消元方法。
2. 通过相加方程消去变量y。
3. 解出x的值。
4. 代入求y。
5. 验证解的正确性。

"""

response = generate_with_cot(cot_prompt)
print(response)

输出

请逐步解决以下问题:

解方程组:
方程1: x + y = 8
方程2: 2x - y = 1

分步推理:
1. 观察方程组的结构,寻找消元方法。     
2. 通过相加方程消去变量y。
3. 解出x的值。
4. 代入求y。
5. 验证解的正确性。

请确保步骤清晰,详细,使用数学符号表示。
</think>

**解方程组:**

方程1: \( x + y = 8 \)

方程2: \( 2x - y = 1 \)

**分步推理:**

1. **观察方程组的结构,寻找消元方法。**

   方程1和方程2中,\( y \) 的系数分别为 \( +1 \) 和 \( -1 \),刚好互为相反数。因此,可以通过 **相加** 方程1和 
方程2来消去变量 \( y \)。

2. **通过相加方程消去变量 \( y \)。**

   将方程1和方程2相加:
   \[
   \begin{cases}
   x + y = 8 \\
   2x - y = 1
   \end{cases}
   \]
   相加后:
   \[
   x + y + 2x - y = 8 + 1
   \]
   简化:
   \[
   3x = 9
   \]

3. **解出 \( x \) 的值。**

   两边同时除以3:
   \[
   x = \frac{9}{3} = 3
   \]

4. **代入求 \( y \)。**

   将 \( x = 3 \) 代入方程1:
   \[
   3 + y = 8
   \]
   解得:
   \[
   y = 8 - 3 = 5
   \]

5. **验证解的正确性。**

   将 \( x = 3 \) 和 \( y = 5 \) 代入方程2:
   \[
   2(3) - 5 = 6 - 5 = 1
   \]
   左边等于右边,验证正确。

**最终解:**

\[
\boxed{x = 3,\ y = 5}
\]

答案正确:

小结

从数学视角看,CoT本质是将高维复杂问题分解为低维马尔可夫链,通过概率分解、错误控制与自洽性提升推理可靠性。其有效性通过信息熵、概率模型及动态规划严格证明

下篇文章我们将讨论CoT的多路径生成与自洽性🤗

文章地址:从理论到实践:CoT的多路径生成与自洽性-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值