Home / 大语言模型 / STaR:把自己答对的推导变成下一轮训练数据

055 · STaR:把自己答对的推导变成下一轮训练数据

返回目录 · 上一篇:InstructGPT · 下一篇:自一致性

论文:Eric Zelikman、Yuhuai Wu、Jesse Mu、Noah D. Goodman,STaR: Self-Taught Reasoner — Bootstrapping Reasoning With Reasoning,2022。原始论文 · 全文。

先接住前作的问题

CoT从少量过程示例引出推导,但规模化人工过程标注昂贵。本篇把模型生成的过程筛成训练材料,补上“答不出的题永远进不了成功集”的缺口;与GSM8K验证器测试时排序不同,它把收益写回模型参数。

五个前置概念

五个前置概念:自训练把模型输出转成训练目标;伪标签是自动产生的监督;拒绝采样按规则筛掉不合格候选;课程效应指可学样本随能力变化;策略梯度通过回报加权输出概率的梯度。

一、问题设定:只有答案监督,怎样让训练覆盖原本答不对的题

输入问题xx,输出推导rr和答案yy,任务覆盖整数加法、CommonsenseQA和GSM8K。只模仿已答对题会偏向已有能力,因此要用标准答案辅助生成新推导。核心仍是筛选后的监督微调,不训练偏好奖励或价值模型,也不使用PPO。

最简单循环只能留下模型已经答对的问题。如果某类题始终失败,就始终没有相关训练信号。作者加入rationalization:训练数据生成阶段提供正确答案作为线索,尝试构造能通向它的推导。这里可以译作“给定答案生成解释”,不宜仅凭名称认为模型完成了严格反向证明。

方法依赖两个近似假设:答对的推导通常比答错的质量好;知道答案有助于找到有用过程。常识五选一任务尤其容易破坏第一个假设,因为纯猜也有20%的答对机会。题目越容易凭捷径答对,最终答案筛选对推导质量的约束越弱。

二、分开成功筛选与答案辅助生成的采样分布

设原始预训练模型为M0M_0,第nn轮生成模型为Mn−1M_{n-1}。先正常生成(r^i,y^i)(\hat r_i,\hat y_i),组成

Dn={(xi,r^i,yi):y^i=yi}.D_n=\{(x_i,\hat r_i,y_i):\hat y_i=y_i\}.

再对失败题输入答案提示,得到另一份推导;若最终复述的答案仍正确,则加入DnratD_n^{rat}。训练文本里的问题必须删除答案提示,否则模型学到的是“先看到答案再解释”,无法对应测试条件。

最容易漏掉的实现细节是:每一轮微调从原始预训练模型重新开始,而不是不断接着上一轮权重训练。 上轮模型负责生成新数据,新一轮学生从原始模型拟合新数据。作者这样做是为了减少重复训练造成的过拟合,虽然也增加了重训成本。

Mn=arg⁡min⁡M−∑(x,r,y)∈Dn∪Dnratlog⁡pM(r,y∣x).M_n=\arg\min_M-\sum_{(x,r,y)\in D_n\cup D_n^{rat}}\log p_M(r,y\mid x).

这个式子是监督目标的概括,不表示论文把内层问题求到全局最优。真正执行的是有限步梯度更新,且外循环训练步数逐步增加。

论文§3.1把目标写成答对概率J=E[1(y^=y)]J=\mathbb E[\mathbf1(\hat y=y)]。利用对数导数技巧,可得到含有1(y^=y)∇log⁡pM(r,y∣x)\mathbf1(\hat y=y)\nabla\log p_M(r,y\mid x)的梯度。错误样本权重为零,这解释了“只对成功轨迹做模仿”的联系。

但STaR主要使用贪心生成、在同一筛选数据上多步更新,还使用给定答案的替代生成分布。这些都会偏离简单的无偏策略梯度估计。论文也把它视作近似与研究线索,没有证明整个循环单调提高真实测试回报。

因此应区分三件事:内层优化的是生成推导和答案的似然;机制改变是筛选与答案辅助的数据生成;改善指标是最终任务准确率。把“自训练”直接理解为模型发现了独立新真理,超出了方法所用信息。

正确筛选会自动偏向模型已经会的区域

对题目x,当前模型答对概率为 pxp_x;若每题只生成一次并仅保留正确结果,进入训练集的期望权重正比于 pxp_x。易题因此更常留下,极难题几乎没有梯度。答案辅助的作用是改变数据生成条件以扩大覆盖,再删除提示让学生学习正常条件下的输出;它仍不能保证所生成解释有真实因果依据。

以下为自构例子:问“冰块放在温暖房间后通常变成什么”,模型错误选择水蒸气。训练数据生成时告诉它答案是液态水,模型可能写出“室温使冰熔化,熔化首先得到水”。删除答案提示后,这条推导成为新的监督样例。

成功筛选如何改变题目曝光频率

给两类题各生成100次,若当前答对率分别为0.2和0.8,只留成功轨迹后预计剩20与80条,训练比例从1:1变成1:4。答案辅助生成不只是“多写理由”,还试图把此前低通过率题放回监督集;评价时应报告各难度组覆盖,不能只看保留数据总数。

教法联系:Lilian Weng的Prompt Engineering。算例为本文自构。

三、用外循环生成数据、内循环从原模型重训

输入:原始模型 M0,问题/答案集 D,少量推导示例 P
生成模型 M ← M0
循环直到验证表现不再改善:
    新数据 S ← 空集
    对每道训练问题 x、答案 y:
        用 M 和 P 正常生成推导 r、答案 a
        若 a == y:保留 (x,r,y)
        否则:把 y 作为提示,再生成推导 r2、答案 a2
              若 a2 == y:保留 (x,r2,y),删除输入中的答案提示
    学生 ← 从原始 M0 重新初始化
    在 S 上监督微调学生
    M ← 学生
输出:不需要标准答案提示即可生成推导与答案的模型

四、检验覆盖比例、任务差异与循环中的负结果

先看答案辅助增加了哪些题,再比较常识和数学的收益;覆盖比例只能解释终态,不能单独分离各轮历史贡献。

项目 原文设置与比较目的
基础模型 GPT-J 6B,检验公开模型能否利用自身生成数据
加法数据 50,000随机题,每轮抽10,000;1—5位数示例;后续扩展位数研究长度泛化
CommonsenseQA 9,741训练、1,221开发、1,285隐藏测试;主表报告开发集,不是隐藏测试成绩
GSM8K 7,473训练、1,319测试;从少量解题示例出发
提示 常识任务十个推导示例,修正原示例错误并澄清知识表达;并非完全不干预提示
优化 附录H:Adam学习率1e-6,8条长度1024序列/批,packing,无权重衰减,单TPU-v3节点
外循环预算 默认从40步开始,每轮增20%;加法rationalization使用不同安排;GSM8K在第30轮限制单轮步数为7,912
对照 少样本直接回答、少样本思维链、直接答案微调、无rationalization、自训练完整版本
报告范围 运行到饱和并报告最佳成绩;主结果没有统一的多种子置信区间,不能自行补出显著性

数据使用比例指最终保留下来用于训练的题目比例,不包括为筛选这些题而进行的全部生成计算。筛后数据更少不等于总预算更少。GSM8K无rationalization结果经历36轮,加入该机制又运行十轮,精确比较时也应记住预算差异。

证据一:表1的常识问答。 GPT-J直接答案微调为60.0%,无rationalization为68.8%,完整STaR为72.5%。相对直接微调提高12.5个百分点,而不是12.5%的相对提升;后者计算为12.5/60≈20.8%。它支持该配置下生成过程训练的价值,但常识数据可能包含捷径,不能仅凭答对确认推导可靠。

证据二:表1的数据覆盖。 无rationalization使用69.7%训练题;完整方案覆盖86.7%,其中78.2%来自正常生成,8.5%来自答案辅助。提示答案不仅增加当前轮数据,还可能帮助后来正常生成解决新题。这是合理机制解释,不能仅凭终态比例分离所有历史贡献。

证据三:表2的GSM8K限制。 直接微调5.8%,无rationalization10.1%,完整10.7%;后者最终使用28.7%训练题。相对于常识任务,答案提示只带来很小的额外收益,且仍有大量题无法解决。这是重要负结果:反向解释不会自动跨越所有复杂推理障碍。

证据四:图4/图5的加法学习。 16轮后的总体准确率为89.5%,直接答案基线为76.3%;加入rationalization后两位数加法首轮可由不到1%提升至32%。扩展位数后能解决部分未见9、10位数问题,同时训练更不稳定。数据与训练安排不完全相同,不能将全部差异归于一个模块的纯因果效应。 每条线对应一种位数的加法,横轴是 STaR 迭代;引入更多位数后任务分布已改变,不能把整个轨迹理解为固定题集上的同一种增益。

STaR不同位数加法任务准确率随自举迭代次数变化
原文图形摘引:Eric Zelikman、Yuhuai Wu、Jesse Mu、Noah D. Goodman,2022,图5,PDF第6页;核对原文。原版权保留。

STaR不同位数加法任务的准确率随训练迭代变化
原实验图摘引:Eric Zelikman、Yuhuai Wu、Jesse Mu、Noah D. Goodman,2022,图4;核对原文。原版权保留。

证据五:§4.4的提示与人工评估。 微调时保留少样本提示,无rationalization从60.9%提高至68.8%,完整方案69.9%到72.5%。另抽取50道两模型都答对的问题,由20位参与者排序解释,STaR解释比少样本解释更受偏好。这个受限样本支持表达质量改善,不是所有题目上的解释正确率,更不是人类水平证明。

教学算例。 两组题各100道,答对概率分别0.9和0.1,则一次筛选后期望留下90与10条。即使原任务等权,学生看见的已是9:1。若第二组通过答案辅助多保留60条,可缓解覆盖偏斜;若60条只是复述答案,样本数量增加却不带来可迁移步骤。

五、答案通过不保证推导正确或忠实

但如果它只写“答案是水,所以应该选水”,最后答案仍通过检查,却没有提供可迁移知识。可以独立标注一小部分解释的逻辑有效性,比较仅答案筛选与过程筛选,这是检验自训练质量的实验方案,并未运行。

它在训练阶段花费搜索与生成成本,目标是让部署模型直接受益,而非每道测试题都重新训练。

作者观察到循环论证、只陈述相关事实却不支持结论、把一般常识写成关于某个人的假定知识等失败。高温多采样也可能收集更多偶然答对的坏推导,导致训练停滞。这与“多生成总有收益”的直觉相反:数据量增加必须和筛选精度一起看。

附录G讨论解释忠实性:模型可能先隐式选择答案,再生成合理化文本。人工偏爱某种解释风格并不能排除此事。完整过程标签未提供,方法不能保证避免偏见或错误传播。

复现时还应核对附录H的架构文字:其embedding大小描述与同段注意力头配置存在不易直接对应之处。本文只使用确定的GPT-J 6B身份及训练超参数,不据此自行构造一个未经官方配置核实的网络。架构代码核对属于独立复现步骤。

六、区分自训练数据筛选与结果奖励优化

成功过程筛选会偏向已有能力。R1展示RL探索与后续监督整理的组合;比较时应分别列出教师采样、验证和学生训练,而不是笼统声称模型只靠自己的文字变强。

自测与参考答案

1. STaR为何不是完全无监督自我改进?

答案:它需要正确答案来筛选正常生成、提供失败题提示,还需要少量推导示例。模型自动补充的是缺失过程,外部答案仍承担质量信号。若连答案也由模型投票产生,误差结构与算法假设都会改变。

2. 为什么生成解释时能给答案,训练与测试输入却必须移除答案提示?

答案:答案提示只是搜索有用推导的工具。保留提示会让学生依赖一个测试时不可得的信息,学成条件解释而非解题。删除它使目标变成从原问题生成过程和答案,但生成过程本身是否有效仍需额外检查。

3. 每轮接着上轮权重训练是否就是原论文STaR?

答案:不是。原算法用上轮模型产生新数据,却从原始预训练权重重新微调学生,旨在减少累积过拟合。连续训练是可研究变体,需要单独比较总计算、旧数据重复、过程质量和验证性能,不能不加说明替换。