少样本提示救不了多步推理题:示例只能告诉模型答案长什么样,教不会它怎么算。这篇讲一个对症的技术——思维链(CoT)提示:让模型把中间推理步骤写出来,再给最终答案。读完你能给推理任务写出带示例的思维链提示,会用只加一句话的零样本版本,还能让模型自动生成示例。凡是模型「会做但老算错」的任务——算术、逻辑判断、多条件约束——都值得先用它试一试。
思维链提示是什么
思维链(chain-of-thought,CoT)提示由 Wei 等人 2022 年提出,通过中间推理步骤实现复杂的推理能力:不再让模型直接给答案,而是把「怎么算出来的」写进演示里,或让模型自己展开。它可以和少样本提示结合使用,适合需要先推理再回答的更复杂任务 [1]。背后的思路不难理解:直接要答案时,模型必须「一步到位」,中间过程没有地方安放;让它先写步骤,每一步的输出都会成为下一步的输入,复杂的计算就被拆成了若干个简单计算。写作示范时也是同一个道理——演示里的推理链写得越清楚,模型模仿得越像样。
作者声称,这是模型规模足够大时才会出现的新兴能力(emergent ability)——小模型即使写了推理步骤也未必受益 [1]。
带示例的思维链提示怎么写
还是上一篇做不对的那道奇数求和题。这次写演示时,把每一步算术都写出来 [1]:
这组数中的奇数加起来是偶数:4、8、9、15、12、2、1。
A:将所有奇数相加(9、15、1)得到25。答案为False。
这组数中的奇数加起来是偶数:17、10、19、4、8、12、24。
A:将所有奇数相加(17、19)得到36。答案为True。
这组数中的奇数加起来是偶数:16、11、14、4、8、13、24。
A:将所有奇数相加(11、13)得到24。答案为True。
这组数中的奇数加起来是偶数:17、9、10、12、13、4、2。
A:将所有奇数相加(17、9、13)得到39。答案为False。
这组数中的奇数加起来是偶数:15、32、5、13、82、7、1。
A:模型输出:
将所有奇数相加(15、5、13、7、1)得到41。答案为False。提供了推理步骤之后,这个任务得到了完美的结果 [1]。更有意思的是示例不必多,只给一个示例似乎就够了 [1]:
这组数中的奇数加起来是偶数:4、8、9、15、12、2、1。
A:将所有奇数相加(9、15、1)得到25。答案为False。
这组数中的奇数加起来是偶数:15、32、5、13、82、7、1。
A:输出同样是正确的 将所有奇数相加(15、5、13、7、1)得到41。答案为False。。对比上一篇的失败版本:同样的题,示例只给「答案是True/False」时模型答错;示例里把奇数列出来、算出和、再下结论,模型就学会了完整的解题流程。差别不在示例数量,而在示例里有没有推理过程。给推理类任务写演示时,记住这个模式:把通向答案的每一步都写出来,让「怎么算」和「答案是什么」出现在同一条演示里。
零样本 CoT:一句话就够
手头没有现成示例时,还有一个更省事的变体。零样本 CoT 由 Kojima 等人 2022 年提出,做法是在提示末尾加一句「让我们逐步思考」[1]。
先看不加的效果。一道简单的算术应用题:
我去市场买了10个苹果。我给了邻居2个苹果和修理工2个苹果。然后我去买了5个苹果并吃了1个。我还剩下多少苹果?模型的回答:
11个苹果我去市场买了10个苹果。我给了邻居2个苹果和修理工2个苹果。然后我去买了5个苹果并吃了1个。我还剩下多少苹果?
让我们逐步思考。模型这次把每一步都写了出来:从 10 个苹果开始,送出去 4 个剩 6 个,买 5 个变 11 个,吃掉 1 个剩 10 个 [1]:
首先,您从10个苹果开始。
您给了邻居和修理工各2个苹果,所以您还剩下6个苹果。
然后您买了5个苹果,所以现在您有11个苹果。
最后,您吃了1个苹果,所以您还剩下10个苹果。同样的思路也可以用在中文任务上:触发语保持中文、和提示同语言即可,关键是把「分步展开」这个要求明确传达给模型。手头没有多少示例可用时,这个简单提示特别有用——它不需要示例,等于把少样本里「写演示」的工作全部省掉,代价是输出变长,因为中间步骤都要写出来 [1]。
写思维链提示的几个注意点
动手前先记几条:
- 演示里的推理链必须正确。模型会照搬演示里的步骤风格,演示算错了,它也会照着错下去;写之前自己把每道示例验算一遍;
- 步骤粒度要和任务匹配。太粗(一步到位)起不到拆解作用,太细会拖长提示、增加调用开销,像奇数求和那样「列出奇数、求和、下结论」三步正合适;
- 保持答案格式统一。例子里每条演示都以「答案为X」收尾,模型也会用同样的格式收尾,程序好解析;
- 示例少就用零样本版本,示例多、任务杂就用 Auto-CoT 批量生成,不必全部手工制作。
Auto-CoT:让模型自己生成示例
带示例的思维链效果好,但示例要手工制作,还要兼顾有效和多样,人工做这件事费时费力,还可能得到次优的示例组合 [1]。Zhang 等人 2022 年提出 Auto-CoT 来省掉这道工序:用大模型配合「让我们一步一步地思考」提示,一条接一条地自动生成推理链 [1]。
自动生成的链仍可能出错。为了减轻错误的影响,演示的多样性很重要:Auto-CoT 对问题做多样性采样,再生成推理链来构建演示 [1]。
它的流程分两个阶段 [1]:
- 问题聚类:把给定的问题划分成若干聚类;
- 演示抽样:从每个聚类里选一个有代表性的问题,用零样本 CoT 加一个简单启发式生成它的推理链。
启发式可以是问题长度(例如 60 个 tokens)和推理步骤数(例如 5 步),以此鼓励模型使用简单而准确的演示 [1]。Auto-CoT 的代码在 GitHub 仓库 amazon-science/auto-cot [1]。
什么任务该用它
把两篇连起来判断:答案格式就是全部难点的任务,少样本提示够用;需要多步推理的任务,直接上思维链——手头有示例就写带推理步骤的演示,没有示例就加一句「让我们逐步思考」。两类提示可以叠加:每个演示都带推理步骤的少样本 CoT,在复杂任务上效果更好 [1]。迁移到自己的任务时,先用零样本版本试水,不行再补带推理步骤的演示,最后才考虑 Auto-CoT 这类自动生成方案。前提也要记住:这项能力只在足够大的模型上才可靠,换小模型之前先验证推理质量 [1]。
本文改编自 DAIR.AI 开源教程《Prompt Engineering Guide》的思维链提示一节[1],原文以 MIT 许可证发布。
来源
- 1链式思考(CoT)提示 | Prompt Engineering GuideDAIR.AI Prompt Engineering Guide (MIT)
引用本页: 思维链(CoT)提示. TellWorld, https://www.tellworld.net/zh/practice/practice-prompt-chain-of-thought. 更新于 2026-11-14