The Majority is not always right
Paper · arXiv 2025 · 2509.06870v1

The Majority is not always right:把「答案聚合」训练成一种推理技能

测试时扩展的常见做法是采样多个解,再多数投票。但正确答案可能是少数派, 错误轨迹里也可能藏着正确的中间步骤。论文把聚合本身当作一个生成式推理任务, 用可验证奖励的 RL(GRPO)训练 AggLM-1.7B:读问题 + 8 个候选解, 审阅、纠错、综合出一个新答案。

Wenting Zhao, Pranjal Aggarwal, Swarnadeep Saha, Asli Celikyilmaz, Jason Weston, Ilia Kulikov · FAIR at Meta / CMU arXiv 2509.06870v1 ↗ PDF ↗ 博客笔记 ↗
TL;DR · 30 秒抓住核心

多数投票的隐含假设是「出现最多的答案最可能对」。论文指出,正确答案可能因为建模误差被压到低概率;当错误答案的票数更多时,投票会稳定地选错。更浪费的是,投票只看最终答案,丢掉了错误轨迹里正确的中间步骤。

AggLM 把聚合变成一个生成任务:给问题 x 和 m 个候选解,让聚合器输出一个新的解 ỹ;训练信号是 r(ỹ)=1[ỹ=y*],用 GRPO 更新。它要学两件事:候选里已有正确答案时会选,没有完整正确答案时会改和拼。

关键不在「难样本越多越好」:只用 hard(多数答案错误)奖励稀疏,全用 easy 又学不会恢复少数派;全部 hard + 50% easy 的混合在四个数学竞赛集上稳定。聚合器还能迁移到更强的 8B 解和非 thinking 解,但奖励必须可验证。

50.00%
AIME25 · AggLM-1.7B 聚合 8 个 Qwen3-1.7B thinking 解
无聚合 pass@1 35.68 / 多数投票 45.89
+4.11pp
AIME25 上比多数投票高 4.11 个百分点
(50.00 − 45.89)
0.30×
聚合器单次生成 token 约为解模型的 0.30 倍
AIME24:3039.22 / 10225.82
01

多数投票把「频率」当成了「正确率」

先建立两个失败模式:正确答案是少数派,以及正确步骤藏在错误答案里。

测试时扩展的典型流程是:同一个问题独立采样多个解,再用一个聚合规则选出一个最终答案。最常见的是 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)

失败模式 A

少数派正确

8 个候选里,正确答案 C 出现 3 次,错误答案 W 出现 4 次,另一个错误答案 O 出现 1 次。多数投票选 W——C 是少数派,但它是正确答案。

失败模式 B

部分正确被丢掉

候选解可能各自只对了一部分:一个漏了边界条件,另一个算对了前半段。投票不读取推理过程,无法把不同候选的正确片段合成一个完整解。

所以问题不是「怎么数票数得更准」,而是:能不能训练一个模型,读完所有候选解之后,既会选、又会改、还会拼?论文的答案是把聚合本身当作一个需要学习的推理技能。

02

两条已有路线:投票与奖励模型,都卡在「只选不造」

一条是规则投票,一条是训练 scorer 排序;它们都只在已有候选里做选择。

规则投票

Majority / Weighted Majority

多数投票按最终答案的出现频率选;加权多数再用奖励模型分数给候选加权。多数投票不需要额外训练;加权多数复用现成奖励模型分数,但需要奖励模型推理。

卡点:正确答案是少数派时会选错;投票只使用最终答案,无法组合不同候选的正确步骤。

模型选择

Best-of-N / RM re-ranking

训练一个奖励模型给每个候选打分,选分数最高的一个。它把「频率」换成了「学到的质量」。

卡点:它仍然只是选择,天花板是候选集里最好的那个;如果所有候选都错,它无法造出新答案。论文的原话是 “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 节的核心。

03

把聚合写成一个生成式 RL 问题

三个对象:解模型、聚合器、二元验证器;一个奖励:最终答案对不对。

论文把问题形式化得很轻:给定问题 x 和标准答案 y*,解模型 pθ(y|x) 独立采样 m 个候选解;聚合器 pφ(ỹ|x,y1:m) 读入问题和这 m 个解,输出一个新的解 ỹ。θ 和 φ 可以是同一个模型,也可以是两个不同模型。

yi ~ pθ(y | x),   i = 1 … m
ỹ ~ pφ(y | x, y1:m)
r(ỹ) = 1[ ỹ = y* ]
§3 的问题形式与奖励;论文用 GRPO 更新 pφ,奖励是最终答案是否等于标准答案

训练目标是让聚合器学会两种互补行为:

行为 A

Selection · 会选

候选集里已经有正确答案时,识别它并采纳它。论文的原文是 “selection that identifies and adopts the correct candidate when it already appears in the set”。

行为 B

Synthesis · 会改会拼

候选集里没有完整正确答案时,找出错误、补上缺口,或把不同候选的互补片段拼成一个新解。原文是 “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”。

训练数据

hard / easy 不是按题目难度分,而是按「多数答案对不对」分

对每个问题采样 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% 是采用的配置。

聚合指令

Figure 2 的 prompt 要求模型「审阅、纠错、综合」

“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 个候选里,正确答案要出现几次才能赢多数投票?

下面只模拟多数投票的判定: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 的读数与上面三组手算使用同一组计数。

04

446,220 条样本:先构造候选集,再用 GRPO 训聚合器

这一节把训练配方和评测协议拆开,因为后面的 token 账依赖评测协议里的「每组 4 个聚合解」。

数据

DeepScaler + 128 解/题

DeepScaler 约 40k 道有标准答案的数学题。每题从 Qwen3-1.7B thinking 采样 128 个解(温度 1.5),分成 16 组 × 8。

全部 hard + 50% easy → 446,220 条训练样本。

优化

GRPO,1 个 epoch

从 Qwen3-1.7B 初始化 AggLM-1.7B;GRPO group size 8,KL 系数 0.001,采样温度 1.5。

1 个 epoch,batch size 1024;prompt 和 response 上限都是 16384 tokens。

验证

0/1 奖励,没有过程奖励

用 math_verify 判断聚合答案与标准答案是否等价;奖励只有 0 或 1。

论文未报告训练总算力、GPU 小时或墙钟时间,只给了上面的超参数。

评测协议:每个 set 生成 4 个聚合解

对每个问题独立采样 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 估计。

自己动手:Easy% 从 0 扫到 270,看四个数据集的反应

Table 4 固定保留全部 hard,只改变 easy sets 相对 hard examples 的比例。270% 表示保留全部 easy(未过滤)。点击下面的比例,看四个数据集的 pass@1;50% 是主实验采用的配置,但不是每个数据集上的最高点。

Easy% = 50
手算对账:两组 Easy% → AIME24 差值Table 4 点估计,无标准差

组 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 的读数直接取自表中的四个数。

05

一次聚合的完整数据流:采样、聚合、验证、更新

左边是推理/评测链路,右边是训练数据构造;两者在 GRPO 更新处汇合。

推理 / 评测链路 训练数据构造 问题 x 数学竞赛题 解模型 pθ Qwen3-1.7B m = 8 个候选解 y1 … y8 聚合提示(Figure 2) 问题 + 8 个解 AggLM pφ 1.7B 聚合器 最终解 ỹ 综合后的答案 验证器 math_verify 二元奖励 r = 1[ỹ = y*] GRPO 更新 group=8 · KL=0.001 更新 pφ DeepScaler ~40k 数学题 每题采样 128 个解 温度 1.5 · thinking 分成 16 组 × 8 个解 构造候选集合 按多数答案对错 标 hard / easy 全部 hard + 50% easy 446,220 条训练样本
图 1(重绘):左为推理/评测链路,右为训练数据构造。按 §3、§4.1、Figure 2 的流程绘制,不是原图;移动端可在图内横向滚动。
这张图覆盖了什么、没覆盖什么按 §3 / §4.1 / Figure 2 重绘

覆盖:问题 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 里试了「同一个模型同时学解题和聚合」的多任务版本,结果接近分开训练。这意味着聚合能力可以并入后训练流程,而不是必须外挂一个独立模型。

06

效果:聚合方法四列第一,领先幅度随数据集与候选分布变化

四个数据集、三种解分布;先看完整 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),但它和多数投票的差距不是常数。

Table 1:聚合 Qwen3-1.7B thinking 的 8 个解;pass@1 / pass@8(%),每个数据集 30 题。
聚合模型AIME24AIME25HMMT24HMMT25
pass@1(无聚合)50.9135.6822.4522.84
pass@8(oracle)76.4861.3836.6744.27
Majority Voting67.9245.8929.0126.72
Best-of-N · AceMath-7B59.3940.3028.0922.50
Best-of-N · AceMath-72B56.6440.3529.5821.99
Weighted Majority · AceMath-7B64.0939.4925.0417.71
Weighted Majority · AceMath-72B62.3438.4927.6217.96
Prompted Aggregation · Qwen3-1.7B63.5744.8529.5227.91
AggLM-1.7B70.6950.0033.3432.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)。这说明奖励模型的价值取决于候选解的信号质量,而不是无条件更好。

反直觉二:同样的数据,训 solution model 不缩小差距

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。论文的结论是:收益不是「多了数据」,而是「学会了聚合」。

反直觉三:8 个解的 AggLM 能赢 16 个解的多数投票,但只在部分数据集上

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 也能泛化,曲线比多数投票更陡。

反直觉四:多数答案越大,AggLM 的优势越小

Figure 4 按多数答案的出现次数分组:多数答案越小(候选越分散、正确答案越可能在少数派),AggLM 的增益越大;多数答案越大,问题越简单,多数投票通常已经正确,AggLM 与它持平(“on par for easier cases when it is frequent”)。这不是「聚合总是更好」,而是「聚合在投票不可靠时更有价值」。

泛化:8B thinking 与非 thinking 解

Table 2 用 Qwen3-8B thinking 的解,Table 3 用 Qwen3-1.7B non-thinking 的解。下表只转录 pass@1、Majority Voting、AggLM-1.7B 三行;Best-of-N 和 Weighted Majority 行未转录。

Table 2 / Table 3 的关键行(pass@1,%);完整基线行未转录。
设置 / 聚合模型AIME24AIME25HMMT24HMMT25
Table 2 · Qwen3-8B thinking · pass@174.1769.2741.6145.99
Table 2 · Qwen3-8B thinking · Majority Voting81.6178.7044.5856.35
Table 2 · Qwen3-8B thinking · AggLM-1.7B82.3879.7053.0160.66
Table 3 · Qwen3-1.7B non-thinking · pass@111.8210.006.253.39
Table 3 · Qwen3-1.7B non-thinking · Majority Voting18.0715.428.757.29
Table 3 · Qwen3-1.7B non-thinking · AggLM-1.7B29.9619.7717.0312.76

AggLM − 多数投票:领先幅度不是常数

把三张表的对应行相减,得到下面的百分点差。AIME24/AIME25 在 8B 解上只差 0.77/1.00 个点,而在 1.7B thinking 上是 2.77/4.11;HMMT24 在 8B 上反而差 8.43 个点。领先幅度取决于数据集和候选解分布,不是一个固定值。

AggLM-1.7B − Majority Voting(百分点);由 Table 1/2/3 对应行相减。
设置AIME24AIME25HMMT24HMMT25
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 是同一个模型同时学解题和聚合。

Table 6:训练 solution model 与训练 aggregator 的对比(pass@1,%)。
模型AIME24AIME25HMMT24HMMT25
Base Solution Model50.9135.6822.4522.84
Additionally Trained Solution Model49.7937.1927.1923.70
Multitask Solution Model49.1138.8526.6722.50
Base Aggregator Model63.5744.8529.5227.91
Trained Aggregator Model70.6950.0033.3432.07
Multitask Aggregator Model70.0249.3932.9730.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)。

Token 账:单次生成约 0.30×,但一次评测要生成 4 个聚合解

Token 账

「三分之一」是单次生成口径,不是端到端总成本

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”——这是单次生成的口径,不是端到端总成本。

07

边界:可验证答案 + 多个候选,缺一个就没有证据

论文的结果有明确前提;这些前提之外,它没有给出实验证据。

边界一

奖励必须可验证

四个数据集都是数学竞赛,奖励是最终答案的等价判定(math_verify);AIME 明确是单一数值/整数答案,HMMT 覆盖更广的数学主题、常需多步推理。论文没有报告开放式、主观或无法自动验证的任务上的结果;这类任务需要另外定义奖励。

边界二

评测集很小

每个数据集 30 题。论文用 16 组 × 每组 4 个聚合解来降低随机性,但没有报告置信区间或显著性检验;表里的分数应看作点估计。

边界三

聚合器只训练了 1.7B

主实验的聚合器是 1.7B;它成功聚合了 8B 的解,但更大聚合器、更大生成器或跨领域的组合没有报告。论文没有报告 100B 级生成器;不能从 1.7B→8B 直接外推推断。

边界四

多数答案很大时,收益消失

Figure 4 显示,多数答案越大,问题越简单,AggLM 与多数投票持平。如果多数投票已经可靠,额外训练一个聚合器的收益有限推断(依据:Figure 4 的持平区间)。

还有一条工程边界:论文给了超参数,但没有报告训练总算力、GPU 小时或墙钟时间。复现成本需要自己估。

一句话:AggLM 的前提是「有多个候选 + 有可验证的最终答案」。两个前提缺一个,论文就没有给出证据。