CoT思维链
让模型把推理过程一步步写出来再给答案,准确率显著高于直接蹦结论
思维链(Chain of Thought,CoT)指让模型在给出最终答案之前,先把中间的推理步骤显式地写出来。就像考试要求"写出解题过程"——写过程的正确率明显高于直接写答案。
为什么这招管用
模型是逐 Token 生成的,每个 Token 的计算量大致固定。直接要答案,等于要求它在一次前向传播里完成全部推理;把过程写出来,相当于把复杂推理摊到几十上百个 Token 上,每一步只需要在上一步的基础上前进一点点。
另一个作用是自我条件化:已经写出的推理步骤会成为后续生成的上下文,把模型约束在一条更一致的路径上,减少中途跳步。
怎么用
- 零样本 CoT:在指令里直接加一句"请一步步思考"。成本最低,对推理类任务往往立刻有效。
- 少样本 CoT:在示例里把完整的推理过程写出来,模型会照着这个粒度推。控制力更强,适合需要固定推理框架的场景。
- 结构化 CoT:规定推理的步骤,比如"先列出已知条件 → 再列出待求 → 再逐步推导 → 最后给结论"。适合有标准分析流程的业务。
- 内化的 CoT:近两年的推理模型把这个过程训进了模型内部,不用你在 Prompt 里要求,它自己会先推理再作答。
代价和适用边界
CoT 不是免费的,也不是万能的:
- 贵且慢。推理过程是实打实的输出 Token,而输出 Token 通常是最贵的。延迟也随之上升。
- 对简单任务没有收益,甚至可能变差——分类、抽取、改写这类任务加 CoT 是浪费。
- 推理过程不等于真实原因。模型写出来的步骤是生成的文本,可能是对结论的事后合理化,而不是它内部真正的计算路径。不能把它当作可审计的依据。
- 步骤错了会一路错到底。中间某步出错,后面的推理会在错误基础上继续,而且看起来一样自信。
实践建议
- 按任务类型开关。数学、逻辑、多约束决策、代码调试用;简单分类和格式转换不用。
- 把过程和结论分开。让模型把推理放在一个字段、最终答案放在另一个字段,前端只展示结论,需要时再展开过程。既保留收益又不干扰体验。
- 用了推理模型就别再手动加 CoT。这类模型自带推理阶段,再叠一层"请一步步思考"通常无益,有时反而干扰。
常见误解
"CoT 能消除幻觉"——它降低推理类错误,但不解决知识性错误。模型不知道的事实,想多久都还是不知道,那要靠检索。
什么时候会用到
数学、逻辑、多步决策、代码调试类任务的标准做法;也是推理模型的核心机制。
例句
- 这题让它一步步推,直接要答案错得离谱。
- 简单分类别加 CoT,又慢又贵还没收益。
- 它写的推理过程不能当审计依据,那是生成的文本不是真实计算路径。
别混淆
别把模型写出的推理过程当成它「真实的思考过程」。那是生成结果,可能是对结论的事后编排。