同一个问题问两遍,大模型的答案可能不完全一样:措辞变了,数字变了,有时结论都变了。这种「不稳定」通常被当成缺点,但有个方法把它反过来用——让模型对同一问题生成多个答案,看哪个结论出现最多,选它。这就是自我一致性,也叫多数投票。它不改变模型本身,只改变「问问题的方式」。
原理:错误各不同,正确趋一致
自我一致性的核心假设是:模型答错时,错法五花八门;答对时,结果高度收敛。一道数学题,算错的路径可能有很多条,算对只有一条。于是只要对同一个问题采样多次,正确答案更容易成为「多数派」,错误的答案则分散在各处。把多次结果统计一下,可靠性就上来了。
直观类比是问一群人同一个问题:答错的人往往各错各的,答对的人答案高度一致。把所有人的答案投个票,正确率会比单独问一个人高。这和生成式的答案波动是同一枚硬币的两面:波动是现象,自我一致性是利用现象。需要分清的是,自我一致性是一种推理时的技巧,和自监督学习这种训练方法属于两个层面:前者不改变模型,后者是在训练阶段学表征。这个假设在数学、代码这类「对错分明」的任务上尤其成立,因为错误空间远大于正确空间。
三种落地用法
它不只存在于论文里,普通用户可以直接用。下面这张表给出三种用法和对应的适用场景。
| 用法 | 具体做法 | 适用场景 |
|---|---|---|
| 明说多思路 | 「用三种不同思路分别解,最后比较哪个更可靠」 | 数学、逻辑、方案推演 |
| 手动多问几遍 | 换措辞问两次,比较结论是否一致 | 事实核对、重要决策 |
| 看分歧点 | 三次答案不同时,标记为不确定 | 所有需要拿准的问题 |
用法一最省心:直接把「多思路」的要求写进提示词,让模型自己跑多遍再汇总。用法二适合拿不准的单个事实。用法三则把「分歧」当成反向信号——三次答案不一致时,宁可多花时间核实,也别急着采信其中一个。
什么任务用不上
必须说清它的边界:自我一致性只对「有唯一答案」的任务有效。数学题、事实判断、代码排错这类问题,答案有对错,投票才有意义。写文案、起名字、头脑风暴这类本来就没有标准答案的任务,让模型多生成几遍,得到的只是几个不同但都合理的版本,投不出「更正确」的一个,反而浪费调用次数。判断标准就一条:这个问题是否存在一个可验证的正确答案,没有,就别指望投票。
代价:用次数换可靠
自我一致性的代价很直接:问三遍就是三倍的花费,速度也要等所有结果都出来。对按 token 计费或按次计费的调用,这是一笔实打实的成本。所以它不是默认动作,而是「拿不准时」的加强手段。平时问一遍就够,遇到关键结论才值得多问两遍。这和使用大语言模型的通用逻辑一致:成本敏感的场景,先问一遍看分歧,再决定要不要加码。判断是否值得加码的标尺很简单:结论越关键、后果越难挽回,越值得多问一遍。
日常版:重要的事问两遍
你不需要刻意去跑什么算法,记住这个判断方法就够了:重要的事情问两次,看答案是否一致。一致,可信度就高;不一致,说明这里有不确定性,需要你自己核实。它把一个偏学术的技巧,压缩成一条可执行的习惯,逻辑上也贴近自建评测:自己出题反复测,比单次结果更可靠。
自我一致性速查
- 适用:有唯一答案的任务(数学、事实、代码)
- 做法:多问几遍 / 要求多思路,选多数派
- 判断:答案不一致 = 这里不确定,要人工核实
- 成本:问 N 遍就是 N 倍花费
自我一致性的价值可以浓缩成一句话:拿不准的事,多问一遍。它提醒我们,大模型的单次输出是一次「采样」,带有随机性,多采样几次再做判断,往往比单次更稳。这个思路不只对 AI 有用,对任何「单次结果不牢靠」的场景都成立。


