什么是 CoT 思维链?它的工作原理是什么?
- 标签:Prompt、CoT 思维链
🏛 业务架构师
CoT(Chain of Thought,思维链)指让模型在给出最终答案前先输出中间推理步骤——"把思考过程写出来再作答"。原理:大模型是逐 token 生成的,中间推理步骤相当于给模型"外部草稿纸"——每一步生成都把前一步的推理结果纳入上下文,实质上扩展了有效计算深度,让多步问题的中间结果显性化,正确率显著提升(数学、逻辑类任务提升最大)。
工作机制的通俗理解:不写过程直接答题,模型要在"一次前向计算"里完成所有推理——超出单步能力就出错;写出中间步骤,等于把一个深推理任务拆成若干浅推理任务的接力,每步都在模型舒适区内。
两种触发方式:
- Zero-shot CoT:指令加一句"请一步一步思考"(Let's think step by step)——零成本、普适;
- Few-shot CoT:示例里展示完整推理过程(问题→推理链→答案),模型模仿——控制力更强,适合特定推理范式。
业务应用要点:复杂分析(报价核算、风控判断)开 CoT 提准确率;简单任务(分类、抽取)不必开——白白多耗输出 token;对用户不可见的后台调用,CoT 的 token 是纯成本,要权衡。2026 年的重要演进:o1/R1 类推理模型已把 CoT"内化"为原生深度思考能力(推理链在专用空间展开),普通模型 + 手动 CoT 的效果差距被拉平甚至超越——但在便宜的非推理模型上,CoT 仍是免费 lunch。我的实用主义选择:简单模型+CoT 处理中复杂度任务,极端难题上推理模型。
🏗 系统架构师
CoT(Chain-of-Thought)= 让模型在给出答案前生成中间推理步骤——"think step by step"。工作原理我从三层讲:
机理:
- 计算深度换准确率:Transformer 单次前向的"串行计算深度"固定(层数),CoT 把多步推理问题转化为"在生成 token 的过程中逐 bit 展开计算"——每个生成的 token 是一次新的前向,推理链越长可用的串行计算越多。数学题一步出答案 = 硬在小计算量里挤,逐步推 = 把计算铺开;
- 中间结果锚定:每步的中间结论写进上下文,后续步骤直接引用(无需在隐层里保持)——上下文成了"草稿纸/外部内存",降低远距离信息保持的负担;
- 分解降低单步难度:复杂问题拆成每步简单判断,单步准确率高,链式组合后整体正确率显著提升(实验:GSM8K 类任务 few-shot CoT 提升十几个点以上,且只在足够大的模型上涌现——小模型 CoT 反而更差)。
使用方式:Zero-shot CoT("Let's think step by step"一句话)零成本起步;Few-shot CoT(示例带推理过程)效果更强;推理增强模型(o1/R1 类)把 CoT 内化到训练里,用户无需手动触发。
架构师的清醒认知:CoT 的推理链不保证忠实(模型可能先有答案再编理由——unfaithful reasoning);链长与成本/延迟线性正相关;生产中按任务分级——事实查询不需要 CoT(浪费),多步推理/数学/代码必须开。
演化:CoT → Self-Consistency(多链投票)→ ToT(树状探索)→ 原生推理模型——一路都是"用推理时的计算换准确率"(test-time compute scaling)这条主线。
💻 全栈开发专家
CoT(Chain-of-Thought,思维链):让模型在给出最终答案前先输出中间推理步骤——「想出声」。
原理(为什么有效):
- 计算换精度:Transformer 每个 token 生成的计算量固定,直接给答案 = 一跳推理;输出推理链 = 把问题切分成几十个小步,每步分配一次完整前向计算——难题需要更多计算,CoT 把计算量拉满;
- 训练分布匹配:预训练语料里人类的解题/论证过程就是逐步的,逐步输出更贴近模型学到的模式;
- 错误局部化:中间步骤可检查,错在第几步一目了然(推理可审计);
- 注意力引导:已生成的推理 token 成为后续生成的上下文锚点,相当于模型给自己「打草稿」。
用法(从便宜到贵):
- Zero-shot CoT:「请一步一步思考」(Let's think step by step)——一句话零成本;
- Few-shot CoT:示例里包含推理过程,格式与风格更可控;
- 自洽性(Self-Consistency):多次采样推理路径,答案投票——准确率再上一层,成本 ×N;
- 推理模型:o1/R1/Claude 思考模式把 CoT 内化进训练(RL 学会长推理),用户不用再提示。
适用边界(工程认知):数学/逻辑/代码等多步可验证任务收益大;简单事实问答用 CoT 纯浪费(还可能「想歪」);生成任务(写作)不需要;低温度+CoT 组合时注意别让推理链僵化复读。