大多数用 RLVR 训练出来的推理模型,在被要求"再修一遍自己的答案"时往往原地踏步,甚至变差。ThinkTwice 直接把"修改"这件事训练进去:每一步先采样一个解,再让模型对自己的解做一次精修,两次都用同一个二元正确性奖励、同一份 GRPO 目标更新。没有额外的批评模型,没有人工写的批评意见,也没有过程奖励模型——只有一个信号:最终答案对不对,应用两次。
研究背景
"自我精修"提示在演示里很美好,落到生产里就崩。原因很朴素:模型从来没有被训练过让"第二次"比"第一次"更对。普通 RLVR 优化的是一次性正确率;最后得到的策略并没有动力把第二次答案变好,反而经常把第一次原本对的部分擦掉。
方法
ThinkTwice 把 GRPO(Group Relative Policy Optimization)扩成成对的训练步。阶段 A 是普通 RLVR:对一道数学题采样若干解,按二元正确性打分,用 GRPO 更新;阶段 B 把模型自己阶段 A 的输出再喂回去,让它精修一次,用同一个二元奖励和同一个 GRPO 目标更新。整个过程不用任何额外监督——没有教师批评、没有错误轨迹标注、没有学习出来的奖励模型。
所需要的标签只有一个:"对错"——应用两次。
训练动态上能观察到一种"先纠错、再加固"的隐式课程:训练早期,精修步骤主要在修正错误答案;随着基础准确率提升,精修步骤逐渐转向"守住已经对的"。作者认为这正是 ThinkTwice 比单遍 GRPO 拥有更干净奖励信号的原因——第二遍的奖励分布是被第一遍塑造过的。
主要结果
五个数学评测集(MATH500、AIME 2024、AMC、Minerva Math、OlympiadBench)× 两个模型家族(Qwen3-4B-Instruct-2507、OLMo-3-7B-Instruct),覆盖 pass@k(k = 1, 2, 4, 8, 16, 32+)。最具代表性的一行数字是 Qwen3-4B 在 AIME 2024 上:
| 设置 | Δ pass@4 |
|---|---|
| GRPO(单遍) | 基线 |
| ThinkTwice(不使用精修) | +5.0 |
| ThinkTwice(一次精修) | +11.5 |
AIME 2024,pass@4,Qwen3-4B-Instruct-2507。+5.0 那一行是只用 ThinkTwice 训练、推理时不调用精修就能拿到的提升;+11.5 是同时用上精修后的总提升。
关键发现
- 不调用精修,单遍推理也变好。训练目标本身就在锐化一次成型的能力。
- 精修是叠加的。一次精修在此基础上再拿到约 6.5 个百分点。
- 跨模型精修也成立。用 ThinkTwice 训练出来的模型可以精修另一个基模型的输出,说明这种能力不只局限于自己的输出分布。