Self-Consistency提示是什么
📍 In One Sentence
Self-Consistency提示在非零温度下多次运行同一个问题,并采用出现最多的答案,以多次独立尝试之间的一致性作为正确性的参考。
💬 In Plain Terms
把同一个问题问五遍,采用反复出现的那个答案。模型一次可能把自己说服到错误答案上,但连续五次犯同样的错要少见得多。
Self-Consistency提示是指对同一提示采样多个独立答案,并选出最一致的结论。 你得到的不是一条思维链,而是多条可能各不相同的思维链。
思路很简单:如果模型用多种不同方式推理,而大多数路径得出同一个答案,那么这个答案比单次运行更可信。如果各路径意见不一,说明问题含糊或困难,需要更仔细地复核。
Self-Consistency由Wang et al.(ICLR 2023)提出,并在算术和常识推理基准上报告了准确率提升。该方法利用了统计学的基本原理:许多独立估计的共识比单个估计更可靠。
为什么Self-Consistency提示很重要
Self-Consistency提示之所以重要,是因为语言模型在困难的推理任务上可能不稳定,采样的细微差异就可能让答案翻转。 观察一组尝试而不是一次,可以降低单次幻觉或错误的影响。
- 数学和逻辑谜题。
- 多步骤的分析型问题。
- 存在微妙权衡、小的推理失误就会改变结果的决策。
- 单次准确率低于90%的特定领域推理(经验法则)。
🔍 专业提示
不需要手动比较10个输出。增加一个最终汇总步骤:把N个答案粘贴到新的提示中并问:“这是对同一问题的10个答案。哪个答案出现最多?请给出共识答案和你的置信度。”统计可以交给模型,但重要问题上请核对它的结果。
论文报告了什么
Wang et al.(2023)在算术基准上,把Self-Consistency(每题采样40条推理路径并多数投票)与贪心Chain-of-Thought解码做了比较。表中是论文报告的PaLM-540B结果,我们没有复现。
提升在单靠Chain-of-Thought最弱的地方最大(GSM8K +17.9,AQuA +12.5个百分点),在已经很强的地方较小(AddSub +1.8)。论文摘要还报告了StrategyQA +6.4和ARC-challenge +3.9。这些是2022年的模型和设置,不能预测你的任务或当前模型上的提升。论文指出Self-Consistency需要更多计算,并建议从5条或10条路径开始,因为性能很快趋于饱和。
基准 | CoT(贪心) | Self-Consistency | 提升 |
|---|---|---|---|
| GSM8K | 56.5% | 74.4% | +17.9 |
| AQuA | 35.8% | 48.3% | +12.5 |
| SVAMP | 79.0% | 86.6% | +7.6 |
| ASDiv | 74.0% | 81.9% | +7.9 |
| MultiArith | 94.7% | 99.3% | +4.6 |
| AddSub | 91.9% | 93.7% | +1.8 |
🔍 你知道吗
在GSM8K上,论文报告PaLM-540B从贪心Chain-of-Thought的56.5%提高到Self-Consistency的74.4%,无需微调,也无需额外训练数据,只靠采样和投票。数字来自论文报告,并非我们自己的测量。
Self-Consistency提示的实际工作流程
实际操作中,Self-Consistency提示分两个阶段:先生成多样的答案,再汇总。 任务提示保持不变,但允许随机性,让模型探索不同的推理路径。
典型流程:
- 1使用推理类提示(通常带Chain-of-Thought指令),并把温度设为0.7-1.0,让模型产生不同的解释。温度控制随机性:0为确定性(每次答案相同),1.0为最大多样性。
- 2多次运行同一提示(例如5-20次),收集所有最终答案。每次运行应相互独立:来自不同的温度采样,而不是缓存的结果。
- 3汇总:统计哪个答案出现最多,或对相似答案聚类。把多数投票得出的答案作为最终结果。
- 4可选:让模型梳理分歧:“这是对同一问题的10个答案。哪个出现最多?分歧的原因是什么?”这会增加置信度元数据。
Self-Consistency与多模型共识的区别
Self-Consistency对同一个模型多次采样,多模型共识则对不同模型各采样一次。两者应用同一原理:对多样推理路径做多数投票,但能发现的失效类型不同。
PromptQuorum原生支持多模型共识:把一个提示发给多个模型并比较。对关键决策,可以两者结合:在主模型上运行Self-Consistency,并用第二个模型核对共识答案。
方法 | 工作方式 | 能发现什么 | 盲区 |
|---|---|---|---|
| Self-Consistency(单模型) | 同一提示、同一模型,T=0.7以上运行5-20次 | 采样不稳定、随机错误 | 模型的系统性偏差(每个样本都有) |
| 多模型共识 | 同一提示、不同模型,各运行1次 | 模型特有的偏差、架构盲区 | 所有模型可能共享同一训练数据缺口 |
| 组合(覆盖最广) | 多个模型 × 每个模型多次采样 | 随机错误和系统性偏差 | 成本:N个模型 × M次采样 = N×M次API调用 |
何时使用Self-Consistency提示
当错误答案的代价很高、任务包含非平凡推理时,应使用Self-Consistency提示。 它用算力和延迟换取更好的稳健性。
适合的场景:
- 驱动业务或技术决策的分析型问题。
- 逻辑错误代价高昂的复杂编程任务。
- 中间步骤很重要的教育或考试类推理。
- 你已经观察到单次运行不稳定的任何工作流。
- 数学题、逻辑谜题、研究综合、财务分析。
方法 | 采样数 | 成本 | 最适合 | 准确率提升 |
|---|---|---|---|---|
| 单次回答(基线) | 1 | 1× | 简单、低风险任务 | — |
| Chain-of-Thought | 1 | 1次调用,输出更长 | 数学、逻辑、分步推理 | 论文中的基线 |
| Self-Consistency | 5-20 | 5-20× | 困难推理、高风险 | GSM8K最高+17.9点(论文) |
| 多模型共识 | 3-5个模型 | 3-5× | 发现模型特有偏差 | 因任务而异 |
| 两者结合 | 5 × 3个模型 | 15× | 覆盖最多失效类型 | 因任务而异 |
⚠️ 警告
温度为0时Self-Consistency毫无用处:每个样本都输出相同内容。请把温度设为大于0的值;论文使用T=0.5-0.7进行采样,0.7是常见的起点。温度为0是常见的实现错误。
Self-Consistency提示的常见错误
以下是削弱Self-Consistency的陷阱及避免方法:
- 使用温度0(确定性模式)。 危害:每个样本都相同,对10个相同答案投票什么也说明不了。解决:把温度设为0.7-1.0,以生成多样的推理路径。
- 对简单事实问题使用Self-Consistency。 危害:“法国的首都是哪里?”每次都是“巴黎”,你多花了10倍token却没有任何准确率提升。解决:只在单次运行准确率明显低于90%的任务上使用(经验法则)。
- 采样数太少(2-3个)。 危害:2个样本不一致时没有决胜依据;3个样本出现2比1时共识也很弱。解决:至少使用5个样本;论文建议从5条或10条路径开始,因为大部分提升出现得较早。
- 对完整回答文本而不是最终答案投票。 危害:两个回答可能经由完全不同的推理路径得到同一个答案。文本比较认为它们不同,答案比较则认为一致。解决:只提取最终答案(要求“Answer: X”格式)并对其投票。
PromptQuorum中的Self-Consistency提示
PromptQuorum是一个多模型AI分发工具,能轻松生成并比较多个答案,因此自然地补充了Self-Consistency提示。 你可以把“一个模型多次运行”和“一个提示多个模型”看作两层一致性检查。
使用PromptQuorum,你可以:
- 复用推理型框架(如TRACE或APE),在每个模型上多次运行,收集多样的思维链。
- 把同一个推理提示并排发给多个模型,观察它们是否收敛到同一个答案。
- 把Self-Consistency工作流保存为模板,团队无需从零设计“多次采样再汇总”的模式即可重复使用。
如何使用Self-Consistency提示
- 1对复杂推理任务,用同一提示生成多个输出(5-10个)。 把同一个问题问5遍,你会得到5个不同的回答。
- 2分析输出,找出一致的模式(“共识”)。 如果5个回答中有4个给出同一答案,这种一致性就是你的置信信号。如果5个全不一致,说明任务含糊,或提示需要改进。
- 3在研究和知识类任务中用Self-Consistency发现可能的幻觉。 问“法国的首都是哪里?”,若3个回答是“巴黎”、2个是“里昂”,多数答案(巴黎)就是候选答案。如果答案分散在许多不同的城市,就应认为模型在这个问题上不可靠。一致只是警示信号,并非证明:模型可能每次都给出同样的错误答案。
- 4把温度(T)设高一些(0.7-1.0)以促进多样输出。 低温度(T=0)每次都输出相同的确定性结果,失去意义。Self-Consistency需要差异才能找到共识。
- 5在成本允许的生产流程中实施Self-Consistency。 多运行5-10倍的生成成本很高,但对研究综合这类高风险分析,共识信号可能值得这笔成本。医疗、法律和金融方面的决策仍需合格专业人员复核,多数投票不能替代复核。
相关阅读
- Chain-of-Thought提示 — Self-Consistency扩展到多条路径的单路径推理方法
- Tree-of-Thought与ReAct — 与Self-Consistency相关的分支式推理方法
- 提示注入与安全 — 实施多样本流程时的安全考量
- Temperature与Top-P — 让Self-Consistency发挥作用的采样参数
- 提示链 — 可在每一步应用Self-Consistency的多步骤工作流
- AI幻觉:如何检测与阻止 — 把Self-Consistency用作幻觉检测方法
来源
- Wang et al. (2023). "Self-Consistency Improves Chain of Thought Reasoning in Language Models." ICLR 2023. arXiv:2203.11171 — 提出以多数投票对推理路径进行Self-Consistency的奠基论文
- Wei et al. (2022). "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models." NeurIPS 2022. arXiv:2201.11903 — Self-Consistency所依托的Chain-of-Thought论文
- Brown et al. (2020). "Language Models are Few-Shot Learners." NeurIPS 2020. arXiv:2005.14165 — 为CoT和Self-Consistency提供基础的上下文学习奠基研究
常见问题
什么是Self-Consistency提示?
Self-Consistency提示是一种方法:针对同一个问题生成多个独立答案,每个答案各有自己的推理路径,然后选出出现最频繁的答案。你不再相信单个AI回答,而是相信多个回答的共识。该方法由Wang et al.(2023)提出,并在算术和常识推理基准上报告了准确率提升。
Self-Consistency需要多少个样本?
对大多数任务,从5-10个样本开始。原论文指出,随着路径增加,性能很快趋于饱和,并建议从5条或10条开始;每多一个样本,就多一条完整回答的成本。先用5个;只有高风险决策才增加到10-20个。
Self-Consistency对简单任务有效吗?
没有实质帮助。对于事实查询、简单分类或短文写作,单个回答几乎总是足够,而且便宜得多。作为经验法则(我们的经验判断,并非论文数据),只有当模型单次准确率低于约90%时才有较大价值,通常是数学、逻辑谜题、多步骤分析和复杂推理。
Self-Consistency应该用什么温度?
把温度设为0.7-1.0。该方法需要多样的推理路径:温度为0(确定性)时,每个样本输出完全相同,投票毫无意义。较高的温度会产生让多数投票有意义的差异。
Self-Consistency的成本高多少?
由于要生成5-20条完整回答而不是一条,每个任务大约多消耗5-20倍token。如果一条回答花费0.01美元,10个样本的Self-Consistency就是0.10美元。这对高风险分析可能是值得的,但对日常任务是浪费。涉及医疗、法律或财务的决策,必须由合格的专业人员复核结果;本文仅为一般性信息,不构成专业建议。
Self-Consistency和“best-of-N”采样一样吗?
相似但不相同。Best-of-N生成N条回答,并(通常借助质量评分器)选出最好的一条。Self-Consistency生成N条推理路径,选出最常见的答案:投票针对的是结论,而不是质量。它不需要质量评分器,而是把一致性作为信号。
Self-Consistency可以和Chain-of-Thought提示一起用吗?
可以,这是原论文使用的组合。N个样本中的每一个都使用Chain-of-Thought推理,产生完整的推理过程和最终答案。然后对全部N条的最终答案投票。推理路径可能不同,但如果大多数得出同一个结论,这个结论更有可能是正确的,但并不能保证。
PromptQuorum与Self-Consistency是什么关系?
PromptQuorum把同样的共识原理应用在不同模型之间,而不是一个模型之内。你不必对同一个模型问10次,而是向5个不同的模型各问一次并比较答案。一致时置信度高,不一致时该说法需要核实。这能发现单模型Self-Consistency无法发现的模型特有偏差。
