055 · STaR:把自己答对的推导变成下一轮训练数据
返回目录 · 上一篇:InstructGPT · 下一篇:自一致性
论文:Eric Zelikman、Yuhuai Wu、Jesse Mu、Noah D. Goodman,STaR: Self-Taught Reasoner — Bootstrapping Reasoning With Reasoning,2022。原始论文 · 全文。
先接住前作的问题
CoT从少量过程示例引出推导,但规模化人工过程标注昂贵。本篇把模型生成的过程筛成训练材料,补上“答不出的题永远进不了成功集”的缺口;与GSM8K验证器测试时排序不同,它把收益写回模型参数。
五个前置概念
五个前置概念:自训练把模型输出转成训练目标;伪标签是自动产生的监督;拒绝采样按规则筛掉不合格候选;课程效应指可学样本随能力变化;策略梯度通过回报加权输出概率的梯度。
一、问题设定:只有答案监督,怎样让训练覆盖原本答不对的题
输入问题,输出推导和答案,任务覆盖整数加法、CommonsenseQA和GSM8K。只模仿已答对题会偏向已有能力,因此要用标准答案辅助生成新推导。核心仍是筛选后的监督微调,不训练偏好奖励或价值模型,也不使用PPO。
最简单循环只能留下模型已经答对的问题。如果某类题始终失败,就始终没有相关训练信号。作者加入rationalization:训练数据生成阶段提供正确答案作为线索,尝试构造能通向它的推导。这里可以译作“给定答案生成解释”,不宜仅凭名称认为模型完成了严格反向证明。
方法依赖两个近似假设:答对的推导通常比答错的质量好;知道答案有助于找到有用过程。常识五选一任务尤其容易破坏第一个假设,因为纯猜也有20%的答对机会。题目越容易凭捷径答对,最终答案筛选对推导质量的约束越弱。
二、分开成功筛选与答案辅助生成的采样分布
设原始预训练模型为,第轮生成模型为。先正常生成,组成
再对失败题输入答案提示,得到另一份推导;若最终复述的答案仍正确,则加入。训练文本里的问题必须删除答案提示,否则模型学到的是“先看到答案再解释”,无法对应测试条件。
最容易漏掉的实现细节是:每一轮微调从原始预训练模型重新开始,而不是不断接着上一轮权重训练。 上轮模型负责生成新数据,新一轮学生从原始模型拟合新数据。作者这样做是为了减少重复训练造成的过拟合,虽然也增加了重训成本。
这个式子是监督目标的概括,不表示论文把内层问题求到全局最优。真正执行的是有限步梯度更新,且外循环训练步数逐步增加。
论文§3.1把目标写成答对概率。利用对数导数技巧,可得到含有的梯度。错误样本权重为零,这解释了“只对成功轨迹做模仿”的联系。
但STaR主要使用贪心生成、在同一筛选数据上多步更新,还使用给定答案的替代生成分布。这些都会偏离简单的无偏策略梯度估计。论文也把它视作近似与研究线索,没有证明整个循环单调提高真实测试回报。
因此应区分三件事:内层优化的是生成推导和答案的似然;机制改变是筛选与答案辅助的数据生成;改善指标是最终任务准确率。把“自训练”直接理解为模型发现了独立新真理,超出了方法所用信息。
正确筛选会自动偏向模型已经会的区域
对题目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 迭代;引入更多位数后任务分布已改变,不能把整个轨迹理解为固定题集上的同一种增益。


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