| Q74 | What is Chain-of-Thought prompting, and when is it useful
1️⃣ 考察意图
面试官想看你是否真正理解 Chain-of-Thought(CoT)的本质,而不仅仅是背定义。考察类型是 概念理解 + 工程取舍。刁钻点在于:CoT 不是万能药,它何时失效、为什么失效、以及如何用变体弥补,才是区分“会用”和“懂行”的关键。答好了能展示你对提示工程的深度理解、对模型推理边界的认知,以及在实际项目中做技术选型的能力。
2️⃣ 标准答
Chain-of-Thought(CoT)是一种提示技术,通过引导大语言模型在输出最终答案前,显式生成中间推理步骤,从而提升复杂推理任务的准确性。它本质上是将模型的“黑盒”推理过程外显化,让模型像人类一样“一步步思考”。
核心分类与实现方式
- 零样本 CoT(Zero-shot CoT):在提示末尾直接添加“Let’s think step by step”或“Let’s work this out in a step-by-step way to be sure we have the right answer.”。这是最轻量级的实现,无需示例,适用于通用推理场景。注意:不同模型对触发词的敏感度不同,比如 GPT-4 对“Let’s think step by step”响应稳定,但小模型(如 7B 参数级别)可能需要更具体的引导,如“First, ... Then, ... Finally, ...”。
- 少样本 CoT(Few-shot CoT):提供 2-3 个完整的“问题-推理链-答案”示例。示例中的推理链必须清晰、无跳跃,且覆盖问题类型的关键逻辑。例如,在 GSM8K 数学题上,示例应包含“先计算总人数,再计算每人分得的苹果数”这样的中间步骤。工程取舍:示例数量不是越多越好。超过 3-5 个示例,模型可能开始“过拟合”示例的格式而非推理逻辑,导致泛化能力下降。实践中,3 个精心设计的示例通常是最优选择。
适用场景与边界
- 强适用场景:
- 数学推理:如 GSM8K、MATH 数据集上的多步计算题。CoT 能将复杂计算分解为可追踪的子步骤,减少计算错误。
- 常识推理:如“如果一个人把湿衣服放在室外,第二天早上衣服会怎样?”这类需要因果链的问题。
- 逻辑推理:如“所有 A 是 B,所有 B 是 C,那么 A 是 C 吗?”这类需要多步演绎的任务。
- 代码生成:在生成复杂函数时,先写伪代码或注释描述逻辑,再生成具体代码,能明显提升代码正确性。
- 弱适用或失效场景:
- 简单事实性问答:如“法国首都是哪里?”直接回答即可,CoT 会引入不必要的 token 消耗和延迟,且可能因“过度思考”引入幻觉。
- 模型能力不足:当模型本身不具备解决该问题的能力时(例如,一个 7B 模型尝试解决大学数学题),CoT 只会生成“看起来合理但实际错误”的推理链,即“虚假推理”。实际落地的坑:在部署 CoT 时,必须设置一个“置信度阈值”或“答案验证机制”。例如,在金融风控场景中,如果 CoT 推理链中出现逻辑矛盾(如“先增加后减少”但最终答案却是“增加”),应直接拒绝该输出并触发人工审核。
- 需要创造性或直觉的任务:如诗歌创作、情感分析,CoT 的线性推理会扼杀模型的创造力。
关键变体与工程取舍
- Self-Consistency:对同一问题多次运行 CoT(通常 5-10 次),然后通过投票或加权平均选择最一致的答案。取舍:准确率提升 5-10%(在 GSM8K 上从 70% 到 80%),但推理成本线性增加(5 次就是 5 倍 token 消耗)。适用于对准确率要求极高、且延迟不敏感的场景(如离线数据分析)。
- Tree-of-Thought(ToT):将推理过程建模为树状结构,模型在每一步探索多个分支,并评估每个分支的“可行性”。取舍:能解决需要回溯的复杂问题(如“24 点游戏”),但实现复杂、成本极高,且需要额外的“评估器”模型。目前主要停留在研究阶段,工业落地较少。
- Chain-of-Thought with Self-Consistency + Rerank:在 RAG 场景中,先用 CoT 生成推理链,再用检索到的文档对推理链中的每个步骤进行验证,最后用 reranker 选择最可靠的答案。这是目前工业界最实用的组合方案。
3️⃣ 答题模板(30 秒电梯版)
“这个问题我从定义、适用场景和工程取舍三个层面回答。定义上,CoT 通过引导模型生成中间推理步骤来提升复杂推理能力,分为零样本和少样本两种。适用场景上,它强于数学、逻辑、常识推理,但弱于简单事实问答和创造性任务。工程取舍上,Self-Consistency 能提升准确率但成本高,ToT 适合复杂回溯但实现复杂。总结一句:CoT 是推理增强的利器,但必须根据任务复杂度和成本做技术选型。”
4️⃣ 高频追问 & 应对
追问 1:CoT 和 Few-shot 有什么区别?为什么 CoT 在数学题上效果更好?
Few-shot 只提供“问题-答案”对,模型学习的是输入到输出的直接映射;CoT 提供“问题-推理链-答案”,模型学习的是推理过程本身。在数学题上,Few-shot 容易让模型“猜”答案(比如看到“苹果”就联想到“减法”),而 CoT 强制模型显式计算每一步,减少了“跳跃式错误”。实验数据:在 GSM8K 上,Few-shot(3-shot)准确率约 40%,而 CoT(3-shot)准确率约 70%,差距主要来自多步计算题。
追问 2:如果模型在 CoT 推理链中产生了错误步骤,但最终答案正确,你怎么处理?
这是“虚假推理”问题。解决方案:1)在训练阶段,使用“过程监督”(Process Supervision)而非“结果监督”,即对推理链中的每一步进行标注和奖励。OpenAI 的 Let’s Verify Step by Step 论文证明,过程监督能显著减少虚假推理。2)在推理阶段,引入“步骤级验证器”,对每一步的逻辑一致性进行打分,如果某一步得分低于阈值,则拒绝该推理链并重新生成。3)在工程上,对关键场景(如医疗诊断)设置“人工审核点”,在推理链的关键步骤(如“诊断结论”)处暂停,由人工确认后再继续。
追问 3:CoT 在长上下文任务中(如 100k token 的文档推理)效果如何?有什么优化?
效果会显著下降。原因:1)长上下文中的“注意力稀释”问题,模型难以在长序列中保持推理链的连贯性。2)CoT 生成的中间步骤会进一步增加上下文长度,导致“上下文窗口溢出”或“早期 token 被遗忘”。优化方案:1)使用“分块推理”,将长文档切分为多个子问题,每个子问题独立运行 CoT,最后汇总。2)结合“检索增强生成(RAG)”,只将推理链中当前步骤需要的文档片段注入上下文,而非全量文档。3)使用“滑动窗口注意力”或“稀疏注意力”的模型架构(如 LongLoRA、Mistral 的 sliding window),减少长上下文对推理的干扰。
5️⃣ 避坑 · 常见错误答法
- ❌ 说“CoT 对所有推理任务都有效,是万能提示技术” → ✅ 正确切入:CoT 在简单事实问答和创造性任务上效果不佳,甚至可能因“过度思考”引入幻觉,必须根据任务类型做选择。
- ❌ 说“CoT 就是加一句‘Let’s think step by step’,没什么技术含量” → ✅ 正确切入:CoT 的实现有零样本和少样本之分,少样本 CoT 的示例设计(推理链的粒度、覆盖的逻辑类型)直接影响效果,且需要结合 Self-Consistency 等变体才能稳定提升准确率。
- ❌ 说“CoT 的推理链越长越好,能覆盖更多细节” → ✅ 正确切入:推理链过长会导致 token 消耗激增、延迟增加,且模型可能在长链中“迷失”,产生逻辑断裂。实践中,推理链应控制在 3-7 步,每步只做一次原子操作(如“计算总和”或“比较大小”)。
6️⃣ 简历呼应
- 如果你有 RAG 项目:从“CoT 在 RAG 中作为推理增强器”切入,强调你如何用 CoT 生成推理链,再用检索到的文档验证每一步,最后用 Self-Consistency 投票选出最可靠答案。可以提你对比过“直接 RAG”和“CoT + RAG”在某个数据集(如 HotpotQA)上的准确率差异。
- 如果你只做过传统 NLP:用“传统 NLP 中的管道式推理”类比 CoT。例如,传统文本分类中的“先分词、再特征提取、最后分类”就是 CoT 的雏形。强调你理解“分解问题”是提升复杂任务准确率的通用方法论,CoT 只是将其显式化。
- 如果你是校招无项目:聚焦“GSM8K 数据集上的 CoT 复现实验”。描述你如何用 Hugging Face 的 transformers 库加载一个 7B 模型(如 LLaMA-2-7B),分别测试零样本 CoT、少样本 CoT 和 Self-Consistency 的效果,并分析不同推理链长度对准确率的影响。这能展示你的动手能力和对细节的思考。
- “Chain-of-Thought Prompting Elicits Reasoning in Large Language Models”(Wei et al., 2022)—— CoT 的开山论文
- “Let’s Verify Step by Step”(Lightman et al., 2023)—— 过程监督的经典论文
- “Tree of Thoughts: Deliberate Problem Solving with Large Language Models”(Yao et al., 2023)—— ToT 的论文
- “Self-Consistency Improves Chain of Thought Reasoning in Language Models”(Wang et al., 2022)—— Self-Consistency 的论文
- “Large Language Models are Zero-Shot Reasoners”(Kojima et al., 2022)—— 零样本 CoT 的论文