跳转到内容

Chain-of-Thought — 让大模型先写步骤再回答

待复核

Chain-of-Thought(CoT,思维链)是一种**在提示词里给模型示范“先写推理步骤,再给答案”**的方法。

日常类比:老师看数学作业时,不只看最后答案,也看草稿纸上的步骤;CoT 就是在 prompt 里先放几张“标准草稿纸”,让模型照着写。

普通 few-shot prompt 只给“题目 → 答案”:

Q: Olivia 有 23 美元,买 5 个 3 美元的面包,还剩多少?
A: 8

CoT prompt 改成“题目 → 步骤 → 答案”:

Q: Olivia 有 23 美元,买 5 个 3 美元的面包,还剩多少?
A: 5 个面包花 5 * 3 = 15 美元。23 - 15 = 8。答案是 8。

论文的关键发现是:不改模型、不微调,只在少量示例答案里加入这种中间步骤,大模型在复杂推理题上会明显变强。

不理解 CoT,下面这些事都很难解释:

  • 为什么同一个大模型直接答会错,先写步骤却能答对——输出格式本身会改变模型的能力表现
  • 为什么论文说 CoT 是“涌现能力”——小模型写步骤常常更乱,足够大的模型才明显受益
  • 为什么复杂数学题、常识多跳题、符号追踪题都适合“拆步骤”——它们都需要中间状态
  • 为什么后来的 self-consistency-2022tree-of-thoughts-2023react 都是在扩展“先想再答”

CoT 可以拆成 三件事

  1. 把答案拆成路标:不要只让模型跳到终点,而是让它先经过几个中间站。类比:导航不只说“到达目的地”,还会告诉你先左转、再上桥、再下匝道。

  2. 把额外 token 变成额外计算:模型写出的每一步都会影响后面的 token,相当于给难题多一点“纸面工作空间”。类比:心算一位数可以直接算,长除法最好写在纸上。

  3. 用少量示例触发已有能力:论文不是教模型新知识,而是用 prompt 触发大模型预训练中已经学到的解题格式。类比:你会解题,但看到范例后才知道这次考试要写过程。

这三个要点合起来,说明 CoT 的价值不只是“解释更长”,而是让模型按更适合推理的顺序生成答案。

标准 prompt 像只填答案:

Q: 树林里原来有 15 棵树,工人种完后有 21 棵。工人种了几棵?
A: 6

CoT prompt 多写一步:

Q: 树林里原来有 15 棵树,工人种完后有 21 棵。工人种了几棵?
A: 原来 15 棵,后来 21 棵,增加的是 21 - 15 = 6。答案是 6。

逐部分解释

  • 原来 15 棵,后来 21 棵 是把题目翻译成状态变化
  • 21 - 15 = 6 是中间计算
  • 答案是 6 是最终输出,方便程序抽取

很多常识题不是查一个事实,而是要连两三步:

Q: 一个人戴着手套在雪地里修车,他更可能觉得热还是冷?
A: 他在雪地里,所以环境冷;手套只能保护手,不能让全身变热。答案是冷。

逐部分解释

  • 第一句先抓住场景里的关键事实:雪地
  • 第二句处理干扰信息:手套只影响局部
  • 最后才下结论,避免模型被“戴手套”误导

论文还测了硬币翻转这类“状态追踪”任务:

Q: 硬币正面朝上。A 翻了一次,B 没翻。现在正面朝上吗?
A: 开始是正面。A 翻一次后变反面。B 没翻,所以仍是反面。答案是否。

逐部分解释

  • 开始是正面 是初始状态
  • A 翻一次后变反面 是状态更新
  • B 没翻,所以仍是反面 是保持状态

这类题用 CoT 很自然,因为每一步都像在纸上更新一个变量。

  1. 把 CoT 当成真实内心独白:论文只说 CoT 提供可解释窗口,不等于模型真的按这些文字在脑内计算。

  2. 小模型硬套 CoT:论文观察到小模型会生成流畅但不合逻辑的步骤,最后表现可能比直接答更差。

  3. 简单题也强迫写步骤:单步题本来不用拆,强加 CoT 只是浪费 token,还可能引入多余错误。

  4. 只看最终正确率,不看链条质量:模型可能算错一步但碰巧答对,也可能步骤大体正确但最后算术错。

适用

  • 数学文字题、日期推理、路径规划这类多步任务
  • 需要检查中间错误在哪里的教学和调试场景
  • 参数规模足够大、已经具备基本语言推理能力的 LLM

不适用

  • 单步事实问答,例如“法国首都是哪里”
  • 对解释真实性要求极高的医疗、法律最终决策
  • 本身不会稳定生成语言步骤的小模型或弱模型
  • 2020 年gpt-3 证明 few-shot prompting 很强,模型能从少量示例里学任务格式。
  • 2022 年 1 月:Wei 等人把“答案”改成“推理步骤 + 答案”,CoT 论文上传 arXiv。
  • 2022 年:论文在 NeurIPS 发表,实验覆盖数学、常识和符号推理三类任务。
  • 2022 年后self-consistency-2022 用多条思维链投票,进一步提高答案稳定性。
  • 2023 年后tree-of-thoughts-2023react 把一条链扩展成搜索树或“思考 + 行动”循环。
  • prompt 可以改变能力边界:同一模型换一种示例格式,就可能表现出之前看不见的推理能力。
  • 推理需要中间状态:CoT 的本质是把隐含的多步状态写出来,让后续生成能继续依赖它。
  • 规模很关键:论文强调 CoT 在约百亿到千亿级模型上才明显变强,小模型不一定受益。
  • 解释只是副产品:CoT 让人更容易 debug,但不能把生成出来的步骤直接等同于真实因果机制。
  • gpt-3 —— CoT 延续了 few-shot prompting:示例不是训练数据,而是现场说明书。
  • scaling-laws —— CoT 的“足够大才有效”现象,需要用模型规模和能力涌现来理解。
  • instructgpt —— 指令微调让模型更愿意按人类要求输出步骤和解释。
  • self-consistency-2022 —— CoT 生成一条路,self-consistency 生成多条路再投票。
  • tree-of-thoughts-2023 —— CoT 是单线推理,Tree of Thoughts 是带回退的多线搜索。
  • react —— ReAct 把 CoT 的 Thought 和外部工具 Action 接在一起。
  • deepseek-r1 —— DeepSeek R1 — 强化学习推理模型
  • mmlu-2021 —— MMLU — 用 57 个学科的多选题考一考语言模型
  • self-refine-2023 —— Self-Refine — 让同一个模型自己改自己写的东西