让大模型别急着抢答:思维链 CoT 推理技术详解

同样一道多步计算题,直接问"答案是多少",大模型常会答错;补一句"一步步想",准确率就涨上去一大截。这个"一步步想",在 LLM 技术里有个正式名字——思维链(Chain-of-Thought,简称 CoT)。
它不换模型、不改权重,只改变"让模型怎么作答"的方式,却能撬动推理能力的很大一块。这篇拆 CoT 到底是怎么回事,以及它为什么能起作用。
先看一个对比:抢答和细算,差在哪
拿一道题看差别。问:"小王有 5 个苹果,又买了 3 个,送了 2 个给朋友,还剩几个?"
直接作答时,模型可能被逼着一口吐出"4 个"这样的数字,中间没有任何缓冲。题目一复杂,多步逻辑挤进一次生成里,错的概率就上来了。
换成 CoT,模型会被引导着把过程摊开:"小王原有 5 个,买了 3 个后是 8 个,送掉 2 个后剩 6 个,所以答案是 6 个。"每一步都只算一小段,再踩着上一步往下走。

差别不在模型变聪明了,而在"生成路径"变了:前者把推理压成了从问题到答案的一跳,后者把它铺成了一段能逐步检查的序列。
CoT 有哪几种触发法
让模型进入"一步步想"状态,常见两条路。
一条是少样本思维链(few-shot CoT):在提示里放几个例题,每个例题不光写答案,还把中间推理步骤完整展示出来。模型照着示例的样式,对新的题目也把过程写全。它的效果依赖示例给得好不好,对新手题、对模型规模都有讲究。
另一条是零样本思维链(zero-shot CoT):不加例题,只在新问题末尾加一句"让我们一步步想"(Let's think step by step),模型自己就切换成分步推理模式。它更省事,但不如精心设计的少样本稳定。
两者一条靠"示范",一条靠"口令",本质都在把模型从"直奔答案"的习惯里拉出来,改成"边想边写"。
为什么 CoT 会有效?从自回归的脾气说起
要理解 CoT 为什么有用,得回到大模型生成的老本行——自回归。模型不是一个整体思考者,它是一路往后接 token:前面接出来的每个字,都会成为后面生成的输入。
这件事带来一个关键含义:模型的"思考空间",其实就是它已经写出来的那些 token。
直接作答时,答案和问题之间几乎空无一物,模型等于要在很短的路径上,一步到位算完所有中间推理——而这些推理没有地方落脚,只能被硬压进隐式的、看不见的步骤里,稍长稍复杂就容易崩。
CoT 把中间步骤显式地写出来,等于给模型腾出了一块"工作记忆"。每一步的结果都变成看得见的 token,供下一步拿来继续推。复杂问题被拆成一个个简单子问题,模型一次只跨一小步,跨错的概率自然降下来。
这也解释了为什么"写出来的推理"往往比"心里默算"更准:不是推理本身变了,而是推理终于有了可以落笔、可以回看的空间。
CoT 不是免费午餐,它有几个坑
思维链有效,但代价和风险也得说清。
一是错误会级联。中间某一步算错,后面所有步骤都踩在这个错上,一路错到底。CoT 把过程显性化的同时,也把错误的传导路径铺得更长。
二是"合理但错误"的推理。模型可能把推理写得头头是道、煞有介事,结论却是错的。外观上像"思考过",实则是自圆其说的幻觉,比直接答错更具迷惑性。
三是成本。把步骤写全,意味着多生成一大串 token,延迟和费用都往上走。对只需要一个简单结论的场景,强上 CoT 可能得不偿失。
在 CoT 之上,还有几个延伸玩法
顺着"多想想、想得更稳"这条思路,CoT 上又长出几个变体。
一个是自洽性(Self-Consistency):对同一题采样多条不同的推理路径,再对答案投个票,取多数。既然单条链可能出错,就多跑几条,用"共识"把偶然错误压下去。
一个是思维树(Tree of Thoughts):不再只走一条链,而是让模型在关键节点展开多个候选分支,再评估哪条更值得继续走,把线性推理升级成树状搜索。这类方法更复杂,但对付需要探索、比较的难题更有一手。
这些玩法万变不离其宗:都是把"一次生成"拉长成"逐步推演",再在推演过程上加纠错、加选择。
小结
把思维链收一下:它解决的是"多步推理被压成一次抢答"的老问题,办法是让模型把中间步骤显式写出来,作为下一步的工作记忆;触发方式分少样本示范和零样本口令两条路;它有效的根子,在于自回归模型的思考空间就是已生成的 token,过程写出来,推理才有落脚处;但它也带来错误级联、合理却错误的推理、token 成本这些代价;在此之上,自洽性和思维树又把"一次生成"升级成"多次推演再纠偏"。
下次想让模型答得更稳,不妨先别急着要答案,让它把解题过程写给你看——不是它变聪明了,而是你给了它一块能想清楚的纸。
