CoT 提示怎么写?
思维链模板、设计原则与推理提升机制详解
原题:请解释思维链(Chain-of-Thought, CoT)提示的编写方法,包括典型模板、设计原则及其在提升大模型推理能力中的作用。
Prompt工程 · 哔哩哔哩真题
30 秒回答
- CoT的核心思想是让模型显式输出中间推理步骤
- 掌握Zero-shot CoT和Few-shot CoT两种典型模板
- 理解示例设计的关键原则(多样性、步数适中、答案正确)
- 明确CoT在复杂推理任务(数学、逻辑、代码)中的有效性边界
回答与解析
答案要点
- CoT的核心思想是让模型显式输出中间推理步骤
- 掌握Zero-shot CoT和Few-shot CoT两种典型模板
- 理解示例设计的关键原则(多样性、步数适中、答案正确)
- 明确CoT在复杂推理任务(数学、逻辑、代码)中的有效性边界
CoT的核心思想
让大模型显式生成中间推理步骤,而非直接输出答案。本质是将隐式推理过程外显化,利用模型的生成能力逐步求解复杂问题。
两种典型模板
1. Zero-shot CoT(零样本)
直接添加触发指令,无需示例:
Q: 一个农场有鸡和兔共35只,脚共94只。鸡兔各几只?
A: Let's think step by step.
或中文版本:"请逐步思考并解答"
2. Few-shot CoT(少样本)
提供含推理过程的示例,格式为 Question → Reasoning → Answer:
Q: 小明有5个苹果,给了小红2个,又买了3个,还剩几个?
A: 小明开始有5个苹果。给小红2个后,剩下5-2=3个。
又买3个后,有3+3=6个。所以答案是6。
Q: [新问题]
A:
设计原则(Few-shot场景)
| 原则 | 说明 |
|---|---|
| 多样性 | 覆盖不同题型和推理模式,避免过拟合 |
| 步数适中 | 步骤过简失去引导作用,过繁增加噪声 |
| 答案正确 | 示例必须准确,错误示例会误导模型 |
| 格式一致 | 统一分隔符和书写风格,降低解析成本 |
作用与边界
有效场景:数学推理、符号逻辑、多步决策、代码调试等需要显式路径的任务
局限性:
- 简单任务可能增加token消耗而无收益
- 事实性问答不需要CoT,直接回答更高效
- 模型能力不足时(如小模型),CoT可能产生幻觉推理链
在Agent中的应用:CoT是ReAct、Plan-and-Solve等Agent架构的基础组件,支撑任务分解与规划能力。
口语版讲法(约4分钟)
- 本质是让模型把推理过程写出来,不是直接猜答案
- 两种模板:Zero-shot加一句触发词,Few-shot给完整例子
- 设计示例的关键:多样性、步骤适中、答案正确,格式一致
- 适用场景和边界:复杂推理任务有效,简单任务反而浪费
- 落地风险:小模型可能产生幻觉,需要验证推理链
这道题问的其实是,怎么让大模型在遇到复杂问题时,不直接跳到一个答案上,而是像人一样一步一步想清楚再说。核心就一句话:把隐式的推理过程显式化。模型本身就有推理能力,但你不引导它,它就可能走捷径、瞎猜。思维链就是给它铺一条路,让它沿着走。
具体做法分两种。先说 Zero-shot CoT,就是零样本,你不需要给任何例子,直接在问题后面加一句触发词。比如问“鸡兔同笼”,你加个“Let's think step by step”,或者中文说“请逐步思考”,模型就会自动开始列步骤、算方程。这个适合你临时问个问题,不想费劲写例子。
另一种是 Few-shot CoT,少样本,你得先给一两个完整的问答例子,每个例子都包含推理步骤和最终答案。比如“小明有5个苹果,给了小红2个,又买了3个,还剩几个?”然后你写推理过程,再写答案。这样模型看到新问题,就会模仿你的格式,也写出推理链。这个更可控,适合对输出格式有要求的生产环境。
设计示例有几个原则,我重点讲两个。一个是多样性,你给的例子要覆盖不同题型和推理模式,别全是加减法,也要有乘除、逻辑判断,否则模型容易过拟合。另一个是步数适中,步骤太短等于没引导,太长又增加噪声,模型可能学到无关细节。还有答案必须正确,格式要一致,这些是基本要求。
思维链最擅长的是数学推理、符号逻辑、多步决策这类需要显式路径的任务。比如在客服退款场景里,用户说“我买了个手机,用了三天屏幕碎了,想退货”,模型需要先判断是不是质量问题、再看是否在退货期、然后考虑运费谁付,每一步都要推理。用思维链,模型就能写出“第一步查订单时间,第二步看售后政策,第三步……”这样可追溯的推理链。
但这里有个边界。简单任务用思维链反而浪费,比如问“今天天气怎么样”,直接答就行,加推理链只会多花 token 还拖慢速度。还有就是模型能力不足时,思维链可能产生幻觉,小模型推理能力弱,它硬编出来的步骤可能是错的,但看着还挺像回事。所以上线前我会特别关注推理链的准确性,用一些验证集来检查中间步骤和最终答案是否一致。
另外,思维链和 Self-Consistency 结合起来效果更好,就是同一个问题跑多次思维链,然后投票选出最一致的答案,能大幅提升稳定性。
所以整体上,我会把思维链看成复杂推理任务的标准组件,但不是万能药。简单任务用直接回答,复杂任务加上思维链,再配合自一致性或者验证机制,这样落地才靠谱。
关键一句:思维链和自一致性(Self-Consistency)结合,通过多次采样投票提升稳定性
面试官还可能这样问
- 问法 1 · 场景切入
假设你在做一个数学辅导机器人,用户问了一道鸡兔同笼的题,你希望模型一步步推理给讲解,而不是直接甩个答案。你会怎么设计prompt来引导模型输出中间步骤?
- 问法 2 · 层层追问
你平时写prompt让模型做推理,一般直接给答案还是让它先说说思路?……如果直接说“逐步思考”效果不好,你会怎么改进?……比如给几个带推理过程的例子,例子要怎么挑才能让模型学得准?
- 问法 3 · 直球架构
解释一下Chain-of-Thought提示的两种典型写法,就是zero-shot和few-shot各是什么模板。设计few-shot示例时要注意哪些原则?CoT在哪些任务上特别管用,哪些场景反而没必要用?”