测试时扩展的常见做法是采样多个解,再多数投票。但正确答案可能是少数派, 错误轨迹里也可能藏着正确的中间步骤。论文把聚合本身当作一个生成式推理任务, 用可验证奖励的 RL(GRPO)训练 AggLM-1.7B:读问题 + 8 个候选解, 审阅、纠错、综合出一个新答案。
多数投票的隐含假设是「出现最多的答案最可能对」。论文指出,正确答案可能因为建模误差被压到低概率;当错误答案的票数更多时,投票会稳定地选错。更浪费的是,投票只看最终答案,丢掉了错误轨迹里正确的中间步骤。
AggLM 把聚合变成一个生成任务:给问题 x 和 m 个候选解,让聚合器输出一个新的解 ỹ;训练信号是 r(ỹ)=1[ỹ=y*],用 GRPO 更新。它要学两件事:候选里已有正确答案时会选,没有完整正确答案时会改和拼。
关键不在「难样本越多越好」:只用 hard(多数答案错误)奖励稀疏,全用 easy 又学不会恢复少数派;全部 hard + 50% easy 的混合在四个数学竞赛集上稳定。聚合器还能迁移到更强的 8B 解和非 thinking 解,但奖励必须可验证。
先建立两个失败模式:正确答案是少数派,以及正确步骤藏在错误答案里。
测试时扩展的典型流程是:同一个问题独立采样多个解,再用一个聚合规则选出一个最终答案。最常见的是 majority voting(自洽性):哪个最终答案出现次数最多,就选哪个。它便宜、并行、不需要训练,但它的成功依赖一个很强的假设——最频繁的答案就是最可能正确的答案。
论文指出这个假设会在两类情况下失效。第一,正确答案可能因为建模误差被分配到低概率,成为少数派;第二,一个最终答案错误的轨迹,可能在中间步骤里包含正确的推理,投票只看最终答案,无法把这些片段拼起来。
“However, majority-based aggregation can overlook valuable minority solutions: correct answers are sometimes assigned low probability under the model due to modeling errors.”(§1)
8 个候选里,正确答案 C 出现 3 次,错误答案 W 出现 4 次,另一个错误答案 O 出现 1 次。多数投票选 W——C 是少数派,但它是正确答案。
候选解可能各自只对了一部分:一个漏了边界条件,另一个算对了前半段。投票不读取推理过程,无法把不同候选的正确片段合成一个完整解。
所以问题不是「怎么数票数得更准」,而是:能不能训练一个模型,读完所有候选解之后,既会选、又会改、还会拼?论文的答案是把聚合本身当作一个需要学习的推理技能。
一条是规则投票,一条是训练 scorer 排序;它们都只在已有候选里做选择。
多数投票按最终答案的出现频率选;加权多数再用奖励模型分数给候选加权。多数投票不需要额外训练;加权多数复用现成奖励模型分数,但需要奖励模型推理。
卡点:正确答案是少数派时会选错;投票只使用最终答案,无法组合不同候选的正确步骤。
训练一个奖励模型给每个候选打分,选分数最高的一个。它把「频率」换成了「学到的质量」。
卡点:它仍然只是选择,天花板是候选集里最好的那个;如果所有候选都错,它无法造出新答案。论文的原话是 “it sometimes introduces more regression errors than improvements”(§2)。
把问题 + 候选解直接放进 prompt,让通用 LLM 综合,不需要训练。Table 1 里,未训练的 Qwen3-1.7B 提示聚合在四个数据集上是 63.57 / 44.85 / 29.52 / 27.91;RL 训练的 AggLM-1.7B 是 70.69 / 50.00 / 33.34 / 32.07。差距说明:聚合这种能力,光靠 prompt 不够,需要针对性的训练信号。
论文把这条路线再往前推了一步:不是让模型从候选里挑一个,而是让它生成一个新的、可能不在候选里出现过的解。这就是 03 节的核心。
三个对象:解模型、聚合器、二元验证器;一个奖励:最终答案对不对。
论文把问题形式化得很轻:给定问题 x 和标准答案 y*,解模型 pθ(y|x) 独立采样 m 个候选解;聚合器 pφ(ỹ|x,y1:m) 读入问题和这 m 个解,输出一个新的解 ỹ。θ 和 φ 可以是同一个模型,也可以是两个不同模型。
训练目标是让聚合器学会两种互补行为:
候选集里已经有正确答案时,识别它并采纳它。论文的原文是 “selection that identifies and adopts the correct candidate when it already appears in the set”。
候选集里没有完整正确答案时,找出错误、补上缺口,或把不同候选的互补片段拼成一个新解。原文是 “synthesis that detects mistakes, fills gaps, or combines complementary partial ideas across candidates to produce a new, correct solution that did not appear verbatim in the set”。
对每个问题采样 s×m 个解,分成 s 组、每组 m 个。若一组里出现次数最多的答案错误,这组就是 hard;否则是 easy。最终训练集取全部 hard + p% 的 easy,主实验 p=50%。
原因很直接:只用 hard,奖励太稀疏;全用 easy,模型学不会恢复少数派正确答案。论文在 Table 4 里扫了 Easy% = 0 / 5 / 10 / 20 / 50 / 270,5–50% 区间稳定,50% 是采用的配置。
“Carefully review the provided solutions, using them as starting points—correcting mistakes, filling in gaps, and/or combining useful ideas—to produce a final, comprehensive, and correct solution to the problem.”(Figure 2)
论文没有展开 GRPO 的完整 loss 公式,只说明用标准 GRPO 更新和二元奖励;本页不补写未给出的公式。
下面只模拟多数投票的判定:8 个槽位分成正确答案 C、错误答案 W、其他错误答案 O。拖动票数,看多数投票会选谁。它不复现 AggLM——AggLM 的输出是训练后的策略,不能从票数直接推出来。
组 1:c=3, w=4, o=1。多数答案 W(4 次),MV 选 W,判错;C 占比 3/8 × 100 = 37.5%。
组 2:c=5, w=3, o=0。多数答案 C(5 次),MV 选 C,判对;C 占比 5/8 × 100 = 62.5%。
组 3:c=0, w=8, o=0。多数答案 W(8 次),MV 选 W,判错;C 占比 0/8 × 100 = 0%。
本模拟是确定性计数:8 个槽位,c + w + o = 8,不涉及随机采样或标准差。JS 的读数与上面三组手算使用同一组计数。
这一节把训练配方和评测协议拆开,因为后面的 token 账依赖评测协议里的「每组 4 个聚合解」。
DeepScaler 约 40k 道有标准答案的数学题。每题从 Qwen3-1.7B thinking 采样 128 个解(温度 1.5),分成 16 组 × 8。
全部 hard + 50% easy → 446,220 条训练样本。
从 Qwen3-1.7B 初始化 AggLM-1.7B;GRPO group size 8,KL 系数 0.001,采样温度 1.5。
1 个 epoch,batch size 1024;prompt 和 response 上限都是 16384 tokens。
用 math_verify 判断聚合答案与标准答案是否等价;奖励只有 0 或 1。
论文未报告训练总算力、GPU 小时或墙钟时间,只给了上面的超参数。
对每个问题独立采样 128 个解(温度 1),分成 s=16 组、每组 m=8 个。对每一组,聚合器生成 4 个聚合解;这一组的 pass@1 是这 4 个解的成功率,再把 16 组平均,得到该问题的分数;数据集分数是 30 个问题的平均。这个「4 个聚合解」的细节会直接影响 token 成本,06 节会单独算。
基线包括 majority voting、Best-of-N(AceMath-7B/72B)、weighted majority、未训练的提示聚合;pass@1 由 64 个独立样本估计,pass@8 由 128 个解里的 64 组 × 8 估计。
Table 4 固定保留全部 hard,只改变 easy sets 相对 hard examples 的比例。270% 表示保留全部 easy(未过滤)。点击下面的比例,看四个数据集的 pass@1;50% 是主实验采用的配置,但不是每个数据集上的最高点。
组 1:Easy%=0 → AIME24 64.22;Easy%=50 → 70.69;差 70.69 − 64.22 = 6.47 个百分点(50% 更高)。
组 2:Easy%=270 → AIME24 66.20;Easy%=50 → 70.69;50% 比 270% 高 70.69 − 66.20 = 4.49 个百分点。
Table 4 是点估计,没有标准差;页面不做随机模拟。JS 的读数直接取自表中的四个数。
左边是推理/评测链路,右边是训练数据构造;两者在 GRPO 更新处汇合。
覆盖:问题 x → 解模型采样 m=8 个解 → 聚合提示 → AggLM 输出 ỹ → 用 y* 验证 → 二元奖励 → GRPO 更新;训练数据从 DeepScaler 每题 128 个解、16 组 × 8、hard/easy 标记、全部 hard + 50% easy、446,220 条。
未覆盖:GRPO 的 loss 内部实现、prompt 的特殊 token/格式、math_verify 的等价判定细节;箭头是流程示意,不代表实际并行调度。
因此这是简化重绘,不是对原图的逐元素还原。
论文的主实验把解模型固定、只训练聚合器;它也在 Table 6 里试了「同一个模型同时学解题和聚合」的多任务版本,结果接近分开训练。这意味着聚合能力可以并入后训练流程,而不是必须外挂一个独立模型。
四个数据集、三种解分布;先看完整 Table 1,再看泛化、消融和 token 账。
Table 1 是主结果:候选解来自 Qwen3-1.7B thinking,和训练数据同分布;每个数据集 30 题,聚合行数值为 pass@1;pass@8 为 oracle 基线。AggLM-1.7B 在四列的 pass@1 聚合结果中排第一(pass@8 oracle 上限更高:76.48/61.38/36.67/44.27 vs 70.69/50.00/33.34/32.07),但它和多数投票的差距不是常数。
| 聚合模型 | AIME24 | AIME25 | HMMT24 | HMMT25 |
|---|---|---|---|---|
| pass@1(无聚合) | 50.91 | 35.68 | 22.45 | 22.84 |
| pass@8(oracle) | 76.48 | 61.38 | 36.67 | 44.27 |
| Majority Voting | 67.92 | 45.89 | 29.01 | 26.72 |
| Best-of-N · AceMath-7B | 59.39 | 40.30 | 28.09 | 22.50 |
| Best-of-N · AceMath-72B | 56.64 | 40.35 | 29.58 | 21.99 |
| Weighted Majority · AceMath-7B | 64.09 | 39.49 | 25.04 | 17.71 |
| Weighted Majority · AceMath-72B | 62.34 | 38.49 | 27.62 | 17.96 |
| Prompted Aggregation · Qwen3-1.7B | 63.57 | 44.85 | 29.52 | 27.91 |
| AggLM-1.7B | 70.69 | 50.00 | 33.34 | 32.07 |
Table 1 里,AceMath-72B 的 Best-of-N 在 AIME24 是 56.64,多数投票是 67.92;AIME25 是 40.35 对 45.89;HMMT25 是 21.99 对 26.72。论文的原话是 “best-of-N and weighted majority with AceMath-7B/72B is often inferior to the standard majority voting”(§5)。
但在非 thinking 的弱模型上,奖励模型又能超过多数投票:Table 3 的 AIME24,AceMath-72B Best-of-N 是 26.33,多数投票是 18.07。论文的解释是 “learned scorers help more when base-model outputs are weak or noisy”(§5)。这说明奖励模型的价值取决于候选解的信号质量,而不是无条件更好。
Table 6 把 DeepScaler 的同一批数据分别用于训练 solution model 和 aggregator。Additionally Trained Solution Model 在四个数据集上是 49.79 / 37.19 / 27.19 / 23.70,和 Base Solution Model 的 50.91 / 35.68 / 22.45 / 22.84 相比,有升有降;Trained Aggregator Model 是 70.69 / 50.00 / 33.34 / 32.07。论文的结论是:收益不是「多了数据」,而是「学会了聚合」。
Figure 3 的原句是 “on AIME25, HMMT24, and HMMT25, aggregating just eight solutions with AggLM-1.7B is better than majority voting with sixteen”(§6)。注意它没有把 AIME24 列进来;这句结论不能被推广成「所有数据集上 8 胜 16」。论文同时说,AggLM 在 k=8 训练,但对更小和更大的 k 也能泛化,曲线比多数投票更陡。
Figure 4 按多数答案的出现次数分组:多数答案越小(候选越分散、正确答案越可能在少数派),AggLM 的增益越大;多数答案越大,问题越简单,多数投票通常已经正确,AggLM 与它持平(“on par for easier cases when it is frequent”)。这不是「聚合总是更好」,而是「聚合在投票不可靠时更有价值」。
Table 2 用 Qwen3-8B thinking 的解,Table 3 用 Qwen3-1.7B non-thinking 的解。下表只转录 pass@1、Majority Voting、AggLM-1.7B 三行;Best-of-N 和 Weighted Majority 行未转录。
| 设置 / 聚合模型 | AIME24 | AIME25 | HMMT24 | HMMT25 |
|---|---|---|---|---|
| Table 2 · Qwen3-8B thinking · pass@1 | 74.17 | 69.27 | 41.61 | 45.99 |
| Table 2 · Qwen3-8B thinking · Majority Voting | 81.61 | 78.70 | 44.58 | 56.35 |
| Table 2 · Qwen3-8B thinking · AggLM-1.7B | 82.38 | 79.70 | 53.01 | 60.66 |
| Table 3 · Qwen3-1.7B non-thinking · pass@1 | 11.82 | 10.00 | 6.25 | 3.39 |
| Table 3 · Qwen3-1.7B non-thinking · Majority Voting | 18.07 | 15.42 | 8.75 | 7.29 |
| Table 3 · Qwen3-1.7B non-thinking · AggLM-1.7B | 29.96 | 19.77 | 17.03 | 12.76 |
把三张表的对应行相减,得到下面的百分点差。AIME24/AIME25 在 8B 解上只差 0.77/1.00 个点,而在 1.7B thinking 上是 2.77/4.11;HMMT24 在 8B 上反而差 8.43 个点。领先幅度取决于数据集和候选解分布,不是一个固定值。
| 设置 | AIME24 | AIME25 | HMMT24 | HMMT25 |
|---|---|---|---|---|
| Table 1 · 1.7B thinking | +2.77 | +4.11 | +4.33 | +5.35 |
| Table 2 · 8B thinking | +0.77 | +1.00 | +8.43 | +4.31 |
| Table 3 · 1.7B non-thinking | +11.89 | +4.35 | +8.28 | +5.47 |
Table 6 的训练数据相同,只改变训练对象。Base Aggregator 的数值与 Table 1 的 Prompted Aggregation · Qwen3-1.7B 相同,本页据此把它标为未训练的提示聚合推断;Trained Aggregator 是 AggLM-1.7B;Multitask Aggregator 是同一个模型同时学解题和聚合。
| 模型 | AIME24 | AIME25 | HMMT24 | HMMT25 |
|---|---|---|---|---|
| Base Solution Model | 50.91 | 35.68 | 22.45 | 22.84 |
| Additionally Trained Solution Model | 49.79 | 37.19 | 27.19 | 23.70 |
| Multitask Solution Model | 49.11 | 38.85 | 26.67 | 22.50 |
| Base Aggregator Model | 63.57 | 44.85 | 29.52 | 27.91 |
| Trained Aggregator Model | 70.69 | 50.00 | 33.34 | 32.07 |
| Multitask Aggregator Model | 70.02 | 49.39 | 32.97 | 30.28 |
Multitask Aggregator 在四个数据集上是 70.02 / 49.39 / 32.97 / 30.28,接近分开训练的 70.69 / 50.00 / 33.34 / 32.07,说明聚合能力可以并入同一个模型;但它仍然明显高于未训练的 Base Aggregator(63.57 / 44.85 / 29.52 / 27.91)。
AIME25 的 Table 7:解模型单次生成 10612.46 tokens,训练后的聚合器 3157.11 tokens;比值 3157.11 / 10612.46 = 0.30。
按 §4.2 的协议,每个 set 的 8 个候选解之外,聚合器还要生成 4 个聚合解。以 AIME25 的单次 token 为口径:8 × 10612.46 + 4 × 3157.11 = 97528.12;多数投票 16 个解为 16 × 10612.46 = 169799.36。前者约为后者的 57.4%。推断(由 §4.2 的 4 个聚合解与 Table 7 的 AIME25 单次 token 计算;不是论文直接报告的总成本)。
论文的原文表述是 “the aggregator model uses roughly one-third as many tokens as the solution models”——这是单次生成的口径,不是端到端总成本。
论文的结果有明确前提;这些前提之外,它没有给出实验证据。
四个数据集都是数学竞赛,奖励是最终答案的等价判定(math_verify);AIME 明确是单一数值/整数答案,HMMT 覆盖更广的数学主题、常需多步推理。论文没有报告开放式、主观或无法自动验证的任务上的结果;这类任务需要另外定义奖励。
每个数据集 30 题。论文用 16 组 × 每组 4 个聚合解来降低随机性,但没有报告置信区间或显著性检验;表里的分数应看作点估计。
主实验的聚合器是 1.7B;它成功聚合了 8B 的解,但更大聚合器、更大生成器或跨领域的组合没有报告。论文没有报告 100B 级生成器;不能从 1.7B→8B 直接外推推断。
Figure 4 显示,多数答案越大,问题越简单,AggLM 与多数投票持平。如果多数投票已经可靠,额外训练一个聚合器的收益有限推断(依据:Figure 4 的持平区间)。
还有一条工程边界:论文给了超参数,但没有报告训练总算力、GPU 小时或墙钟时间。复现成本需要自己估。
一句话:AggLM 的前提是「有多个候选 + 有可验证的最终答案」。两个前提缺一个,论文就没有给出证据。