大模型的思维链(Chain-of-Thought)

核心概念:用生成长度换计算深度


一、FFN 是什么?Transformer 的"计算单元"

在理解思维链之前,需要先知道大模型的核心架构: Transformer 的内部结构长什么样。

Transformer 的每一层都由两个核心组件串联组成:

plaintext 复制代码
输入 Token
   ↓
[ Attention(注意力机制) ]   ← 负责"看哪里":决定当前 Token 要关注上下文中的哪些位置
   ↓
[ FFN(Feed-Forward Network,前馈神经网络) ]  ← 负责"想什么":对 Attention 的输出做非线性变换,提取更深层的特征
   ↓
输出(传入下一层)

FFN 的结构非常简单,本质是两个线性变换 + 一个激活函数:

plaintext 复制代码
FFN(x) = 激活函数( x · W₁ + b₁ ) · W₂ + b₂
  • W₁W₂ 是参数矩阵,在训练时学习,推理时固定不变

  • 激活函数(如 ReLU、GELU)引入非线性,让模型能学习复杂模式

  • FFN 的"宽度"通常是 Attention 维度的 4 倍,承载了大量的知识存储

一个直觉:如果说 Attention 是在"查字典"(决定关注哪些上下文),那 FFN 就是在"做推理"(基于查到的内容得出结论)。研究表明,模型记忆的大量事实知识主要存储在 FFN 的参数矩阵里。


二、先理解"计算深度"的约束

Transformer 架构有一个关键特性:每次生成一个 Token,计算过程是固定的

每一层都是"Attention + FFN"的组合,N 层叠加形成完整的前向传播:

plaintext 复制代码
输入 → [Attention + FFN]₁ → [Attention + FFN]₂ → ... → [Attention + FFN]ₙ → 输出一个 Token

比如 GPT-4 有 120 层,无论你的问题是"1+1=?"还是"证明黎曼猜想",模型都只走这 120 层(每层各一次 Attention + FFN),然后输出一个 Token。

这就是计算深度固定的含义:不管问题多难,每生成一个 Token,只能经过固定层数的 Attention + FFN 计算,无法"多想一会儿"。


三、用一个数学题来对比

题目:小明有 23 个苹果,给了小红 7 个,又买了 15 个,最后给了 8 人每人 2 个,还剩几个?

没有思维链:一次前向传播直接跳答案

plaintext 复制代码
输入:小明有 23 个苹果...还剩几个?
模型:→ → → → → → [96层计算] → 输出 Token "9"

模型要在 96 层内同时完成:

  • 23 - 7 = 16

  • 16 + 15 = 31

  • 8 × 2 = 16

  • 31 - 16 = 15

这四步全压缩在一次计算里,容量不够,很容易出错


有思维链:多次前向传播,每次只算一小步

plaintext 复制代码
输入:小明有 23 个苹果...还剩几个?请一步一步思考。

第1次生成:"小明原来有 23 个苹果"        ← 第1次前向传播
第2次生成:"给了小红 7 个,剩 16 个"     ← 第2次前向传播(看到了上一步的结果)
第3次生成:"又买了 15 个,现在有 31 个"  ← 第3次前向传播(看到了 16)
第4次生成:"给了 8 人每人 2 个,共 16 个" ← 第4次前向传播
第5次生成:"31 - 16 = 15,还剩 15 个"   ← 第5次前向传播

关键点 :每次生成新 Token 时,之前生成的所有文字都会成为输入上下文

所以到第 5 次计算时,模型的输入是:

"小明有 23 个苹果...给了小红 7 个,剩 16 个...现在有 31 个...共 16 个...31 - 16 = ?"

它只需要做最后一步减法,非常轻松


四、核心对比表

维度 没有思维链 有思维链
生成的 Token 数 少(直接输出答案) 多(输出中间过程)
每次前向传播的难度 极高(要一步到位) 低(每步只算一小步)
前向传播的次数 1 次 N 次
总计算量 1 次 × 极高难度 N 次 × 低难度
出错概率

一句话 :Transformer 单次计算能力有上限,思维链通过把"一道难题"拆成"N 道简单题",每道简单题用一次前向传播解决,用输出更多文字(生成长度)的代价 ,换来了等效更深的推理能力(计算深度)


五、直观类比

想象你要徒手计算 347 × 289

  • 没有思维链:大脑直接算,很容易出错

  • 有思维链:在草稿纸上一步一步写:

    • 289 × 7 = 2023

    • 289 × 40 = 11560

    • 289 × 300 = 86700

    • 2023 + 11560 + 86700 = 100283

草稿纸上的每一行 ,就是模型生成的每一个中间步骤。每一步你只需要做一个简单乘法,写到纸上之后,下一步可以直接用这个结果继续算。

草稿纸 = 上下文窗口,多写几行 = 生成更多 Token = "生成长度"增加了


六、延伸洞察

  • 为什么推理模型更慢更贵:推理模型在"想"的阶段生成了大量思维链 Token(即使用户看不到),本质就是在用生成长度换计算深度。

  • 为什么对简单问题没效果:对于"中国的首都是哪里"这类问题,一次前向传播足够,不需要多步推理,CoT 反而是浪费。

  • CoT 最适合的场景:数学计算、逻辑推理、多步骤规划------任何需要"中间状态"才能推进的任务。

相关推荐
AskHarries17 小时前
我如何从1000个产品里筛出方向
人工智能·产品·全栈
EnCi Zheng17 小时前
09aa-偏置是什么?
人工智能·pytorch·python·深度学习·神经网络
虚拟世界AI17 小时前
AI智驾系统开发实战:从架构到量产全解析
人工智能·架构
架构源启17 小时前
Spring AI进阶系列(09) 工作流引擎设计:LangGraph风格编排、条件分支与并行执行实战
java·人工智能·spring
Codebee17 小时前
OoderAI V3.5.0 技术白皮书——NLP 驱动的 AI 原生开发平台
java·人工智能·架构
Bacon17 小时前
Codex + DeepSeek 接入指南
人工智能
追风的老玩骨17 小时前
Spec Coding:下一代 AI 编程方式,正在替代传统 Prompt 编程
人工智能·prompt
ai生成式引擎优化技术17 小时前
DLOS v0.7:面向分布式多智能体AI操作系统的自进化内核
人工智能·分布式
长风23017 小时前
Day 6:连接数据之源 —— Splunk SDK for Python 实战
人工智能·安全