跳到正文

CoT 提示怎么写?

思维链模板、设计原则与推理提升机制详解

原题:请解释思维链(Chain-of-Thought, CoT)提示的编写方法,包括典型模板、设计原则及其在提升大模型推理能力中的作用。

Prompt工程 · 哔哩哔哩真题

30 秒回答

  1. CoT的核心思想是让模型显式输出中间推理步骤
  2. 掌握Zero-shot CoT和Few-shot CoT两种典型模板
  3. 理解示例设计的关键原则(多样性、步数适中、答案正确)
  4. 明确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. 问法 1 · 场景切入

    假设你在做一个数学辅导机器人,用户问了一道鸡兔同笼的题,你希望模型一步步推理给讲解,而不是直接甩个答案。你会怎么设计prompt来引导模型输出中间步骤?

  2. 问法 2 · 层层追问

    你平时写prompt让模型做推理,一般直接给答案还是让它先说说思路?……如果直接说“逐步思考”效果不好,你会怎么改进?……比如给几个带推理过程的例子,例子要怎么挑才能让模型学得准?

  3. 问法 3 · 直球架构

    解释一下Chain-of-Thought提示的两种典型写法,就是zero-shot和few-shot各是什么模板。设计few-shot示例时要注意哪些原则?CoT在哪些任务上特别管用,哪些场景反而没必要用?”

同模块相关题目