单条思维链的脆弱性
一个学生在解数学题时,可能会在某个步骤算错一个数,导致整道题答案错误。大模型进行思维链推理时面临同样的困境:即便模型掌握了正确的解题逻辑,一次贪心解码产生的推理路径仍可能在某一步引入偏差,最终输出错误答案。在 GSM8K 这类多步数学推理基准上,即使采用思维链提示,模型准确率往往也只有 70%~80%,意味着每五道题就有一道因单次推理的随机错误而失败。
贪心解码在每一步都选择概率最高的 token,这种确定性策略忽略了复杂推理问题的一个重要特性:同一个正确答案往往可以通过多条不同的推理路径到达。例如,计算“小明买 3 本书每本 12 元,又买 5 支笔每支 3 元,一共花了多少钱?”可以直接先算书费再算笔费,也可以先算总件数再乘以平均价格。贪心解码只探索其中一条路径,一旦该路径出错,没有纠正机会。
自一致性(Self-Consistency)正是针对这一瓶颈提出的解码策略。它的核心思想是:在非零温度下采样多条思维链,然后对提取出的答案进行多数投票,选择出现频率最高的答案作为最终输出。该方法由 Wang 等人在 2022 年提出,并在 ICLR 2023 发表,在多个推理基准上取得了显著提升,例如 GSM8K 准确率提升 17.9 个百分点。
自一致性的工作流程
自一致性不改变模型本身,也不修改思维链提示词,它是在推理阶段对解码过程的一种集成策略。整个过程可以概括为三个步骤:
- 构造思维链提示:与标准思维链相同,在提示中提供少量包含推理步骤的示例,引导模型在生成答案前先输出推理过程。
- 采样多条推理路径:将模型解码温度设为大于 0 的值(论文中使用 0.7),对同一问题独立采样 N 条推理路径。每条路径包含完整的推理步骤和最终答案。
- 多数投票选择答案:从每条路径中提取最终答案(如数字、选项字母),统计各答案的出现频率,选择频率最高的答案作为最终输出。
下图展示了这一流程。
flowchart TD
A[输入数学问题] --> B[构造思维链提示]
B --> C[设置温度 T > 0]
C --> D[采样第 1 条推理路径]
C --> E[采样第 2 条推理路径]
C --> F[采样第 N 条推理路径]
D --> G[提取答案]
E --> G
F --> G
G --> H[多数投票]
H --> I[输出最一致答案]
在数学问题场景中,答案通常是离散的数值或选项,提取和投票都十分直接。例如,对于问题“15 + 27 × 2 = ?”,模型可能生成三条路径:第一条正确计算得到 69,第二条错误地先加后乘得到 84,第三条也正确得到 69。多数投票会选出 69 作为最终答案,从而纠正了第二条路径的偏差。
为什么多数投票有效
自一致性的有效性建立在两个关键假设之上:
正确路径的聚集性:对于一个复杂推理问题,虽然存在多条不同的推理路径,但它们往往指向同一个正确答案。模型在非零温度下采样时,正确路径虽然不一定每次都占多数,但通常会在所有采样中形成最大的单一答案簇。
错误路径的分散性:错误答案往往由推理过程中某个步骤的随机错误导致,这些错误各不相同,因此错误答案会分散在不同的数值或选项上,难以形成多数。
这一直觉可以通过一个简单例子理解:假设模型有 70% 的概率在每条推理路径中得到正确答案,30% 的概率得到各种不同的错误答案。如果采样 5 条路径,正确答案获得至少 3 票的概率远高于任何一个特定错误答案获得多数的概率。随着采样数量增加,正确答案被选中的概率进一步上升。
论文在 GSM8K、SVAMP、AQuA、StrategyQA 和 ARC-challenge 五个基准上验证了这一效果。下表对比了贪心解码与自一致性(采样 40 条路径)的准确率。
| 基准 | 贪心解码准确率 | 自一致性准确率 | 提升幅度 |
|---|---|---|---|
| GSM8K | 78.7% | 86.5% | +7.8% |
| SVAMP | 81.7% | 92.7% | +11.0% |
| AQuA | 38.2% | 50.4% | +12.2% |
| StrategyQA | 69.4% | 75.8% | +6.4% |
| ARC-challenge | 78.5% | 82.4% | +3.9% |
需要注意的是,论文中报告的提升幅度(如 GSM8K +17.9%)是基于特定模型和配置的绝对提升,上表仅展示其中一组典型结果。不同模型和采样数量下提升幅度会有差异,但趋势一致。
采样温度与样本数量的权衡
自一致性有两个关键超参数:采样温度 T 和采样数量 N。它们共同决定了推理路径的多样性和投票的可靠性。
采样温度控制生成 token 时概率分布的平滑程度。T=0 时退化为贪心解码,所有路径完全相同,投票失去意义。T 过高时,概率分布趋于均匀,模型可能生成大量语法错误或逻辑混乱的路径,反而降低正确答案的比例。论文中使用 T=0.7,这是一个经验值,在多样性和质量之间取得了平衡。实际应用中,T 在 0.5~0.8 之间通常能获得较好效果。
采样数量直接影响投票的统计稳定性。理论上,N 越大,正确答案被选中的概率越高,但收益递减。论文的消融实验表明,在 GSM8K 上,准确率在 N 达到 20~30 时趋于平稳,继续增加 N 提升很小。因此,40 条路径是一个保守的选择。在实际部署中,成本是更关键的约束:每条路径的 token 消耗与单次推理相当,N=40 意味着推理成本增加 40 倍。
工程上通常会在成本和准确率之间寻找平衡。资料显示,仅采样 5 次就能超过贪心解码的准确率,而采样 10~20 次往往能获得大部分收益。对于延迟敏感的应用,可以采用早停策略:当某个答案的票数超过预设阈值时,提前终止采样。后续研究(如《早停自一致性》,ICLR 2024)表明,这一策略可在 GSM8K 上减少 80% 的采样量而不明显损失准确率。
计算开销与部署考量
自一致性的主要代价是线性增长的推理计算量。在数学问题求解场景中,这一开销体现在两个层面:
延迟:如果顺序采样 N 条路径,端到端延迟近似为单次推理延迟的 N 倍。对于实时交互场景,这可能是不可接受的。但推理路径之间相互独立,可以并行请求模型服务,将延迟降低到接近单次推理的水平,前提是服务端有足够的并发容量。
吞吐与成本:无论是否并行,总 token 消耗都是单次的 N 倍。对于按 token 计费的 API 或有限的 GPU 预算,这意味着成本成倍增加。因此,自一致性更适合那些对正确率要求极高、且单次推理成本可接受的任务,例如金融计算、税务申报或医疗辅助诊断。
在部署时,可以根据任务的风险等级动态调整采样数量。例如,对于涉及资金变动的日记账分录生成,可以设置较高的采样数(如 40)并配合置信度阈值;对于一般的信息查询,采样 5 次即可。
失败模式与适用边界
自一致性并非万能,它在以下几种情况下会失效或收益有限:
系统性错误:如果模型对某个问题存在一致的误解,例如错误地应用了某条数学定理或误读了关键信息,那么所有采样路径都可能产生相同的错误答案。此时多数投票只会放大错误,无法纠正。例如,若模型在所有路径中都认为“年利率 5% 的复利计算”就是“本金 × 1.05”,那么正确答案永远不会出现。
答案空间连续或开放:当答案不是离散选项或数值时,多数投票难以定义。例如,要求模型生成一段文本摘要或解释一个概念,不同路径可能产生语义相近但措辞不同的答案,简单的字符串匹配无法有效聚合。针对这种情况,后续工作提出了通用自一致性(Universal Self-Consistency),使用大模型自身作为裁判来评估答案一致性,但会引入额外的计算开销和评估偏差。
低多样性采样:如果温度设置过低或模型本身表达能力有限,采样出的路径可能高度相似,投票退化为单次推理。此时自一致性无法带来增益。
成本极度敏感的场景:对于需要处理海量请求且单次推理成本已逼近预算上限的应用,40 倍的成本增长可能不切实际。这时需要更轻量级的替代方案,如仅聚合 3~5 次运行,或使用模型置信度进行加权投票以减少所需样本数。
与其他推理增强方法的比较
自一致性是众多提升大模型推理可靠性方法中的一种,它与几种相关方法存在互补与差异:
与思维链的关系:自一致性是思维链的即插即用增强,不改变提示词或模型,只修改解码策略。它弥补了思维链单次推理的随机性缺陷。
与 PAL(程序辅助语言模型)的比较:PAL 将数学计算卸载给 Python 解释器,从根源上消除了算术错误。自一致性则通过投票纠正推理步骤中的逻辑偏差或偶然错误。两者正交:PAL 确保计算正确,自一致性处理推理路径的不确定性。在涉及具体数值计算的任务中,两者可以结合使用。
与树搜索方法的比较:思维树(Tree of Thoughts)等方法将推理空间视为树结构,通过搜索和回溯探索多条路径,而自一致性只是简单地并行采样后投票。树搜索更适合推理步骤存在分支、需要前瞻评估的场景,但实现复杂度和计算开销更高。自一致性实现简单,无需修改模型或训练,适合作为默认的基线增强。
下表总结了这几种方法的关键差异。
| 方法 | 核心机制 | 计算开销 | 适用场景 | 局限性 |
|---|---|---|---|---|
| 贪心解码 + CoT | 单条确定性推理 | 低 | 简单推理 | 无纠错能力 |
| 自一致性 | 多条路径多数投票 | 高(N 倍) | 答案可聚合的推理 | 系统性错误失效 |
| PAL | 代码解释器执行计算 | 中 | 数学计算密集型 | 不处理逻辑推理 |
| 思维树 | 树搜索与回溯 | 很高 | 需要探索的复杂推理 | 实现复杂 |
工程实践中的关键决策
在实际系统中集成自一致性时,需要围绕以下几个维度做出决策:
采样策略:除了固定的采样数量,可以采用动态采样。例如,监控已采样路径的答案分布,当某个答案的票数超过总采样数的 60% 且领先第二名一定幅度时,提前终止。这可以在保持准确率的同时减少平均采样数。
答案提取与规范化:对于数学问题,答案通常是数字,但模型可能输出“答案是 42”或“结果为 42.0”。需要设计健壮的提取逻辑,如使用正则表达式匹配最后一个数字,并进行单位换算和格式归一化。对于选择题,提取选项字母即可。
置信度评估:除了简单的多数投票,可以利用模型自身的置信度(如生成概率或口头置信度)进行加权投票。资料中提到的基于置信度的自一致性(CISC)在相同样本量下能进一步提升准确率,或减少所需样本数。但置信度的校准本身是一个挑战。
安全闸门:在金融或医疗等高风险领域,可以设置双重阈值:只有当最高票数超过绝对多数(如 35/40)时,才自动采纳结果;否则,将问题升级给人工处理。这为系统增加了一道安全防线,成本仅是额外的推理开销。
自一致性作为一种纯推理阶段的集成方法,为提升大模型推理可靠性提供了一条低门槛的路径。它不要求修改模型架构或重新训练,只需在调用时增加采样和投票逻辑。尽管存在计算成本高和无法纠正系统性错误的局限,但在答案可验证、错误代价高的场景中,它仍然是一种值得优先考虑的基线策略。对于大多数数学问题求解系统,从贪心解码切换到自一致性,往往能以可控的成本换取显著的准确率提升。