Self-Consistency
我是你的 Prompt 提示词技术讲解与改写助手:专注于大语言模型提示词工程与推理增强方法(CoT、Self-Consistency、ReAct、RAG、工具调用、评测与防幻觉约束等),能把论文里的方法翻译成可落地、可复用的提示词模板,并告诉你什么时候该用、什么时候别用,以及怎么在产品/脚本里实现。
下面按你的引文来讲解 Self-Consistency(Wang et al., 2022)。
1) Self-Consistency 是什么(用一句话讲清)
Self-Consistency(自一致性)的核心直觉是:
同一道需要推理的问题,模型可能走出多条不同的推理路径,但正确答案往往在这些路径中更“稳定”地重复出现。
所以做法是:用非零温度多次采样 → 生成多条推理与答案 → 对最终答案做多数投票(majority vote),把票数最多的答案当作输出。
你引用的那段话对应的流程就是:
- 多次提示同一问题做 CoT(链式思维)
- temperature > 0(例如 0.7)让推理路径多样化
- 汇总每次的最终答案
- 投票选出最常出现的答案作为最终结果
- 在算术、常识、符号推理任务上经常能提升正确率
2) 它解决什么问题?为什么能提升?
很多推理题里,单次生成容易因为某一步算错/误读条件而“带偏”到错误答案。
Self-Consistency相当于用“随机重做多次+投票”来对冲偶发错误:
- 错误推理往往是偶发且分散(每次错法不一样)
- 正确答案在多条合理推理中更容易聚集(重复出现)
- 投票机制等价于一种“弱集成学习”,提升稳定性与准确率
3) 适合与不适合的应用场景
适合场景
- 有客观唯一答案的任务
- 算术题、单位换算、逻辑题、谜题、符号推理(如集合、代数变形)
- 可用“最终答案”做投票的任务
- 最终结果可以被标准化成一个短字符串/数字/选项(A/B/C/D)
- 容错靠统计而非外部工具的任务
- 你不方便接计算器/检索,但可以多采样几次提高成功率
不适合场景
- 开放式写作(没有唯一正确答案)
- 如文案、故事、营销话术:投票“最多出现的版本”不一定最好
- 答案高度多样、难以对齐投票
- 每次输出长段文字、不同表述但含义相同,投票难做;需要额外的“归一化/判同”步骤
- 成本/延迟敏感
- 要采样 N 次(常见 5/10/20),token 成本和响应时间线性上涨
- 模型会系统性偏差的任务
- 如果模型在同一类题上“稳定地错”,多采样只会“稳定地错得更一致”
4) 至少 3 个实际 Prompt 例子(中文)
说明:Self-Consistency通常不只靠“一个 prompt”,而是“同一 prompt 重复调用 N 次 + 投票”。下面给你三种常见写法:从纯手工到工程可落地。
例子1:选择题(最适合投票)
目标:让输出易于投票,统一成选项字母。
单次采样 Prompt(重复运行 N=10 次,temperature=0.7):
你是严谨的逻辑推理助手。请逐步推理并给出最终选择。
题目:某班有 30 人,男生比女生多 6 人。女生有多少人?
要求:
1)先写推理过程;
2)最后一行只输出:答案:X(X 为一个整数)。
投票方式:收集 10 次输出的“答案:X”,取出现次数最多的 X。
例子2:数学计算(要求“最终答案格式固定”)
单次采样 Prompt(重复 N=8,temperature=0.8):
你是一名擅长心算与验算的数学助手。请用分步计算解决问题。
问题:一个水箱原有 120 升水,先放出原有的 25%,再加入 18 升,最后又放出当前水量的 10%。问最后还剩多少升?
输出要求:
- 写出计算步骤;
- 最后一行严格输出:
最终答案:<数字> 升(数字可以是小数)。
为什么这样写:
- 最后一行“最终答案”可直接正则提取做投票,避免长文本难对齐。
例子3:常识/符号推理(把答案“离散化”便于投票)
如果是常识推理,很多时候可以把答案限制在固定集合。
单次采样 Prompt(重复 N=12,temperature=0.9):
你是常识推理专家。请根据描述判断最合理的选项。
问题:小李把冰块放进常温水里,过一会儿杯子外壁出现水珠。以下原因最合理的是哪一个?
A. 杯子里的水蒸发后凝结在外壁
B. 空气中的水蒸气遇冷在杯子外壁液化
C. 冰块融化后渗透到杯子外壁
D. 外壁材料与水反应生成水珠
要求:先简要说明理由(不超过 80 字),最后一行只输出:答案:<选项字母>
投票方式:统计 A/B/C/D 的出现频次,选最高者。
5) 工程落地时的关键参数建议(简要)
- 采样次数 N:5/10/20 常见;题越难越需要更大 N
- temperature:0.5~1.0 常用;太低不多样,太高会胡
- 输出归一化:强制“最后一行固定格式”,否则难投票
- 投票粒度:通常只对“最终答案”投票,不对整段推理投票
- 并发:可并行请求降低整体延迟
如果你愿意,我可以继续补充两块更“落地”的内容(你选一个方向就行):
- 给你一个 Self-Consistency 的通用 Prompt 模板(可直接复制用),并讲如何设置 N/temperature;
- 给你一个 “投票+答案归一化”的工程伪代码/流程图(适合接入你的应用或脚本)。