这篇适合谁
适合想让大模型在算术、常识推理这类题目上更稳的读者。读完你能看懂自洽性(Self-Consistency)的做法,构造少样本示例,对同一个问题采样多次,并从结果中选出最一致的答案。
自洽性是什么
自洽性是提示工程里比较进阶的一种技术,由 Wang 等人(2022)提出[1]。它的目的是替换思维链提示中使用的朴素贪婪解码方法[1]。做法是用少样本思维链采样多条不同的推理路径,再从生成的结果中选出最一致的答案[1]。文章指出,这种方法有助于思维链提示在涉及算术和常识推理的任务上表现更好[1]。
先看一次输出的问题
文章用一道年龄题做测试。题目的意思是:我 6 岁时,妹妹是我年龄的一半;现在我 70 岁了,妹妹多大?[1]
当我6岁时,我的妹妹是我的一半年龄。现在我70岁了,我的妹妹多大?只问一次时,模型输出 35。文章判断这个答案是错的[1]。
采样多条推理路径
第一步是准备少样本示例。文章使用的示例来自 Wang 等人 2022 年的工作,即论文中的表 17[1]。示例是问答形式,一共八组,最后一个问题是测试题,答案留空,由模型补全[1]。第一组示例如下:
Q:林中有15棵树。林业工人今天将在林中种树。完成后,将有21棵树。林业工人今天种了多少棵树?
A:我们从15棵树开始。后来我们有21棵树。差异必须是他们种树的数量。因此,他们必须种了21-15 = 6棵树。答案是6。第二步是对同一个测试题采样多次,得到多条推理路径。文章给出的第一个输出是[1]:
当我6岁时,我的妹妹是我的一半年龄,也就是3岁。现在我70岁了,所以她是70-3 = 67岁。答案是67。第三个输出是[1]:
当我6岁时,我的妹妹是我的一半年龄,也就是3岁。现在我70岁了,所以她是70/2 = 35岁。答案是35。三次采样里,两次给出 67,一次给出 35[1]。
第三步是选答案。文章的简化做法是:多数答案已经出现,出现次数最多的那个就是最终答案[1]。完整方法里计算最终答案的步骤更多,文章说明细节见论文[1]。
为什么要采样
如果每次输出都一样,多次采样就没有意义。自洽性依赖推理路径有所不同,再从中找出共识,所以采样得到的结果要有差异,才能看出哪个答案最稳定[1]。
可以把它想成请同一道题的几个人各自解题:每次采样就是一次独立的解答,最后看哪个答案被多数人得出。自洽性的前提是这些解答的推理路径确实不同,否则多数票没有意义[1]。
采样几次? 这个例子取了三次输出,没有给出固定的次数。次数多少,要结合题目难度和调用成本自己判断[1]。
常见问题
一次输出错了,是不是这个方法没用? 不一定。上面的例子里,单次输出是 35,但采样三次后,多数答案是 67。自洽性的价值就在于不依赖某一次输出。
示例怎么写? 示例越接近要解的题,越有参考价值。文章的示例是中文问答,多数组在推理之后用「答案是……」收尾[1]。
限制
文章用的是简化的选答案方法,只取出现次数最多的答案,没有展开完整的计算步骤[1]。想要准确理解,需要读原论文。
下一步
原页面链接了 Wang 等人(2022)的论文,可以在 arXiv 上找到,作者是 Wang 等人(2022)[1]。
本文改编自 DAIR.AI《Prompt Engineering Guide》中的「自我一致性」页面[1],原文以 MIT 许可证发布。
来源
- 1自我一致性DAIR.AI Prompt Engineering Guide (MIT)
引用本页: 自洽性提示(Self-Consistency). TellWorld, https://www.tellworld.net/zh/practice/practice-prompt-self-consistency. 更新于 2026-11-14