思维链(CoT):让推理显式化

核心02-提示设计核心技法⏱ 25 分钟已审校
学习进度:

一句话定义

思维链(Chain-of-Thought, CoT)通过让模型在给出答案前先输出中间推理步骤,把一次"凭感觉"的生成变成多步"有路径"的生成,显著提升需要推理的任务的正确率。

为什么重要

直接问答案是让模型一步登天;CoT 把问题变成逐级下台阶。它是提示工程中被验证最充分、收益最大的技法之一,并且派生了整族方法(自洽性 自洽性(Self-Consistency):用多次采样投票换稳定、ReAct ReAct:推理与行动交织的提示模式、任务分解 任务分解与规划提示)。同样重要的是知道它的边界:对简单任务无效、对纯感知任务无效、且推理步骤可能是"事后合理化"——理解这两面才能不滥用。

前置知识

直观类比

小学数学老师逼你"写过程"不是刁难:写过程强迫每一步落到纸面,跳步立刻暴露。模型同理——"只写答案"时它用直觉一步跳,"写过程"时每步都有草稿可依。

图示

直接问答:  问题 ──────────────→ 答案           (一步跳跃,易错)
CoT:      问题 → 步骤1 → 步骤2 → 步骤3 → 答案  (每步都是简单续写)
                     ↑ 每步输出追加进上下文,成为下一步的条件

核心概念

  • 零样本 CoT:一句咒语式追加,如"请一步一步思考,再给出最终答案"。成本最低,收益不稳。
  • 少样本 CoT:示例本身就包含完整推理过程(问题 → 推理步骤 → 答案),教学效果最稳。
  • 中间步骤(Intermediate Steps):显式写出的推导节点;它们进入上下文,成为后续生成(含最终答案)的条件。
  • 结构化 CoT:规定推理的固定框架(如"先列已知条件 → 再列公式 → 代入 → 检查"),把自由推理变成流程执行。
  • 推理-答案分离:输出中明确标记推理区与最终答案区,便于程序解析(与 输出格式控制三件套:指令、示例与结构 配合)。

原理与机制

为什么"先写推理再写答案"更准?主流解释:每生成一个 token 都会追加进上下文(分词与上下文:模型如何"读"你的话),写出中间步骤相当于把模型自己的"草稿"变成后续步骤的条件——用生成换算力,把单步难以一次算对的问题拆成一串容易的续写。由此得到工程推论:

  1. 推理链必须留在上下文里才有效——让模型"心里想但不写"无法实现(除非模型有隐藏推理能力,那属于模型特性而非提示技法);
  2. 推理步骤质量决定答案质量——错误的中间步骤会自信地导出错误结论(错误传播);
  3. CoT 的叙述可能是事后合理化:答案正确不代表推理真实,涉及安全、合规的场景不能把 CoT 当作可审计的解释(重要伦理边界,见 内容边界、越狱与数据卫生)。

公式或模型

本节不适用——CoT 是提示模式而非数学模型;其收益的量化来自论文中的基准对比,工程上用 评估集构建:黄金样本与失败分类 评估集实测自身任务的提升幅度。

实例或案例

案例:订单费用核算的 before/after。

before:

用户买了 3 件单价 89 元的商品,用了一张减 30 的券,另收运费 8 元,
会员再打 95 折。请计算实付金额。

症状:直接给一个数,折扣与券的抵扣顺序常错。

after(少样本 CoT + 结构化步骤):

按以下步骤计算并展示每步:
第一步:小计 = 单价 × 数量
第二步:按券规则抵扣(券只作用于商品金额)
第三步:对抵扣后的金额按会员折扣打折
第四步:加运费,得出实付
问题:{订单描述}
请依次写出第一步到第四步的计算,最后用「实付 = X 元」结尾。

操作步骤:① 判断任务是否需要多步推理(算数、比较、多条件规则、因果链)——简单改写、翻译不需要 CoT;② 设计固定步骤框架而非开放式"想想看";③ 要求答案区与推理区分离;④ 用评估集验证收益(通常算术/规则类提升明显,简单任务无差异甚至变啰嗦)。

排错清单:

  • 症状:推理对了答案抄错 → 在提示中加"最后重读你的推理,单独给出最终答案"的自检步骤;
  • 症状:步骤自由发挥导致路径漂移 → 把"一步一步思考"升级为编号的固定框架;
  • 症状:输出过长、成本上升 → CoT 有 token 代价,只在推理密集任务启用,简单任务退回零样本。

常见误区

  • 万金油化:所有提示都加"请一步步思考"——对模式匹配型任务无效,还稀释注意力与预算;
  • 把 CoT 当可审计依据:推理文本可能是事后合理化,合规场景需要独立校验而不是相信模型的解释;
  • 忽略错误传播:不检查中间步骤,错误会一路传导到最终答案且看起来头头是道;应加自检步骤或抽验中间步骤。

自测题

  1. 为什么 CoT 要求模型"写出"而不是"想着"推理?

答:生成逐 token 进行,只有写出的 token 才进入上下文成为后续条件;不写出来就没有"草稿效应"。

  1. 哪类任务加 CoT 无效甚至有害?

答:单步感知/模式匹配任务(翻译、简单改写、直接分类)——无需多步推理,徒增输出长度与漂移风险。

  1. 为什么不能把模型的 CoT 输出直接当作合规解释?

答:推理文本可能是对既成答案的事后合理化,与真实内部过程无保证一致。

与其他知识点的关系

自洽性(Self-Consistency):用多次采样投票换稳定 用多次 CoT + 投票对冲单条推理链的随机错误;ReAct:推理与行动交织的提示模式 在 CoT 中插入行动步骤;任务分解与规划提示 把 CoT 升级为显式任务分解;CoT 的 token 成本要计入 上下文窗口与注意力预算 的预算。

延伸阅读

  • 论文:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models(Wei et al., 2022)——CoT 的奠基实证。

来源

  • Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (Wei et al.
  • 2022)