解释为何对困难问题多次采样能让正确推理路径收敛到多数答案,前提是温度必须非零且采样多样性来自推理过程而非措辞变化。
把同一个问题问五遍,取出现次数最多的答案,其余丢弃。这是提示工程中最不精巧的技术,却是少数几个产生了大规模、可复现效果的技术之一——代价是五倍的调用量,但仅适用于一小类任务。
自洽性(Self-Consistency)由 Wang 等人(2023)在《Self-Consistency Improves Chain of Thought Reasoning in Language Models》一文中提出,用采样替代了贪婪解码。在温度显著高于零的条件下生成 k 条思维链,从每条链中提取最终答案,然后取多数票。
推理逻辑是:一个困难问题有多个正确推导,但错误推导的数量远多于正确推导,且错误推导之间相互分歧,而正确推导则会收敛。因此,对推理路径做边缘化并保留众数答案,是对"模型最相信哪个答案"这一问题的廉价近似。需要注意的是前提条件,这也是大多数误用的起点:温度必须非零,否则 k 个样本其实就是同一个样本,什么都没有买到。
第二个细节决定了它是否有效:多样性必须存在于推理过程中,而非措辞上。采样温度高到能产生真正不同的推导时,每个推导的质量也会略有下降,因此存在一个内部最优值,而不是单调递增的旋钮——原文使用的也是常规采样设置,而非极端设置。如果你的 k 个样本只是在措辞上不同,而在每个中间步骤都一致,那你相当于花五倍价格买了一个误差棒更小的空答案。
报告的收益在算术和常识推理基准上相当大——在 GSM8K 上提升约 17 分,SVAMP 上约 11 分(使用他们评估的最大模型),在其他几个数据集上也有较小但正向的收益。这些数字来自他们自己的模型和基准测试,随论文一起发表;本页没有任何数字是重新测量的。
比数字更容易迁移的是论文的两个结构性细节。收益来自具有离散、可比较最终答案的任务——一个数字、一个标签、一个多选题选项——因为这是投票得以实现的前提。而且准确率随 k 的增长会饱和:他们的扫描曲线显示,大部分可用收益在最初几个样本时就已获得,在 k 达到他们尝试的最大值之前曲线就已经趋于平缓。正是这种饱和性使得成本问题变得可以决策。
当减少错误答案带来的预期节省超过额外推理成本时,自洽性就是值得的。把它写出来:
worth it iff Δa · E > (k − 1) · c
Δa 准确率提升,绝对百分点(在你的评估集上测量)
E 一次错误答案的代价
c 一次调用的成本
k 样本数
变形后,需要的准确率提升: Δa > (k − 1) · c / E
代入数字后形状就很清楚了。假设一次调用成本 0.006 美元,使用 k = 5,则每个问题额外花费 0.024 美元。
一次错误答案需要花六分钟人工复核,按每小时 40 美元的加载成本计,所以 E = 4 美元。需要 Δa > 0.024/4 = 0.6 个百分点。几乎任何真实的收益都能超过这个门槛。
一次错误答案导致 60 美元退款,且发生在 2% 的流量上。E = 60 美元。门槛是 0.04 个百分点。无需决策——直接做。
一次错误答案导致一个略差的自动补全建议,价值约 0.02 美元。门槛是 120 个百分点,这是不可能的。别做。
结论是,自洽性是否值得几乎完全由 E 决定,而非由技术的有效性决定。高风险、低容量、离散答案的工作才是它的用武之地;大规模用户-facing 的建议场景则不是。
在决定之前,用同样的算法对备选方案进行比较,因为一个中等模型的五次采样大约等于一次强得多的模型的调用成本,或者等于一次调用加一次验证,或者等于一次检索步骤(后者消除了导致错误的歧义)。自洽性与这些方案竞争,而它胜出主要在以下三个条件同时满足时:答案是离散的,错误是推理失误而非信息缺失,且在你能接受的价格下没有更强的模型可用。
延迟通常不是问题。k 个样本是独立的,因此把它们并发发出后,墙上时钟时间是各调用时长的最大值而非之和——加上提供商并发限制在批量时对此的影响。
多数投票需要一个相等性测试。对于自由格式输出,这个测试不存在,还有三个选项,按成本递增排列:
对提取字段投票。如果答案包含一个决定、一个数字或一个引用 ID,就对该字段投票,用一个样本的正文回答其余部分。最便宜,通常足够。
按嵌入聚类。将 k 个答案嵌入向量空间、聚类,取最大簇的代表。增加一次嵌入调用和一个需要调的阈值。
让模型选。对 k 个候选做一次裁判调用。这不再是自洽性了——这是带学习评分器的 best-of-n 选择,继承了裁判的偏见,包括对更长答案的已知偏好。
自洽性最未被充分利用的输出不是获胜答案,而是分布。5–0 的投票和 2–2–1 的分裂在正文中带着相同的置信度到来,但底层可靠性截然不同。
因此记录差距并据此路由:全票通过的直接过,勉强多数的送审或触发回退到更强的模型。你已经为样本付过钱了;一致率是一个免费的置信度信号,而且比问模型它有多确定更可靠。
把差距当作相对信号而非概率来用。五次采样只能给出有限的几种可能差距,所以这是一个粗粒度的工具,而且当错误出在共享前提而非算术上时,模型会对错误答案自信地达成一致。在信任路由阈值之前,用你自己的标注案例对它进行校准,并在 k 或温度变化时重新检查,因为两者都会移动差距的分布。