Auto-CoT

prompt提示词2026年6月7日2

Automatic Chain-of-Thought(Auto-CoT,Zhang et al., 2022b)的核心是:不用人工写 CoT 示例,而是先用 Zero-shot CoT 自动生成一批“问题—推理—答案”示例,然后把这些示例拼成 few-shot CoT prompt 去解测试问题。


1) 方法动机

Few-shot CoT 通常需要人工准备高质量示例(成本高、难扩展)。Auto-CoT 试图用 LLM 自己来“产出示例”,实现 自动化的 CoT 示例构建。


2) 两阶段流程

阶段 A:自动生成 CoT 示例库(离线或预处理)

  1. 从训练集/题库里选一批代表性问题(通常覆盖不同类型)。
  2. 对每个问题使用 Wei et al. (2022) 的 Zero-shot CoT 提示生成推理链,例如:
    • “Let’s think step by step.”
  3. 得到自动生成的 CoT:
    • (question, generated rationale, generated answer)
  4. 将这些生成结果作为候选 exemplars(可选:进行简单过滤/去噪)。

阶段 B:构建 few-shot CoT prompt 来解测试样本

对一个测试问题 (q_{test}):

  1. 从上述示例库中挑选若干条 exemplar(可随机、按聚类代表性、或按相似度检索)。
  2. 拼接成 few-shot CoT prompt:
    • Example 1: Q / Reasoning / A
    • Example 2: Q / Reasoning / A
    • …
    • Test: Q / Reasoning: (让模型继续生成)/ A
  3. 用这个 prompt 让模型输出测试题的推理与答案。

3) 关键点:示例怎么选(论文常见做法)

Auto-CoT 的效果很大程度取决于“自动生成的示例质量”和“覆盖性”。常见策略包括:

  • 聚类后选代表点:先把问题做 embedding 聚类,从每一簇选若干题生成 CoT,保证示例多样性。
  • 相似度检索:对测试题检索相似问题作为 exemplars(这时就接近检索式 few-shot)。
  • 简单过滤:比如去掉明显太短、格式不完整、或答案不合法的生成链。

4) 它与相关方法的区别

  • vs Zero-shot CoT:Zero-shot CoT 直接对测试题“逐步思考”;Auto-CoT 额外做一步:先自动产出一批 CoT 示例,把它们当 few-shot 提示来用。
  • vs Memory-of-Thought:Memory-of-Thought 用“无标注数据上生成的推理”并在测试时按相似度检索;Auto-CoT 更强调用 Zero-shot CoT 自动生成示例,并常配合聚类挑选代表性样本来构建 few-shot prompt(不一定检索到测试题近邻)。
  • vs 人工 few-shot CoT:Auto-CoT 的优势是省人工、可扩展;劣势是示例质量受模型生成误差影响。

5) 适用场景与局限

适用:

  • 你有一批可用的训练题/题库(即使没人工 CoT)
  • 任务结构相对稳定(算术、符号推理、常识推理等)

局限:

  • 自动生成的 CoT 可能包含错误推理或错误答案,直接拿来 few-shot 会“教坏模型”
  • 因此通常需要:示例多样性控制 + 质量过滤(或后续再用自一致性/校验器筛选)

如果你希望我把 Auto-CoT 写成一段更完整的伪代码(包括:题目聚类→zero-shot 生成→过滤→构建 prompt→测试推理),告诉我:

  1. 你的任务是数学/多选/短答案哪一种;
  2. 你想用“聚类选代表”还是“相似检索”来选 exemplars。