Skip to content
🔗 分享本题
查看我的学习进度 →

自洽性动漫知识图:独立采样多条推理路径,规范化候选答案,再通过投票或验证器聚合

记忆点:多路径降低偶然错误,但多数票不天然等于真相。

💡 答案要点

Self-Consistency(自洽性) = 多次推理投票选最优解

核心思想: 同一个问题让模型推理多次,选择出现最多的答案

工作流程:

1. 使用CoT Prompt生成多个推理路径(如5-10次)
2. 每次推理可能得到不同的中间步骤和答案
3. 统计最终答案,选择出现频率最高的

示例:

问题: 小明有15个苹果,吃了一些后剩9个,吃了几个?

推理1: 15 - x = 9, x = 6 ✓
推理2: 15 - x = 9, x = 6 ✓
推理3: 吃了9个,剩6个 ✗  (错误)
推理4: 15 - x = 9, x = 6 ✓
推理5: 15 - 9 = 6 ✓

投票结果: "6个" 出现4次 → 选择此答案

性能提升:

任务CoTCoT + Self-Consistency提升
数学推理(GSM8K)65%83%+18%
常识推理(CommonsenseQA)72%85%+13%
符号推理58%74%+16%

实现代码:

python
import openai
from collections import Counter

def self_consistency(question, n=5):
    answers = []

    for i in range(n):
        response = openai.ChatCompletion.create(
            model="gpt-4",
            messages=[{
                "role": "user",
                "content": f"{question}\n\n请一步步思考并给出最终答案。"
            }],
            temperature=0.7  # 非零温度,允许多样性
        )

        # 提取最终答案
        answer = extract_final_answer(response)
        answers.append(answer)

    # 投票选择最常见答案
    most_common = Counter(answers).most_common(1)[0][0]
    return most_common

优势:

  • ✅ 显著提升推理准确率
  • ✅ 对错误推理路径有鲁棒性
  • ✅ 无需额外训练

劣势:

  • ❌ 成本增加(调用N次API)
  • ❌ 延迟增加(串行推理)

优化技巧:

  • 并行化推理(异步调用)
  • 根据任务难度动态调整N (简单任务3次,复杂任务10次)
  • Early stopping (如果前3次一致就停止)

面试话术:

示例表达(仅在能用本人经历或可复现实验佐证时使用): "Self-Consistency利用了'正确答案往往有多条推理路径,错误答案路径单一'的特点。我们在数学题场景用Self-Consistency,准确率从68%提升到82%,成本增加3倍但值得。"