Agon: Competitive Cross-Model RL with Implicit Rival Grading of Reasoning
Vladislav Beliaev Independent Researcher belyaev.vladislav.nw@gmail.com thinkdense.ai
引言
当前基于可验证奖励的强化学习(如 GRPO)仅根据最终答案给予奖励,不评估推理过程。在困难问题上,这促使模型生成更长但推理质量未提升的轨迹(过度思考),因为增加文本是提高期望奖励的廉价方式。Agon 提出一种竞争性跨模型 RL 方法,让两个模型互为评分者:轮流起草和挑战对方,通过谁解题更优来竞争,从而在训练中隐式地评估推理质量,无需过程标签或奖励模型。
相关工作
先前工作指出仅奖励最终答案的 RL 导致轨迹长度膨胀(Aggarwal & Welleck, 2025);自博弈方法(如 SPIN、Self-Rewarding LMs)受限于模型自身盲点导致的性能天花板;多模型协作(如 Self-Consistency、Mixture-of-Agents、多智能体辩论)多为聚合共识,在模型强度差异大时可能稀释质量;生成器-验证器对抗训练(如 GANs、Prover-Verifier Games)常用固定角色;Agon 通过轮换角色和竞争性奖励使两个分散策略在 RL 中协同改进。
方法
如何在没有过程标签的情况下为推理轨迹提供隐式质量信号? → 引入竞争性跨模型 RL 框架 Agon:训练两个策略(A 和 B),在一轮中,一个作为起草者生成解法,另一个作为挑战者阅读对方的推理总结后解题,并通过竞争性奖励(正确性加转化奖励)鼓励击败对手;角色每步轮换。两个策略互为评分者,隐式评估推理。
如何从单一基础模型高效产生两个行为不同的策略? → 采用双 LoRA 适配器架构:在一个冻结的基础模型上分别训练两个低秩适配器($\pi_A = \text{base} + \Delta_A$, $\pi_B = \text{base} + \Delta_B$)。通过不同的初始化(A 零初始化,B 小高斯噪声)和交替更新流(起草vs挑战)来维持发散,无需全量双模型。
如何设计竞争性奖励以避免梯度消失并使模型关注困难对手样本? → 使用转化奖励 $c(b_i)(1-c(a_i))$,其中 $c(y) \in \{0,1\}$ 为正确性。该奖励在对手失败时给予挑战者更高权重,且要求组内对手上下文多样化(每个挑战者 rollout 对应不同 draft),以保证组相对优势标准化后仍有梯度信号。共享对手或简单 margin 奖励($c(b_i)-c(a_i)$)会因动作独立常数项在标准化后归零。
结果
DeepMath-hard 留出集 pass@1 (%):Agon 达到 $61\%$ pass@1,显著优于零点 ($23\%$)、普通 GRPO ($30\%$)、协同交换 ($46\%$) 和自精炼 ($32\%$) 等基线。在匹配生成预算下,Agon 比普通 GRPO 提高 $+31$ pp,比未经训练的 MoA 级联($34\%$)提高 $+27$ pp。
| 对比方法 | 数值 | 引用 |
|---|---|---|
| Zero-shot | 23 | |
| Vanilla GRPO (baseline) | 30 | |
| Self-refinement (control) | 32 | |
| GRPO two-pass self-cascade (control) | 35 | |
| MoA [Wang et al., 2024] (no train) | 34 | |
| Competitive, shared opponent (single-pass) | 32 | |
| Cooperative exchange | 46 | |
| Agon (competition + exchange) | 61 |
GSM8K pass@1 (%):Agon 在 GSM8K 上达到 $75\%$,优于零点 ($62\%$) 和普通 GRPO ($68\%$)。
| 对比方法 | 数值 | 引用 |
|---|---|---|
| Zero-shot | 62 | |
| Vanilla GRPO | 68 | |
| Agon | 75 |
MATH-500 pass@1 (%):Agon 在 MATH-500 上达到 $64\%$,优于零点 ($45\%$) 和普通 GRPO ($52\%$)。
| 对比方法 | 数值 | 引用 |
|---|---|---|
| Zero-shot | 45 | |
| Vanilla GRPO | 52 | |
| Agon | 64 |
CodeContests (EASY) pass@1 (%):在 CodeContests EASY 难度上,Agon 达到 $34\%$ pass@1,高于普通 GRPO ($24\%$) 和协同交换 ($29\%$),表明方法可迁移至编程领域。
| 对比方法 | 数值 | 引用 |
|---|---|---|
| Zero-shot | 18 | |
| Vanilla GRPO | 24 | |
| Cooperative exchange | 29 | |
| Agon | 34 |
平均最终阶段轨迹长度 (tokens):Agon 的挑战者阶段平均长度为 $3.5$k tokens,远短于普通 GRPO 的 $8.1$k、协同交换的 $5.1$k 和未训练 MoA 的 $6.9$k,显示出推理密度的提升。
| 对比方法 | 数值 | 引用 |
|---|---|---|
| Zero-shot | 6.1k | |
| Vanilla GRPO (baseline) | 8.1k | |
| Self-refinement (control) | 7.9k | |
| GRPO two-pass self-cascade | 8.0k | |
| MoA [Wang et al., 2024] (no train) | 6.9k | |
| Competitive, shared opponent | 7.4k | |
| Cooperative exchange | 5.1k | |
| Agon | 3.5k |
实现
Agon 在冻结的基础模型上训练两个低秩适配器(A 和 B)。训练每步执行起草-挑战流程:起草者从纯问题提示生成 $N$ 个 rollout 并获得普通 GRPO 更新;挑战者阅读每个对手的推理总结(不含最终答案)后生成 $N$ 个对应 rollout,并通过竞争性奖励更新。角色每优化步轮换,因此两个适配器交替学习独立解题和基于对手解题。推理时使用相同的两级级联:一个适配器起草,另一个阅读起草总结后给出最终答案。
双 LoRA 策略对 (Dual-LoRA Policy Pair) — 提供两个行为有别的策略,用于起草和挑战。
设计:基于同一冻结基础模型,分别加入秩为 $16$ 的 LoRA 适配器 $\Delta_A$ 和 $\Delta_B$。A 采用标准零初始化,B 初始化为小高斯噪声;两者更新流不同以维持发散。
原理:参数效率高(额外开销约 $2\%$),通过初始化和梯度差异实现策略分歧。
起草-挑战训练步 (Draft-and-Challenge Step) — 实现双边信息交换和不对称训练。
设计:每步指定一个起草者和一个挑战者。起草者从题面生成 $N$ 个解 $\{a_i\}$,用普通 GRPO 更新;挑战者接收每个对手的推理总结(丢去原始思考链,隐藏最终答案),生成 $N$ 个配对回答 $\{b_i\}$,并计算竞争性奖励。两种更新的优势在各自组内计算。角色每步互换。
原理:起草者保持独立解题能力,挑战者学习利用对手信息并适应困难上下文;轮换使两个模型均获得两种梯度。
竞争性奖励 (Competitive Reward) — 为挑战者提供激励,使其击败对手。
设计:奖励形式为 $R(b_i) = 2c(b_i) + c(b_i)(1-c(a_i))$(加上格式项),其中 $c(y)$ 是正确性。在对手失败时正确解题获得更高奖励(3 vs 2)。要求组内对手上下文不同以保证梯度方向。
原理:转化奖励 $c(b_i)(1-c(a_i))$ 将正确性权重与对手难度耦合,既奖励正确性又鼓励在对手失败处解题。与简单 margin 或共享对手相比,它在组相对标准化后仍能提供梯度。