思维链(Chain-of-Thought,CoT) 是一种提示工程技术,通过让大语言模型将复杂问题拆解为多个推理步骤,逐步得出最终答案,显著提升了大模型在复杂推理任务上的表现。CoT是提示工程领域的一个重要突破,证明了大型语言模型本身就具备复杂推理能力,只需要正确的引导就能激发。
思维链提示通过在示例中不仅给出问题和答案,还给出中间推理步骤,引导大语言模型模仿这种逐步推理的方式解决问题。
标准提示:问题 → 答案
CoT提示:问题 → 推理步骤 → 答案
例如在算术应用题中,CoT会让模型给出每一步计算过程,而不仅仅是最终答案。
思维链的本质是利用大模型的涌现能力,将复杂任务拆解为多个简单子任务。它模拟了人类逐步思考解决复杂问题的过程,让大语言模型能够充分利用其参数中存储的知识和推理能力。
CoT可以看作是一种语境学习(In-Context Learning) 形式,不需要微调模型,只需要设计好提示就能生效。
| 对比项 | 标准提示 | CoT提示 |
|---|---|---|
| 输出 | 只给出最终答案 | 给出完整推理路径 |
| 复杂问题 | 容易出错 | 准确率显著提升 |
| 数据需求 | 少量示例 | 同样少量示例,需要标注推理步骤 |
| 模型规模 | 小模型也能用 | 需要较大模型才能生效 |
CoT通过多种机制提升大模型的复杂推理能力:
不需要手动标注推理示例,只需要在问题末尾加上 "Let's think step by step",就能引导模型自动生成思维链。
这种方法非常简单,任何问题都可以直接使用,不需要标注示例。在很多推理任务上也能取得不错效果。
使用示例:
问题:我去市场买了10个苹果。给了邻居2个,给了修理工2个,然后又买了5个,吃了1个。我还剩几个苹果?
Let's think step by step.提供几个人工设计的CoT示例作为上下文,让模型学习推理方式,然后解决新问题。这是CoT最经典的形式,效果通常比Zero-shot-CoT更好。
Self-Consistency是对CoT的改进:对同一个问题采样多个不同的推理路径,然后投票选出最一致的答案,进一步提升准确率。
思路:复杂问题往往有多种推理路径,多个结果投票比单次推理更可靠。
CoT特别适用于:
**什么是思维链(CoT)?为什么有效? 思维链是一种提示工程技术,通过在提示中提供中间推理步骤,引导大语言模型逐步思考解决复杂问题。有效原因:分解复杂问题降低难度,示范推理步骤帮助模型学习,激活背景知识,模拟人类推理过程,提升复杂任务准确率。
**Zero-shot-CoT和Few-shot-CoT的区别?
**为什么CoT只在大模型上有效?小模型为什么不行? CoT依赖大模型的涌现能力。只有模型规模达到一定程度,才能产生复杂推理能力和分步思考的能力。小模型参数量不足,缺乏足够的知识和推理能力,即使提示也无法产生正确的思维链。
**Self-Consistency是什么?怎么工作的? Self-Consistency是CoT的改进方法:对同一个问题采样多个不同的推理路径,得到多个答案,然后投票选择最频繁的答案作为最终输出。利用多个推理结果的一致性提升准确率,比单次CoT更可靠。
**思维链存在哪些局限性?
**为什么思维链能提升大模型的推理能力? 主要原因:
**CoT出现之前,大模型在复杂推理上表现差的原因是什么? 传统提示直接让模型输出答案,没有引导分步思考,大模型往往跳过关键推理步骤直接猜测答案,导致错误率高。CoT强制让模型输出推理步骤,迫使模型分步思考,从而提升准确率。
**除了数学推理,CoT还能应用在哪些场景?
**你认为CoT未来可以从哪些方面改进?
**CoT和In-Context Learning的关系是什么? CoT是In-Context Learning(上下文学习)的一种特殊应用,它利用上下文示例教模型学会分步推理。CoT将上下文学习从"输入-输出"映射扩展到"输入-推理-输出",激发了模型的推理能力。