自一致性:多采样投票提精度

自一致性(Self-Consistency)由 Wang 等人在 2022 年提出,是思维链(CoT)的解码侧增强:对同一个问题生成多条不同的推理路径,再用多数投票决定最终答案。它不修改提示本身,只改变采样与聚合方式。

是什么

普通 CoT 只取一条贪心推理。自一致性把温度调高做多次独立采样,每条路径都带自己的推理步骤和答案,最后统计各答案出现的频率,选最常见的那个。其理念是:复杂问题往往有多个合理推导角度,正确结论最可能被多条路径同时指向。

为什么有效

复杂问题往往有多个正确推导角度。单次采样可能抽到一条出错路径;而多条路径同时犯同一种错误的几率更低,多数投票因此更稳健。论文显示该方法在算术与常识推理上进一步明显超过标准 CoT,且无需额外训练。

怎么做

用较高温度多次调用并解析答案,再统计:

import collections

answers = []
for _ in range(10):
    # 每次都用 CoT 提示,temperature=0.7
    answers.append(call_model(cot_prompt, temperature=0.7))

final = collections.Counter(answers).most_common(1)[0][0]

适用场景

自一致性对答案唯一、可程序化解析的任务收益最大,例如数学题、选择题、结构化抽取。对开放生成或主观写作,投票意义不大。

注意点

  • 需要多次推理,成本与时间随采样数线性增长,按任务难度取舍。
  • 答案要可被程序稳定解析,否则投票失效。
  • 对事实性单选题收益大,对开放生成类任务意义有限。

小结

自一致性通过多条推理路径的多数投票降低单次推理出错的偶然性,是提升 CoT 准确率、几乎不增加提示复杂度的实用技巧。

参考与延伸阅读

本文累计阅读