Home / 大语言模型 / GSM8K与验证器:不会一次做对,能否从多份解答中选对?

052 · GSM8K与验证器:不会一次做对,能否从多份解答中选对?

返回目录 · 上一篇:T0 · 下一篇:思维链提示

论文:Karl Cobbe等,Training Verifiers to Solve Math Word Problems,2021。原始论文 · 官方数据与代码。本文采用v2。论文中的数据规模使用其取整口径,不把发布仓库的文件行数与正文数字混用。

先接住前作的问题

Codex的pass@k揭示候选里存在正确程序不等于能把它交付。本篇在数学应用题上把这个缺口交给训练出来的验证器;Self-Consistency随后以答案投票处理同类选择问题,属于平行路线。

五个前置概念

五个前置概念:自回归生成是依据已有前缀继续输出;温度采样调整输出分布的集中程度;监督微调拟合已有正确解答;结果监督依据最终是否成功提供标签;选择偏差指从大量候选中取最大预测值时容易放大预测误差。

一、问题设定:生成过正确解答之后,系统为什么仍会选错

GSM8K要求把自然语言关系变成通常2—8步的加减乘除及简单常识推导,输出解题过程和最终数值答案。仅提高单次生成质量未必最划算:系统还需在多份候选间选对。这里训练验证器是监督学习,部署是搜索与排序,没有环境交互或强化学习策略更新。

论文§2将数据描述为约8.5K题,其中约7.5K训练、1K测试。这是正文取整数字。附录A说明工作人员可以利用GPT-3生成的种子例子,直接采用或修改,因此“人工编写与质检”不等于每句话完全由人从零创造。独立复核后的剩余意见分歧估计为1.7%,数据质量很高也不等于绝对无错。

过去方法的困难并非不知道乘法,而是早期关系理解错误会沿自回归输出传播。一旦把“还剩”理解为“新增”,后续计算完全准确仍会答错。作者的假设是:识别候选的正确性,可能比总能直接生成正确候选更容易,而且训练所需的正负标签能由答案匹配获得。

需要特别说明,本文模型使用计算器。训练文本带有算术注释,推理时计算器覆盖对应算式结果。这排除了部分纯算术错误,但无法自动修复题意理解。论文结果不能被解释成模型完全依靠内部计算能力解题。

二、分开推导候选覆盖、验证损失与极值误判

生成器为什么只训练两轮

普通微调基线学习标准解答,以低温度产生单个答案。验证系统则需要多样候选:只会高度确定地重复同一个错误答案,没有搜索价值。作者用训练两轮的生成器,以温度0.7为每道训练题采样100份解答,形成验证训练数据。

设题目为qq,标准答案为a∗a^*,候选解答为ss,自动标签为

z=1[final⁡(s)=a∗].z=\mathbf{1}[\operatorname{final}(s)=a^*].

它告诉模型“这份完整解答的最终答案正确”,没有告诉模型“每一步逻辑正确”。一份中途犯错但偶然得到正确答案的解答仍可能获得正标签。

每个token预测最终结果,不是逐步真伪监督

验证器从生成器参数初始化,增加标量预测头。对解答各个前缀s≤ts_{\le t}预测最终正确性,可以将其训练目标概括为

Lver=Eq,s,z∑t(vψ(q,s≤t)−z)2.\mathcal L_{\mathrm{ver}}=\mathbb E_{q,s,z}\sum_t(v_\psi(q,s_{\le t})-z)^2.

其中vψv_\psi是验证分数,所有前缀使用同一个最终结果标签zz。这与后来由人工或系统标注每步是否正确的过程奖励模型不同。前缀预测类似估计“走到这里最终会成功吗”,不能直接读成“当前这一步在数学上合法吗”。

作者还联合语言建模辅助损失,保留生成文本的能力并缓解过拟合:L=Lver+LLM\mathcal L=\mathcal L_{\mathrm{ver}}+\mathcal L_{\mathrm{LM}}。训练混合原始解答和生成候选,题目部分不计相应训练损失。验证器训练一轮,避免在少量问题的重复候选上不断记忆。

输入、流程与输出

没有把验证分数作为奖励继续训练生成器,也没有证明每条输出推理都可靠。

采样增加候选,也增加裁判受骗的机会

设每个错误候选独立有ε概率得到过高分,k个错误候选中至少出现一次高分误判的概率为 1−(1−ϵ)k1-(1-\epsilon)^k。这是解释极值选择风险的教学模型,不是论文拟合的真实错误分布。验证器分数即使在普通样本上校准,取最大值后的分布也会偏向误差尾部;因此应在实际候选数量下评价best-of-k,而非仅报单样本分类准确率。

教学算例。 ε=0.01时,10个错误候选至少一个被高估的概率约9.6%,100个约63.4%。正确候选覆盖可能同时增加,最终净收益取决于两者。可固定同一响应库逐渐扩候选池,并分别画oracle覆盖与验证器最终选择曲线,才看得出瓶颈在生成还是排序。

以下是自构教学例子:三盒苹果,每盒四个,送出两个,还剩多少?生成器可能给出“3×4−2=10”,也可能把数量解释错后碰巧通过抵消错误得到10。两者按最终答案都会获得正标签。

将验证系统的准确率拆成两项条件概率

把候选池至少有一个正确解记为C,最终选中正确解记为S,则S只能在C发生时成立,故最终成功率等于覆盖率乘“已覆盖时选对”的比例。自构覆盖0.8、条件选中0.6,最终为0.48;覆盖升到0.9但条件选中降到0.5,最终反降到0.45。这比只看验证器单样本分类准确率更贴近部署。

三、生成候选库并用最终答案构造前缀监督

输入:题目—标准解答数据 D,预训练语言模型
生成器 G ← 在 D 上微调两轮
验证数据 V ← 空集
对每道训练题 q:
    从 G 以温度 0.7 采样 100 份解答
    用最终答案匹配给每份解答标注 z
    将题目、完整解答、z 放入 V
验证器 ← 从 G 初始化,添加标量预测头
联合优化前缀结果预测与语言建模损失
测试时:
    生成 N 份完整解答,按规则调用计算器
    为每份完整解答计算验证分数
    返回最高分解答及最终答案

四、用训练轮数、数据量和候选数定位瓶颈

把oracle覆盖与最终选择画在同一候选预算上,才能解释生成训练更久或采样更多为何可能退步。

项目 原文设置与检查目的
数据与模型 GSM8K;GPT-3系列3B、6B、12B、175B;不同训练集子集检验数据规模趋势
单次生成基线 标准监督微调20轮,低温度单次输出;研究模型规模和训练数据影响
验证系统 生成器两轮、验证器一轮;默认训练与测试各100候选;温度0.7
优化预算 附录B表1给出批量约3.2万token、最长生成400token、Adam、线性学习率衰减;验证学习率为1e-5
外部能力 计算器注释与推理执行;不能与禁用计算器系统直接归因比较
指标 单次解题率、候选中至少一份正确的覆盖率、验证器选出正确解答的比例
不确定性 图5通常报告三次运行均值及标准差,175B验证器只有一次运行
消融 每token与末token监督、语言建模辅助损失、生成器/验证器规模、测试候选数

训练轮数不同是系统设计的一部分,因此验证方案并不是与单生成器具有严格相同总计算量的比较。它使用额外训练生成数据以及测试候选。图8的部分正则化配置还增加预训练阶段的dropout,比较时须保留这些条件。

GSM8K微调数据规模、dropout和训练轮次的三组消融
原文图形摘引:Karl Cobbe等,2021,图8,PDF第11页;核对原文。原版权保留。

证据一:§4.1的解题过程消融。 6B模型去掉中间解答、只训练最终答案后,解题率从20.6%降至5.2%,下降15.4个百分点。结果支持该训练设置下自然语言解答监督有价值;不能证明模型输出的每一步都是内部真实计算过程,也不能把收益全归于单一“更多token”因素。

证据二:图3的单次质量与候选覆盖。 横轴是训练轮数。训练更久能继续提高单次输出表现,但100次采样覆盖率会在一定阶段下降。这解释作者为何选择较早的生成检查点:排序系统的上限首先取决于候选里有没有正确解答。图中趋势不意味着所有任务都应该固定训练两轮。 图5的误差范围通常来自三次运行,但175B验证器只有一次;图13又是作者挑选的示例,不能把局部着色当成过程标注的总体准确率。

GSM8K四个推导示例的验证器预测与真实正确性对照
原文图形摘引:Karl Cobbe等,2021,图13,PDF第21页;核对原文。原版权保留。

GSM8K训练轮次对pass@1与pass@100的不同影响
原文图形摘引:Karl Cobbe等,2021,图3,PDF第6页;核对原文。原版权保留。

证据三:图5的数据规模曲线。 数据充分时,验证方案优于微调基线;在较小数据规模时不一定获益。6B验证系统略优于175B单次微调,是摘要中约30倍模型规模比较的依据。175/6约为29.2,这是参数量比,绝不是速度或总算力节省29.2倍:前者需要大量候选和验证计算。

GSM8K训练集规模变化时微调和验证器系统的测试正确率
原实验图摘引:Karl Cobbe等,2021,图5;核对原文。原版权保留。

证据四:图6的组件消融。 更密集的前缀监督与语言建模辅助目标缓解验证器过拟合。混合不同尺寸生成器和验证器的实验还显示,大生成器配小验证器可以优于相反配置,强调候选覆盖的重要性。它没有证明验证器总能无限缩小,也没有控制所有可能的推理时延组合。

GSM8K验证器标注粒度、联合目标和训练集规模的三组对照
原文图形摘引:Karl Cobbe等,2021,图6,PDF第9页;核对原文。原版权保留。

证据五:图7的更多采样并不单调更好。 6B实验把候选数从25增加到3200,验证表现先改善,在约400后下降。搜索更大候选池也增加遇到验证器高分错误的机会。这个结果支持对选择偏差的警惕,但并不是所有验证器都在400处达到最优的普适定律。

GSM8K验证器在候选数量增大后出现峰值和退步的曲线
原实验图摘引:Karl Cobbe等,2021,图7;核对原文。原版权保留。

五、结果标签仍可能奖励错误过程和格式捷径

如果正确候选完全没出现,再强的验证器也不能选出它;如果正确候选出现但验证器偏爱冗长错误解释,增加采样甚至让问题更严重。这把瓶颈分成了覆盖率、标签质量和选择质量三层,分别需要不同实验。

核心观点可以推广为:测试时计算应同时考虑生成覆盖和排序精度,而不是只增加采样数量。

最终答案匹配会容纳“错误过程碰巧答对”,还可能让验证器学习格式、长度或常见答案等捷径。图13展示了经过挑选的失败案例,有助于理解机制,却不能当作失败类型的总体频率统计。论文也未建立跨语言、高等数学或形式证明的系统性外推结论。

附录C承认计算器实现存在错误,修正后完整测试集表现约改善1%。这是复现时需要记录的版本差异:不能把修正版代码结果直接当成原图数据,也不应隐去工具实现对分数的影响。完整硬件耗时与端到端成本没有在这里获得统一可比的报告,不能从参数量自行推算。

六、从学习裁判到投票与推理预算分配

学习裁判之外,Self-Consistency用答案共识选择,推理时计算进一步分配搜索和修订预算。沿本文两项条件概率,分别检验覆盖和选择怎样改变。

自测与参考答案

1. 每个token都有验证损失,为什么还不能称为逐步正确性监督?

答案:每个前缀的标签都来自同一份完整解答的最终答案。它训练的是给定前缀时预测最终成败,而非当前步骤是否符合数学规则。要验证过程,需要额外的步骤标签、形式检查或其他能够区分中途错误的信号。

2. 6B验证系统超过175B单次模型,是否意味着计算成本降低约30倍?

答案:不能。约30倍只比较模型参数规模。系统会生成100份候选并额外运行验证器,还需要验证数据生成与训练。应比较相同质量下的总token、硬件时间、峰值显存及并行资源,参数少只影响其中一部分。

3. 为什么候选数增加后,正确候选覆盖率可以升高,最终选中正确答案的比例却下降?

答案:候选池包含正确答案的概率增加,但也更可能出现验证器异常高估的错误答案。最终选择由最大预测分数决定,不由真实正确性决定。可把覆盖率与条件选择准确率分别画图,并用独立标注检查高分错误,区分生成瓶颈与排序过优化。