记忆点:自动生成不等于直接信任,示例库必须经过验证和过滤。
💡 答案要点
Auto-CoT = 自动生成CoT推理示例,减少人工标注
问题背景:
- 传统CoT需要人工编写推理步骤示例
- 编写成本高,质量依赖专家
- 不同任务需要不同示例
Auto-CoT解决方案:
两阶段流程:
阶段1: 问题聚类
- 将训练集问题聚类成k个簇
- 每簇选择最有代表性的问题
阶段2: 示例生成
- 对每个代表性问题
- 用"Let's think step by step"自动生成推理
- 组成Few-shot示例集详细步骤:
python
# 阶段1: 问题聚类
questions = load_train_questions()
embeddings = embed_questions(questions)
clusters = kmeans(embeddings, k=8) # 聚成8类
representative_questions = []
for cluster in clusters:
# 选择最接近簇中心的问题
rep_q = select_most_representative(cluster)
representative_questions.append(rep_q)
# 阶段2: 自动生成推理链
demonstrations = []
for q in representative_questions:
# 用Zero-shot CoT生成推理
prompt = f"{q}\n\nLet's think step by step."
reasoning = model.generate(prompt)
demonstrations.append((q, reasoning))
# 阶段3: 用于Few-shot推理
def solve_new_question(new_q):
prompt = ""
for (demo_q, demo_reasoning) in demonstrations:
prompt += f"Q: {demo_q}\nA: {demo_reasoning}\n\n"
prompt += f"Q: {new_q}\nA: Let's think step by step."
return model.generate(prompt)性能对比:
| 方法 | GSM8K准确率 | 人工成本 |
|---|---|---|
| Zero-shot | 41% | 无 |
| Manual CoT | 81% | 高(需专家) |
| Auto-CoT | 78% | 低(自动) |
关键技巧:
多样性采样
- 聚类确保覆盖不同类型问题
- 避免示例太相似
质量过滤
- 生成多个推理,选最好的
- 验证答案正确性
动态调整
- 根据新问题选择最相关示例
- 而非固定示例集
优势:
- ✅ 无需人工标注推理步骤
- ✅ 可扩展到新任务
- ✅ 性能接近人工CoT
劣势:
- ❌ 生成的推理可能有错
- ❌ 需要额外算力做聚类
面试话术:
示例表达(仅在能用本人经历或可复现实验佐证时使用): "Auto-CoT解决了CoT的最大痛点:人工成本。通过问题聚类+自动推理生成,无需专家标注就能构建Few-shot示例。我们在新任务上用Auto-CoT,一天就能启动,而人工CoT要一周。"
