Chain-of-Thought (CoT,思维链)

389 阅读3分钟

Chain-of-Thought (CoT,思维链) 是一种让大语言模型(LLM)分步骤推理的技术,通过模拟人类“逐步思考”的过程,显著提升模型在复杂问题上的表现。以下是通俗易懂的解释:


1. Chain-of-Thought 是什么?

  • 核心思想
    要求模型像人类一样展示推理过程,而不仅仅是直接输出最终答案。
    对比传统方式

    • 直接回答
      问题:“小明有5个苹果,吃了2个,又买了3个,现在有几个?” → 模型输出:“6”
    • Chain-of-Thought
      模型输出:“小明原有5个,吃掉2个剩余5-2=3个,再买3个后是3+3=6个。所以答案是6。”
  • 关键作用
    解决模型“凭直觉瞎猜”的问题,尤其对数学题、逻辑推理、复杂决策等任务效果显著。


2. 为什么需要Chain-of-Thought?

传统模型的短板

  • 黑箱式回答:模型直接输出结果,无法判断其逻辑是否正确。
  • 易犯低级错误:面对多步骤问题时,可能跳过关键推理步骤(如漏掉“吃了2个”的减法)。

CoT的优势

提升准确性:分步推理减少遗漏或逻辑跳跃。
可解释性:能追踪模型“思考过程”,方便人类验证。
泛化能力:学会推理方法后,可解决未见过的类似问题。


3. 如何实现Chain-of-Thought?

(1)Few-shot CoT(示例引导)

在输入中提供带推理步骤的示例,模型会模仿这种格式:

示例问题:  
“花园有3束红花,白花比红花多2束,共有多少花?”  
示例回答:  
“红花有3束,白花有3+2=5束,总数是3+5=8束。所以答案是8。”  

待解决问题:  
“商店早上卖出8杯咖啡,下午卖出的是上午的2倍,全天卖了多少杯?”  
模型输出:  
“上午卖出8杯,下午卖出8×2=16杯,全天是8+16=24杯。所以答案是24。”  

(2)Zero-shot CoT(无示例激发)

通过指令直接要求模型分步思考(无需示例):

输入:  
“请逐步思考:小明有5个苹果,吃了2个,又买了3个,现在有几个?”  
模型输出:  
“1. 原有5个;2. 吃掉2个后剩5-2=3个;3. 买3个后是3+3=6个。答案是6。”  

(3)自动生成CoT(Self-Consistency)

让模型生成多条推理路径,投票选出最一致的答案,进一步提高可靠性。


4. 实际应用场景

  • 数学应用题
    “一个班级有20名学生,60%是女生,女生中一半戴眼镜,戴眼镜的女生有多少?”
    → 模型分步计算百分比和人数。
  • 逻辑谜题
    “如果所有A都是B,有些B是C,那么A和C的关系是什么?”
    → 模型用集合论逐步推导。
  • 真实世界决策
    “根据用户浏览记录,推荐产品并解释理由。”
    → 模型展示“用户喜欢X→X与Y同类→推荐Y”的链条。

5. 与其他技术的区别

技术目标输出形式
通用模型广泛的知识覆盖直接答案(可能不靠谱)
指令调优执行明确任务简洁结果(无推理过程)
对话调优自然多轮交互拟人化但可能不严谨
Chain-of-Thought复杂问题分步解决答案+推理步骤

6. 进阶变体

  • Tree of Thoughts (ToT):让模型并行探索多条推理路径(像树枝分叉),选择最优解。
  • Algorithm of Thoughts (AoT):将推理过程结构化,类似计算机算法。