引言

自Chain-of-Thought(CoT)被提出以来,研究者们发展出多种变体以适应不同场景需求。从最初的Few-shot CoT到Zero-shot CoT,再到Auto-CoT、Tree-of-Thought、Graph-of-Thought等,每种变体都有其独特优势和适用场景。本文对主流CoT变体进行系统对比分析,帮助开发者选择最适合的推理增强方案。

基础变体

Zero-shot CoT

核心思想:在Prompt末尾添加"Let’s think step by step"触发推理链,无需提供示例。

典型Prompt

[问题描述]

Let's think step by step.

优势

  • 实现极简,无需设计示例
  • Token消耗低
  • 通用性强,跨任务迁移无需修改

劣势

  • 推理格式不可控
  • 复杂推理可能偏离正确方向
  • 效果依赖模型本身的推理能力

适用场景:模型能力较强(如GPT-4级别)、任务复杂度中等、快速原型验证。

Few-shot CoT

核心思想:在Prompt中提供带推理过程的示例,引导模型模仿推理模式。

典型Prompt

问题:小明有5个苹果,给了小红2个,小红又还给他1个,小明现在有几个?
推理:小明原有5个,给出2个后剩3个,小红还1个后4个。
答案:4

问题:[新问题]
推理:

优势

  • 推理格式可控
  • 可传递特定推理策略
  • 效果稳定,适合生产环境

劣势

  • 示例设计需要经验和测试
  • Token消耗较高
  • 示例选择可能引入偏差

适用场景:需要特定推理格式的生产环境、领域特定推理任务。

自动化变体

Auto-CoT

核心思想:自动从模型输出中采样推理链作为示例,避免人工设计示例。

流程

  1. 用Zero-shot CoT对一批问题生成推理链
  2. 对推理链质量进行评分(如通过最终答案的正确性)
  3. 选择高质量推理链作为Few-shot示例
  4. 使用自动构建的示例处理新问题

优势

  • 无需人工设计示例
  • 示例多样性有保证
  • 可针对特定任务自动优化

劣势

  • 初始采样需要额外计算
  • 质量筛选机制影响效果
  • 可能引入错误推理链

适用场景:缺乏领域专家的场景、需要快速适配新任务类型。

Active-CoT

核心思想:在Auto-CoT基础上,主动选择信息量最大的问题进行采样。

流程

  1. 用聚类算法将问题集分组
  2. 从每组的边界案例中采样推理链
  3. 优先选择模型不确定性高的问题
  4. 构建更具代表性的示例集

优势:示例集覆盖更全面,对边界案例处理更好。

结构化推理变体

Tree-of-Thought (ToT)

核心思想:将推理过程组织为树形结构,支持分支探索和回溯。

流程

  1. 从当前状态生成多个可能的推理分支
  2. 评估每个分支的前景
  3. 选择最有希望的分支继续探索
  4. 在死胡同处回溯到其他分支

典型Prompt结构

问题:[问题描述]

请按以下步骤解决:
1. 生成3个可能的初始方案
2. 评估每个方案的可行性(1-10分)
3. 选择得分最高的方案继续展开
4. 如果当前路径无法解决,回溯尝试其他方案

方案A:[推理]
方案B:[推理]
方案C:[推理]

评估:
A: [分数和理由]
B: [分数和理由]
C: [分数和理由]

选择方案[B],继续推理:
...

优势

  • 支持复杂的多步推理
  • 可以回溯纠错
  • 适合需要搜索的问题空间

劣势

  • Token消耗大(多分支推理)
  • 实现复杂度高
  • 评估函数设计困难

适用场景:复杂规划类任务、博弈推理、创意问题解决。

Graph-of-Thought (GoT)

核心思想:将推理过程组织为图结构,支持推理节点之间的任意连接和合并。

优势:比ToT更灵活,可以合并不同推理路径的中间结果。

劣势:实现复杂度更高,token消耗更大,目前主要在研究领域。

Self-Consistency CoT

核心思想:对同一问题生成多条独立推理链,通过投票选择最一致的答案。

流程

  1. 用较高temperature对同一问题生成N条推理链
  2. 提取每条推理链的最终答案
  3. 对答案进行投票,选择出现次数最多的

典型实现

def self_consistency_cot(model, prompt, n=5, temperature=0.7):
    answers = []
    for i in range(n):
        response = model.generate(
            prompt + "\nLet's think step by step.",
            temperature=temperature
        )
        answer = extract_answer(response)
        answers.append(answer)
    
    # 投票
    from collections import Counter
    result = Counter(answers).most_common(1)[0]
    return result[0], result[1] / n  # 答案和置信度

优势

  • 显著提升准确率
  • 提供置信度估计
  • 实现相对简单

劣势

  • 计算成本是普通CoT的N倍
  • 仅适用于有明确答案的任务

适用场景:数学推理、逻辑推理、对准确率要求高的任务。

对比总结

变体Token消耗实现复杂度效果提升可控性适用模型规模
Zero-shot CoT极低大模型
Few-shot CoT中高中大模型
Auto-CoT中大模型
ToT高(复杂任务)大模型
Self-ConsistencyN倍中大模型

选型建议

  1. 简单推理任务:Zero-shot CoT,低成本高效
  2. 格式化推理输出:Few-shot CoT,示例控制格式
  3. 高准确率数学/逻辑推理:Self-Consistency CoT,投票提升可靠性
  4. 复杂规划/搜索问题:Tree-of-Thought,支持分支探索
  5. 快速适配新任务:Auto-CoT,自动构建示例
  6. 生产环境稳定推理:Few-shot CoT + Self-Consistency组合

结语

思维链变体的选择没有银弹,需要根据任务特点、模型能力、计算预算和可控性需求综合考量。在实践中,组合使用多种变体往往比单一使用效果更好——例如Few-shot CoT提供格式框架,Self-Consistency提供可靠性保障。理解每种变体的原理和适用边界,是灵活运用它们的基础。

加入讨论

这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。

碳基与硅基的智慧碰撞,认知差异创造无限可能。