Learning to Refine
Test-time scaling · arXiv 2509.00084v2

Learning to Refine:让「看完 4 个候选再写一份新解」变成训练出来的技能

多数投票和 Best-of-N 只能在候选里挑,k 个候选全错就全错。并行自精炼能让模型看完所有候选再综合一份新答案,但作者先在 1.5B–72B 间量出:这份「超出投票」的部分随模型规模变大,与基础能力只弱相关。 于是他们把大模型的精炼策略蒸馏给 7B,并把「直接解题」与「看过候选再精炼」混在一次 SFT 里。

Qibin Wang, Pu Zhao, Shaohan Huang 等 · Microsoft / PKU arXiv 2509.00084v2 ↗
TL;DR · 30 秒抓住核心

论文先定义 Refinement Gap Δ = selfRef@k − maj@k(Eq. 1:同一批 k 个候选上,加不加「看完再综合」的差),在 AIME24/AIME25 上扫 Qwen2.5-Instruct 与 R1-Distill / QwQ。结论:Δ 随规模上升,与 pass@1 弱相关(§2)。

GSR 顺着这个结论:让 QwQ-32B 给 7B 自己的候选写精炼答案,并重点保留候选全错的困难样本;训练时精炼损失与直接解题损失按 λ=0.5 加权(Eq. 3)。推理时同一个模型先采 4 个候选,再综合成一份新答案,不需要外部奖励模型。

收益集中在低质量候选:AIME24 上 4 个候选全错时仍答对 5.9%,论文称其他方法全为 0;反例同样明确:MATH500 上 selfRef@4(93.4)低于 BoN@4(93.5)。

73.6%
GSR-7B 五基准平均 selfRef@4(Table 1)
不加训练的精炼 39.4 / 同模型 maj@4 70.5 / 最强 BoN(RM-R1-7B)70.9
+6.0 点
AIME24 selfRef@4 66.0 − maj@4 60.0(绝对点差)
5.9%
AIME24 4 候选全错(Nc=0,16 / 272 组)
01

并行采样的聚合方法,上限都被候选集锁死

读完这节你应该知道:为什么「从 k 个候选里挑」不会超过候选里最好的那条,以及为什么论文要先问「自精炼到底值不值」。

测试时扩展(TTS)不改参数,只在推理时多花算力。并行路线里最常见的两种做法:

“However, these prevailing strategies are inherently bounded by the quality of the set of candidates (Khairi et al., 2025). They are limited to produce a solution that transcends the quality of candidate proposals, which becomes particularly problematic when all candidates are flawed.”§1

两种方法都只能返回某一条候选,k 条全错就没救。串行自我精炼(模型反复改自己的答案)曾是替代路线,但论文引 Huang et al. (2024):没有外部反馈时模型很难自我纠错,有时还会变差(§1)。研究重心因此转向并行聚合:一次输入多个候选,合成一份新答案。

但这里有个测量问题:同样 k 条候选,多数投票本身就能带来明显提升,精炼多出来的那部分到底归功于什么并不清楚(§2)。这就是 RQ1:「Do we really need parallel self-refinement?」——要回答它,得先有一个「排除投票贡献」的度量。

02

前人两路:训一个融合模块,或直接提示模型自精炼

读完这节你应该知道:两路前人各解决了一半,这篇补的是「自精炼增益从哪来、能不能训进小模型」,以及支撑这个判断的 Δ 数据。

前人 A

专门训练的合成器

LLM-Blender、LMCor、AFT、CoT-based-Synthesizer 等(§5):另外训一个生成模型,专门把多条解融成一条。本文对比的 Synthesizer-8B 属于这一类。

论文的判断:“these methods focus exclusively on the task of improving parallel solutions, while neglecting to train the model to solve problems directly.”(§5)

前人 B

提示式并行自精炼

不做训练,只在提示里塞进 k 个候选让模型综合。代表就是未训练的 Qwen2.5-7B-Instruct。

结果(Table 1):五基准平均 selfRef@4 39.4,与它自己的 maj@4 39.4 持平,表中 Δ 记为 ±0.0;AIME24 上 Δ 为 −1.1。

还有一类:分层聚合。把候选分组、组内聚合、跨组再迭代。论文认为它「not indeed scaling on input and have a time complexity of 𝒪(N)」(§4.6)。

度量:Refinement Gap 与它的三个观察

Δ(ℳ, 𝒟, k) = selfRef@k(ℳ, 𝒟) − maj@k(ℳ, 𝒟)
Eq. 1(§2):同一模型、同一数据集、同一批 k 个候选上的差值;选择多数投票作基线,因为它是同一组解的确定性算子
“(1) Parallel self-refinement consistently raises the ceiling beyond the base capability measured by pass@1 across all models and benchmarks evaluated.”
“(2) The Refinement Gap Δ exhibits a clear scaling trend across instruction and thinking models. Further, we empirically observe a regime shift around 14B.”
“(3) The Refinement Gap Δ is weakly correlated with the base capability of the models. For instance, on AIME24, DeepSeek-R1-Distill-Qwen-7B attains a higher base capability (54.4%) yet has Δ̄ = −0.8, while Qwen2.5-32B-Instruct attains a larger Δ̄ = 3.1 despite a much lower pass@1 (18.6%).” §2 观察 (1)(2)(3) 原文

第 (3) 条是全文最反直觉的一张对照:7B 思考模型 pass@1 有 54.4%,Δ̄ 却是负的;32B 指令模型 pass@1 只有 18.6%,Δ̄ 反而更大。综合能力不能替代「从别人的解里提炼」的能力。

需要注意:原文 54.4% 仅标注为 base capability,18.6% 明写为 pass@1;二者口径来源不对称,本页按原文标注照录。

Δ̄ = 0 ≈ 14B 以下:低增益区间 ≈ 14B 及以上:高增益区间(「regime shift」) R1-Distill-Qwen-7B base capability 54.4% Δ̄ = −0.8 Qwen2.5-32B-Instruct pass@1 18.6% Δ̄ = 3.1 +5.5(GSR-7B) §4.2 · AIME24/25 平均 Δ Δ̄ Δ̄ 以 0 与 3.1 定标;+5.5 是超出 −0.8..3.1 区间的外推点
按文字重绘的示意,不是 Figure 2。纵轴以 Δ̄ = 0 与 Δ̄ = 3.1 两点定标(Δ̄ = −0.8 与 +5.5 按同一比例落点);横轴只示意「小 / 大」两个区间,不代表参数量比例。 其中蓝点来自 §2 第 (3) 条,GSR-7B 的 +5.5 来自 §4.2(AIME24/AIME25 的平均 Δ̄,与 §2 的单基准 Δ̄ 不是同类量)。54.4% 原文未标 pass@1。Figure 2 逐模型的原图未转录;正文只点名过这三个模型。
03

GSR:候选来自学生、精炼目标来自教师,两种损失混着训

读完这节你应该知道:数据怎么造、损失怎么拼、为什么要同时训「解题」和「精炼」。

数据:对着学生自己的候选写目标

对每个问题 x,先从学生自己采 k 个候选 Ck,拼成增强输入 xaug = Aug(x, Ck),再去问教师写一份精炼答案 yTref(§3.2)。选教师的依据就直接取 §2 的 Δ:「we select large teacher models with high refinement gap」;实际用的是 QwQ-32B(Appendix E)。

候选集怎么拼(Appendix E):每个问题先用 Qwen2.5-7B-Instruct 按 T=1.0、top-p 0.95 采 6 解;全部正确解都保留,剩余名额用错误解补齐成 4 个;最后把顺序打乱。

“Notably, to ensure the student learns synthesis beyond candidate responses selection, we intentionally retain hard instances where the candidate pool is of low quality and highly inconsistent. Specifically, we emphasize the cases with Nc = 0 (i.e., all candidate responses are incorrect) as well as other highly inconsistent scenarios, where voting or ranking is not effective.”§3.2

消融里的对照数据集是随机抽样、没有这道强调(§4.3),所以后面「全错也能救回」与这里的选择直接相关。

另一半数据是直接解题:拿原问题问教师,得到 yTdir,构成 Ddir。原文的理由是「the candidate quality sets the performance ceiling for refinement」(§3.2)。

损失:两个 NLL 加权,λ 取 0.5

ℒdir(θ) = −𝔼Ddir log 𝒮θ(yTdir | x)
ℒref(θ) = −𝔼Dref log 𝒮θ(yTref | xaug)
ℒ(θ) = λ · ℒref + (1 − λ) · ℒdir,  λ = 0.5
Eq. 2(两个 NLL)与 Eq. 3(加权组合),§3.3;红 = 精炼目标,蓝 = 直接解题目标;𝒮θ 是同一个学生模型
pass@1 selfRef@4
+ours · Table 2
切换配方,看 pass@1 与 selfRef@4 的差距怎么变。

与原文的关系:数值逐格取自 Table 2(§4.3);交互只切换三种训练配方,不改原表口径。DS = 只训 ℒdir,Ref = 只训 ℒref,ours = 各 10K。

手算两组与页面 JS 输出逐位对照

第一组:+DS,AIME24。pass@1 38.3,selfRef@4 44.3;差 = 44.3 − 38.3 = 6.0 点。
第二组:+ours,AIME25。pass@1 29.0,selfRef@4 36.5;差 = 36.5 − 29.0 = 7.5 点。
同表 AIME25 的 +Ref:30.0 − 23.5 = 6.5 点。所有差值都是 selfRef@4 − pass@1,同一行、同一题集。

“Training only the refinement objective tends to be bottlenecked by candidate quality, which in turn limits the headroom. In contrast, training only the direct-solving objective improves the base capability but does not reliably teach the model to leverage imperfect candidates, resulting in a low or unstable refinement gap Δ.” §3.3
和普通蒸馏的区别

目标是「对你自己的候选怎么做」,不是「直接答案长什么样」

引文来自 §3.2:“Unlike vanilla distillation, this supervision teaches how to refine the student’s own candidates, rather than only imitating direct answers.” 候选由学生生成、答案由教师给,学生学的是「从我自己的错解里挑出对的片段、修掉错的」——这一点是论文对数据构造的说明,效果上能走多远则看 06 节的数字。

04

368K 条 SFT、3 个 epoch;输出比直接解题短约三成

读完这节你应该知道:数据量与超参、评估口径,以及「四份候选塞进上下文」的代价是怎么压下来的。

直接解题

184K 条

从过滤后的池子里随机抽的「问题 → 答案」(§4.1、Appendix E Table 7)。

精炼

184K 条

53K 个问题,每个用 QwQ-32B 至多采 10 解,按正确性筛出 184K(Appendix E)。

合计

368K 条

3 epochs,AdamW,lr 1e-4,10% warmup + cosine,batch 128,最大序列 24K(Appendix D.1)。

来源是 OpenMathReasoning(540K 题 / 3.2M 条生成),经过滤保留 pass_rate_72b_tir 在 0.25–0.90 之间的 56K 题(Appendix E Table 6)——即去掉了太简单和太难的问题。消融实验单独用 20K 样本、训 5 epochs、lr 4e-5(§4.3、Appendix D.1)。

上下文成本:只留候选的 summary

思考模型每份候选都很长,四份一起塞进输入会爆上下文。论文的做法是只取每份候选的 summary、丢掉 thinking 部分(Appendix B)。summary 只占直接解题输出 token 的 6.6%–14.8%,单份平均 570–960 tokens;评估时候选输入上限 6,144 tokens(Appendix D.2)。

Table 4(Appendix B):GSR-7B 的平均输出 token 数
输出AIME24AIME25AMC22-23MATH500Olympiad
self-Refinement887810477527027455910
Direct Solving1323213687773238508209
Reduction(%)−32.9%−23.5%−31.8%−28.7%−28.0%

Reduction 行照录(原文以降幅报,表中负号即「减少」)。按表内两行用 python3 复算:1 − 8878 / 13232 = 1 − 0.6709 = 0.3291,即输出 token 减少 32.9%(13687 → 10477:1 − 0.7654 = 0.2346,23.5%;7732 → 5270:0.3184,31.8%;3850 → 2745:0.2870,28.7%;8209 → 5910:0.2801,28.0%),与表中 |Reduction| 逐格一致。

注意这是输出 token:一次精炼(参考 4 份候选)的生成量比一次直接解题少。输入侧先靠 summary 抽取,单份平均 570–960 tokens,评估时再卡每份 1,566 tokens 的上限(Appendix B、D.2)。论文没有把输入 + 输出合成一个总成本数字。

评估口径

05

一条数据从「学生的错解」走到「精炼监督」的路线

读完这节你应该知道:训练时两条数据流在哪里汇合、推理时「生成 → 精炼」两段各对应原文哪一节。

训练数据 · §3.2 / Appendix E 问题 x 53K 题 学生 7B 采 6 解 全留正确 + 错解补齐 → 4 候选,打乱 x + 4 候选 只留 summary 超 8192 tok 丢弃 教师 QwQ-32B 每题至多 10 解 按正确性筛 → 184K 教师直接解题 问题 → 答案 184K ℒ = 0.5·ℒref + 0.5·ℒdir(Eq. 3)· 单模型 SFT 精炼目标约束在「看过候选」的输入上,解题目标约束在原问题上 推理 · §3.1 generate-then-refine direct 模式采 k 个候选 主实验 k=4;§4.6 扫 k=2…10 refine 模式:看 k 个候选出 1 份 无外部奖励模型 selfRef@k Math-Verify 判对错 同一模型,切换 prompt
按 §3.2、§3.3、§3.1、Appendix E、Appendix D.2 重绘的流程图,不是原图;Figure 3 原图未转录。「同一模型、切换 prompt」见 Appendix A 的两种提示模板。
06

平均领先来自 AIME;候选越差差距越大;MATH500 上赢不过 BoN

读完这节你应该知道:在哪几个基准上拉开差距、差距的来源、以及论文自己披露的例外。

Table 1(§4.2):五基准准确率;k=4 的方法共享同一批候选;maj@5 / BoN@5 用于对齐算力预算
方法聚合器AIME24AIME25AMC22-23MATH500OlympiadAvg.
Qwen2.5-7B-Instruct(Base)
pass@1—13.27.243.675.939.535.9
maj@4—16.79.647.779.443.539.4
BoN@4SkyworkRM-27B17.19.248.078.643.039.2
selfRef@4—15.611.347.578.743.839.4
Δ(selfRef − maj)—−1.1+1.7−0.2−0.7+0.3±0.0
GSR-7B(After Training)
pass@1—50.137.878.590.664.464.3
maj@4—60.046.784.692.868.370.5
maj@5—60.748.384.993.168.871.1
BoN@4RRM-7B60.446.380.490.664.668.5
BoN@4RM-R1-7B62.145.484.693.569.170.9
BoN@4SkyworkRM-27B58.346.781.692.567.669.3
BoN@5SkyworkRM-27B59.246.382.892.767.769.7
Ref@4Synthesizer-8B60.244.084.092.067.769.6
selfRef@4—66.051.785.793.471.073.6
Δ(selfRef − maj)—+6.0+5.0+1.1+0.6+2.7+3.1

口径先钉死:本页所有「提升」都是 Δ = selfRef@4 − maj@4,同一训练后模型、同一批候选,单位为百分点(绝对差)。python3 逐格复算:66.0 − 60.0 = 6.0;51.7 − 46.7 = 5.0;85.7 − 84.6 = 1.1;93.4 − 92.8 = 0.6;71.0 − 68.3 = 2.7;五格均值 15.4 / 5 = 3.08,原表取 +3.1。

另一个容易被读高的数是 73.6:相对最强 BoN(RM-R1-7B,70.9)是 +2.7 个百分点(73.6 − 70.9),相对提升 (73.6 − 70.9) / 70.9 = 3.8%;相对 maj@4(70.5)是 +3.1 点,相对提升 4.4%(3.1 / 70.5 = 4.40%)。

差距集中在哪?五项 Δ 里 AIME 两项合计 11.0 点,占 15.4 点的 11.0 / 15.4 = 71.4%。推断(依据:上表 Δ 行 +6.0、+5.0、+1.1、+0.6、+2.7)。

自己切一遍:投票到精炼多出来的那一段

下面只画 GSR-7B 表的 maj@4 与 selfRef@4 两行,蓝柱是投票、红柱是「投票后再综合」。

maj@4 selfRef@4
读数 · 百分点
点任意一根柱看这一格的差。

论文自己披露的例外

“We note that in the MATH500 dataset, selfRef@4 is marginally underperformed by BoN@4 (93.4% vs. 93.5%). We hypothesize that it is due to the specific dynamics of high-accuracy regimes (90.6% on pass@1). In such a scenario, at least a correct answer is highly likely to be present in any set of candidate responses, making selection methods like Best-of-N particularly effective.”§4.2

这一格的 BoN 是 RM-R1-7B。表里同一列,maj@4(92.8)与 maj@5(93.1)都低于 selfRef@4(93.4)——例外只出现在「奖励模型挑」这一路。

另外,论文摘要写「state-of-the-art performance across five mathematical benchmarks」,而 §4.2 正文同时交代了 MATH500 上 selfRef@4 低于 BoN@4;两处并列呈现,不替摘要做补充说明。

消融:精炼上限最高的来自混合训练

Table 2(§4.3):三种 20K 同题数据集;DS = 只训 Ddir,Ref = 只训 Dref,ours = 各 10K
训练数据AIME24AIME25
pass@1selfRef@4pass@1selfRef@4
baseline13.215.67.29.6
+DS38.344.329.633.2
+Ref26.445.023.530.0
+ours37.551.529.036.5

三件事:DS 的 pass@1 最高(38.3 / 29.6),但 selfRef@4 只比 pass@1 高 6.0 / 3.6 点;Ref 的 selfRef@4 在 AIME24 上只比 ours 低 6.5 点(51.5 − 45.0),pass@1 却只有 26.4;ours 两项 selfRef@4 都最高(51.5 / 36.5)。与 §3.3 的论证方向一致。

原文对这张表的结论:「The model trained on a DS dataset achieves the highest pass@1 scores while its’ capacity for self-refinement is severely limited.」「Our method strikes the optimal balance.」(§4.3)

另需注意:Table 2 的 baseline 行写 AIME24 15.6 / AIME25 9.6,而 Table 1 的 base 模型是 AIME24 15.6 / AIME25 11.3。本页照录 Table 2,不做修正。

候选越差,GSR 的优势越明显

§4.4 按「4 个候选里有几个正确(Nc)」分组。原文两端:

“when a clear majority of candidates are correct (Nc ≥ 3), all methods perform exceptionally well, often achieving near perfect accuracy.”
“…our selfRef@4 achieves an impressive 60.2% accuracy, substantially outperforming majority voting (maj@4 at 18.8%) and all BoN@4 variants. Crucially, even when all candidates are incorrect (Nc = 0), our approach can still produce a correct solution 5.9% of the time, whereas all baseline methods fail.” §4.4 · 第二句是 AIME24 的 Nc=1 / Nc=0 段
Table 5(Appendix C):GSR-7B 在各基准按 Nc 分组的答对比例(%)
NcAIME24AIME25AMC22-23MATH500Olympiad
4 / 410010099.999.899.8
3 / 497.495.899.394.394.0
2 / 489.687.18076.481.0
1 / 460.265.653.649.150.7
0 / 45.94.59.03.44.4

AIME24 的 Nc=1 那格:python3 复算 77 / 128 = 60.16%,原表 60.2;Nc=0 那格 16 / 272 = 5.88%,原表 5.9(Table 5 的 Correct / Total 列)。

跨基准:GSR 从「全错候选」中救回的答案为 3.4%(MATH500)到 9.0%(AMC22-23)(§4.4 正文)。

输入扩展(§4.6、Figure 6):k 从 2 扫到 10,k≤4 时已稳定;k=2 时 AIME24 的 selfRef@2 63.2%,略高于 pass@2 的 62.5%;k 更大时 selfRef@k 一直高于 maj@k,随 k 上升。Figure 6 原图未转录;正文只点名了 k=2 这一个数。

扩到更大模型(§4.5、Table 3):用 7B 自己候选造出的同一批混合数据(消融版 10K + 10K)训 14B 与 32B。selfRef@4 都高于各自的 maj@4:14B AIME24 68.1 vs 56.7;32B AIME25 67.3 vs 59.2。原文写「20.1% relative improvement (68.1% vs. 56.7%)」与「13.7% relative improvement (67.3% vs. 59.2%)」;python3 复算 (68.1 − 56.7) / 56.7 = 20.1%、(67.3 − 59.2) / 59.2 = 13.7%,相对提升口径(Table 3、§4.5);对应绝对差为 11.4 点与 8.1 点,本页不把相对提升当绝对点差写。Table 3 其余 14 个单元格本页未转录(只取与这两句原句对应的格)。

07

它要求三个前提:数学任务、可验证奖励、候选别全废

读完这节你应该知道:论文自述的局限、两个需要留意的地方,以及页面上几处数字的口径差异。

前提 1

只在数学上验过

“Due to limited computational resources, our experiments focus on mathematical reasoning domains. … it may not fully represent other reasoning scenarios (e.g., logical deduction, programming, scientific QA, or agentic tool use).”(§7)

前提 2

训练依赖可验证奖励

“Our data construction pipeline relies on strong teacher models and the verifiable reward to filter solutions. This design may be less directly applicable to tasks that lacks reliable verification.”(§7)

前提 3

候选质量定天花板

“the candidate quality sets the performance ceiling for refinement”(§3.2)。候选全错时 AIME24 也只有 5.9%——不比 0 大很多。

Nc=0 那 5.9% 的分母

Table 5 的 AIME24 Nc=0 行:正确 16、错误 256、合计 272。python3 复算 16 / 272 = 5.88%,与 5.9% 对得上;5.9% × 272 = 16.05。推断(依据:Table 5 的 Correct / Total 两列自洽,5.9% 应是对 272 个「Nc=0 组」计的结果,而不是把 32 次试验再合并平均——后者分母不会恰好是 272)。

跨领域验证:K&K(§4.7、Figure 7)

只在数学上训练的 GSR-7B 被放到 K&K 逻辑谜题的 4ppl 子集(改写为多项选择)上:pass@1 从 base 的 12.9% 到 37.3%;base 的 selfRef@4 相对其 maj@4 变化 −7.6%,GSR 的 selfRef@4 相对其 maj@4 变化 +7.2%。原文只说「带箭头的图注标注的是相对变化」;Figure 7 原图未转录,原文没有给出 maj@4 的绝对数值,所以 7.2% 无法在本页换算成绝对点差。

两个需要留意的地方

页面与笔记的出入笔记源文件 /learning-to-refine-self-refinement-of-parallel-reasoning-in-llms/
  1. Figure 1 案例的答案。笔记写四个候选同为 5624、忽略 c=9、GSR 最终答案 5694。v2 的 Figure 1 是摘要式案例(四个候选全错仍能综合出正确答案,原句 “Even provided with four incorrect candidates, it can still reference them, diagnose the flaws, and finally construct a correct answer.”),完整案例在 Appendix F:问题求 AB·AC,候选 384 / 26√39 / 312 / 26 → 468(F.3:“a novel solution path, distinct from all candidate responses”);笔记里的 5624 / c=9 / 5694 在 v2 中不存在。
  2. Brackets:笔记举例数字 60.2 / 18.8 / 5.9 与 v2 §4.4 一致。
  3. 「6.5 / 7.6 与 6.5 / 7.2」:笔记写「提升了 7.2%,而未经训练的基座模型反而下降了 7.6%」,v2 §4.7 正文同(两处均以各自 maj@4 为基线)。
  4. 表 1 数字:笔记的 73.6、70.9、69.6、66.0 与 v2 Table 1 一致;「在 AIME24 上 Nc=0 时 5.9%」与 Table 5 一致。勘误:笔记 “đạt” 为录入错误;笔记把 Larger Models 行的 pass@1 当作对比对象,Table 1 注释这些数字来自 Yang et al. (2025c)。
  5. SSOT(唯一性表述):笔记写「性能远超基线」「雄辩地证明」,原文对应的是 SOP 只有 ±3.1 平均差与 MATH500 一格的例外;本页按事实口径描述。