让模型自己当自己的对手:Agon 用对手互相评分把 GRPO 翻倍

你有没有这种感觉:把模型丢到 hard 难度的数学题上做 GRPO,跑了半天,pass@1 涨了 7 个点,trace 长度却从 6.1k 涨到 8.1k。换句话说,token 多了 33%,准确率只多 7 个点,性价比一塌糊涂。

更扎心的是那道隐含的算术题:模型靠"多想几次就能撞对答案"拿到的梯度,比"真的想得更对"更便宜。所以训练完的模型会大量堆 "hmm, let me reconsider" 这种 hedging,质量不升,长度起飞。

Vladislav Beliaev 这篇 Agon 给出的解法相当野:让两个模型互相当评委。一个起草,一个读了对方的总结再解,谁解得对就奖谁——但如果你解对了而对手解错了,加分更多。结果在 DeepMath-hard 上,Qwen3-0.6B 的 pass@1 从 GRPO 的 30 直接干到 61,翻倍。同期未经训练的 MoA(Mixture-of-Agents)只多 4 个点。也就是说,训练带来的增益是直接堆模型 8 倍

听上去是不是有点耳熟?GAN、prover-verifier、debate……这条线已经走了 10 年了。Agon 的区别在于:它让"竞争压力"长在 GRPO 内部、靠两个 LoRA adapter 互为对手,不引入任何 process label、不训练任何 reward model,纯靠"对手读了我的草稿,我还要解得比他好"来隐式给推理质量打信号。

这篇论文 15 页、7 个图、8 张表,我读完之后第一反应是:这个作者真敢想,而且把 ablation 做得相当诚实。下面展开聊。


核心摘要

痛点:GRPO 只给最终答案打分,推理过程(trace)完全裸露。在 hard 题目上,模型被训练成"写更多而不是想更好",长度通胀(overthinking)成了无人买单的公共地悲剧。直接给 trace 打分又做不到——没有"好推理"的 ground truth,过程奖励模型(PRM)又贵又脆。

核心方案:Agon 训练两个 LoRA adapter 共享一个冻结基座,对手轮换。在一个 step 里 A 起草、B 读 A 的解法摘要再独立解,B 的奖励 = 正确性 + conversion bonus("我对了而对手错了"加分)。下一 step 角色互换,迫使两个 adapter 都练"独立解 + 读懂对手"两套肌肉。trace 的"推理质量"被对手隐式评分,无 process label、无 reward model

关键效果:Qwen3-0.6B 在 DeepMath-hard held-out 上 pass@1 从 30 → 61,比 GRPO 翻倍,比同样基座不经训练的 MoA 8 倍。Qwen3-1.7B/4B、Qwen3.5-2B、Gemma 4-E4B 上同序。CodeContests(编程)也复现。最后阶段 trace 长度从 8.1k → 3.5k,短了 57%

我的判断:底层方法(cross-model competitive RL)不是新东西,但落地在 GRPO + 共享基座 + LoRA 这个工业级 pipeline 上、加之对"为什么是 conversion bonus 而不是 margin"做了一段相当硬核的梯度分析,是一篇工程和理论双干净的 micro-recipe。它的真正贡献不是新方法,是把"用对手隐式评 trace 质量"这件事做成一个能在 TRL/vLLM 上跑起来的轻量 recipe。但要注意:单次训练、300 题 held-out、binomial noise ±5.5pp、run-to-run 方差未量化——别把 +31 当成稳定的工程指标


论文信息

  • 标题:Agon: Competitive Cross-Model RL with Implicit Rival Grading of Reasoning
  • 作者:Vladislav Beliaev(独立研究者,thinkdense.ai)
  • 提交日期:2026 年 7 月 8 日
  • arXiv ID2607.07690
  • 篇幅:15 页、7 图、8 表
  • 代码/附录:作者页面 thinkdense.ai

1. 问题:为什么 GRPO 训练越长越亏

先说清楚痛点的形状。GRPO 这套范式(DeepSeekMathR1 那一脉)对一个 prompt 采 G 个 rollout,按答案对错打分:

\[A_i = \frac{r(x, y_i) - \mu}{\sigma}, \quad \mu = \frac{1}{G}\sum_j r(x,y_j), \quad \sigma = \mathrm{std}_j\, r(x,y_j)\]

只有 σ > 0 的 group 才有信号,全对全错的扔掉。问题出在 reward 上:\(r(x,y) \in \{0,1\}\) 看的只是 <answer> 里的最终答案。trace 的 token 完全裸奔

后果是清楚的——在 hard 题目上 per-problem 命中率本来就低,模型想要涨 reward,最便宜的姿势就是 在 trace 里多放几次 restart

一次 "let me reconsider" = 多一次"在长河里捞到正确 answer"的机会。

这是 Aggarwal & Welleck (2025) L1Chen et al. 2024 overthinking 反复观察到的现象。论文里给的数字更直接:GRPO 训练完,Qwen3-0.6B 的平均 trace 从 6.1k → 8.1k token(涨 33%),pass@1 从 23 → 30(涨 7 个点)。token 价格是准确率的 5 倍

直观一点说:模型学到了"多想想 ≠ 想得更准",它只是多写了 33% 的废话,准确率蹭了 7 个点。

那能不能直接给 trace 打分?很难。两道坎:

  1. 没有"好推理"的标签——哪一步是 insight、哪一步是 filler,没有 ground truth。
  2. PRM 又贵又脆——Let's Verify Step by Step 那种过程奖励模型要大量 step-level label,而且 PRM 自己又是不可验证的黑盒。

所以 trace 一直无人评分。Agon 的赌注是:让一个对手模型隐式地做这件事


2. 方法:让两个 adapter 互为对手

Agon 整个训练 setup 用一句话说就是:

两个低秩 adapter(\(\pi_A, \pi_B\))共享一个冻结基座,每步角色轮换:一方"起草",另一方"读对方摘要后挑战"。正确性 + "我对了对手错了"加分就是奖励。

下面这张图是论文 Figure 2 的一张完整 step 流程图,我把它转成在线版放在下面:

图1:Agon 一个 step 的完整流程。Drafter A 从普通 prompt 采 N 个 rollout 走标准 GRPO;Challenger B 读 A 的 post-reasoning summary(不带最终答案)后采 N 个 paired rollout,拿正确性 + conversion 奖励。Roles 隔 step 互换。

图 1:Agon 单 step 流程。Drafter A 从裸 prompt 采 N 个解、按普通 GRPO 更新(自己的 standalone stream);Challenger B 读 A 的"推理后 summary"(不带 <answer> 块),按 (问题, A 的 summary) 采 N 个 paired rollout,按正确性 + conversion bonus 拿奖励,自身打 GRPO 更新。下个 step 角色对调。两套 adapter 共用同一个冻结基座。

2.1 为什么是"另一个模型"——闭环破缺的直觉

读到这里我必须说,这一段写得很扎实,作者把"为什么需要第二个人"讲清楚了,不是只甩结果。

核心论点:单模型 RL 是个闭环。你在自己 rollouts 上更新梯度,强化的是"你已经做的事",包括那些定义你盲点的系统性错误。你拿自己当评委,就拿自己的 bias 判自己,结构上 Huang et al. 2024 Large Language Models Cannot Self-Correct Reasoning Yet 那种自我纠正失败的结论就会复现。

图2:self-play 的闭环 vs Agon 的开环。

图 2:Self-play 闭环(左,红色)vs Agon 开环(右,蓝色+金色)。闭环里 A 拿自己生成的 rollouts 训自己,bias 不断自洽。开环里 A/B 互为对手,每个人都被另一个人的盲点评判,且双方都在变好——grader 也在变好。

但"有两个模型"还不够。两件事必须同时成立才有用:

条件 为什么需要 Agon 怎么满足
强度相当 强度差太大,弱的那方会塌缩成对强者的模仿,game 退化为蒸馏 作者强调需要"matched strength",但实验上不专门调这个,因为适配器从同一基座出发
错误模式不同 两个一样的模型问题相同,弱点的相关性高,cross-grading 没新增信息 不同的初始化(B 在零矩阵附近加小高斯噪声,A 是 LoRA 标准的零初始化)+ 角色轮换导致的 update stream 分歧 来结构化制造 divergence

图3:设计发散的目标态。

图 3:两个"复制体"(左,同基座 + 温度)问题高度重合、错题高度重合 → 互相 cover 不到;一个"行为发散对"(右)有互补的错误轮廓 → cross-grading 才有钱赚。Agon 起步在左(同一基座、adapter 差异只是 noise 级),靠 divergent initialization + rotated update stream 训练中往右跑。作者老实承认没量化"跑没跑到",这是 honest hedge。

2.2 共享基座 + 双 LoRA:工程便宜才是真优势

这是我觉得这篇最精巧的工程点。

两套策略不需要两套完整模型。Agon 用一个冻结基座 + 两个 rank-16 的 LoRA adapter

\[\pi_A = \mathrm{base} + \Delta_A, \quad \pi_B = \mathrm{base} + \Delta_B\]

内存开销 ~2% 那个 2× 复制的成本,而不是 2×。这意味着多一个 RL peer 几乎是免费的。这个设计在工业上是关键的:如果你说"想要 Grading 升级版要付出一倍推理成本",大家会想一下;"付 ~2% 训练内存 + 一份推理",pipeline 上能直接落地。

更妙的是,共享基座让 A/B 永远在同一表征空间里。这给下一步(在 latent space 直接交换信号)留了路——本文结论里直接点出了:"next step is to let them reason together in latent space",引用了作者自己另一篇工作 Esperantix 里的 latent-space communication 思路。

2.3 Draft-and-challenge step:信息流长这样

单 step 的算法流程(原文 Algorithm 1)是这样的,对照上面的流程图:

input: 一批问题 {x},adapter A/B,group 大小 N,step index t,mode ∈ {coop, adv}
(draft, chal) = (A, B) if t 偶 else (B, A)   # 角色轮换

for each x:
  {a_i} ~ π_draft(·|x)                          # drafter 走普通 prompt
  R(a_i) = 2·c(a_i) + λ·φ(a_i)                 # drafter 走纯 GRPO(无对手项)
  {b_i} ~ π_chal(·|x, a_i 的 summary, 不带 final answer)
  R(b_i) = 2·c(b_i) + c(b_i)·(1-c(a_i)) + λ·φ(b_i)   # 正确性 + conversion bonus
  # group-relative advantages 在各自 group 内算
update π_draft (standalone stream) 和 π_chal (competitive stream)

几个关键设计选择我特别想拎出来说:

(1) 喂的是 summary 不是 raw trace。raw thinking 太长(动辄几 k token),里面 80% 是 "hmm let me try another approach" 这种探索噪声。模型在 <summary> 块里写的是推导结果的精炼版,便宜、且能 review

(2) Final answer 被显式 withhold。即使 B 看到了 A 的 summary,<answer> 块还是被抠掉了——作者说这是"precaution against copying"。其实 summary 经常就蕴含了答案,但这是结构上的护栏。

(3) 角色必须轮换。Ablation 表里很残酷:固定角色(永远 A draft / B challenge)只能拿到 52,轮换才能到 61。原因是固定的 B 永远只拿"读对手 stream"的梯度,永远练不到独立解题,pipeline 残缺。

(4) Challenger prompt 写明"don't trust, don't paraphrase, verify and re-derive"。这是个细节,但很关键——它防止 challenger 退化成 "对 A 的解做点 paraphrase" 的廉价模仿者。

2.4 奖励:为什么是 conversion bonus 而不是 margin

这一段是我觉得全文最值钱的理论部分。直接说结论:naive 的 margin \(R(b_i) = c(b_i) - c(a_i)\) 几乎不 work,要用 conversion bonus \(R(b_i) = 2c(b_i) + c(b_i)(1-c(a_i))\)

直觉:margin 里 \(c(a_i)\) 是 action-independent 的——它由配对的 \(a_i\) 决定,跟 challenger 怎么 rollout \(b_i\) 无关。在 group-relative 标准化下,\(c(a_i)\) 对一个 group 里的所有 challenger rollout 来说是常数偏移,它对 policy gradient 的期望贡献是零。换句话说,你用 margin 写出来的目标函数,等价于"换个常量 baseline 的 cooperative 目标"。

作者甚至用 ablation 把这件事的代数结构摆了出来。Tested margin 形式是 \(R = 3c(b_i) - c(a_i)\),里面那个 3 在 group-standard-deviation 标准化下基本被消掉,剩下 \(-c(a_i)\) 又不贡献梯度。ablation 给出 49 vs coop 46——果然 margin 几乎没涨(3pp 在 300 题 ±5.5pp binomial 噪声里不算显著,作者也明说了)。

conversion bonus 的精妙在于 \(c(b_i)(1-c(a_i))\):这个乘积依赖 action(它依赖 \(b_i\) 是否正确),所以它贡献梯度。在 within-group 里每个 \(b_i\) 看到的是不同的对手 draft(\(a_i\)),所以组内"对手难度"有方差,这个方差就是 conversion bonus 发挥作用的带宽。

奖励的实数表是 \(R \in \{0, 2, 3\}\):0(双方都错)、2(我对你也对)、3(我对你错,加分)。格式项 \(\phi\)\(\lambda=0.5\)

2.5 一个可选的密度杠杆

主 reward 不含任何长度项。但作者还额外做了一个"密度杠杆"实验(不在 headline 里):加一个 length tiebreak

\[R(b_i) \mathrel{+{=}} \gamma \cdot c(b_i) \cdot c(a_i) \cdot \mathbf{1}[|b_i| < |a_i|]\]

只在双方都对的时候,按"你比对手短"加 \(\gamma=0.5\)。结果:trace 从 3.5k → 2.6k,准确率 61 → 60(基本不变)。这是"emergent 短化"被显式 control 的版本。

我的判断:这是个 nice 副产物,证明 trace 短化不是长度 penalty 强行压出来的——它是 challenger 看到对手的 summary 后自然不需要那么多探索。这个发现的工程意义很大:它暗示了一种比 L1 那种"硬砍长度"更软的密度控制方式


3. 实验:方法在 hard 题目上真的翻倍

3.1 2×2 实验设计——把"信息交换"和"竞争"剥开

Agon 把两个二值因素交叉:

无信息交换 有信息交换
无竞争 vanilla GRPO cooperative (Eq. 2)
竞争 competitive, shared opponent(按设计是惰性的 Agon (Eq. 3)

外加三个控制:

  • Self-refinement:单 adapter 读自己上一次的解(不是对手的);
  • Untrained MoA at inference:两个独立 base 模型 inference 时互相 refine(不训练);
  • GRPO two-pass self-cascade:训过的 GRPO 模型自己 ref 自己。

论文这里有个很诚实的自爆:那个"竞争但无交换"的 cell 用的是共享对手 draft(hidden from challenger),按 §2.4 的分析 conversion bonus 退化为 group-constant,gradient 消失,所以这一格实际上是 vanilla GRPO 的别名,不是 competition 的纯隔离。

A competition-without-visible-exchange cell with per-rollout hidden drafts is left for future work.

作者承认这个"2×2 没填满"。这种承认很重要——市面上不少论文会把这种格子藏起来当 4 cell 卖。

3.2 主结果:在 Qwen3-0.6B 上翻倍

主表(论文 Table 1,Qwen3-0.6B,DeepMath-hard held-out,300 题):

方法 pass@1 (%) 平均 trace 长度 (token)
Zero-shot 23 6.1k
Vanilla GRPO(baseline) 30 8.1k
Self-refinement(控制) 32 7.9k
GRPO two-pass self-cascade 35 8.0k
MoA(不训练) 34 6.9k
Cooperative exchange 46 5.1k
Agon(竞争+交换) 61 3.5k

95% Clopper-Pearson CI(300 题)

方法 pass@1 95% CI
Zero-shot 23 [18.4, 28.3]
GRPO 30 [25.0, 35.4]
Agon 61 [55.2, 66.6]

几个关键 takeaway:

  1. Agon 把 GRPO 翻倍(30→61),95% CI 几乎不重叠。Cooperative exchange 已经 46(比 GRPO +16pp),加上竞争(conversion bonus)再 +15pp。两个杠杆几乎平分秋色
  2. 未经训练的 MoA 只多 4 个点。Agon 31pp 的增益里, 来自"训了", 来自"有两个模型"。
  3. 长度反而变短了。GRPO 把 trace 撑到 8.1k,Agon 干到 3.5k。多 31pp 准确率 + 少 57% token——这才是真正的 efficiency gain。
  4. cascade gain 的拆分:把 drafter adapter 单独拿出来跑(裸 prompt,无对手)已经 46,比 GRPO 的 30 高 +16pp。作者的 working hypothesis 是 challenger-stream 的"verify and re-derive"技能迁移到裸 prompt 上。challenger 再从 drafter 的 54 个错误里转化 15 个,凑到 61。

把这一段画成散点(论文 Figure 7a):

图4:accuracy vs trace length(论文 Figure 7a)。

图 4:左图(accuracy vs trace length):Agon(蓝色实心)坐在左上角——短且准。GRPO 在右下,长且没那么准。绿色箭头是示意。右图(训练曲线):Agon(蓝)一路领先,到 3000 步还没收敛;Coop(金)次之;self-refine(灰虚线)和 GRPO(灰实线)几乎贴一起,停在 30 附近。

3.3 跨规模和跨家族:gain 不靠基座大

Scaling table(论文 Table 3):

模型 Zero-shot GRPO Agon Δ vs GRPO
Qwen3-0.6B 23 30 61 +31
Qwen3-1.7B 38 46 70 +24
Qwen3-4B 52 59 71 +12
Qwen3.5-2B 44 50 70 +20
Gemma 4-E4B 50 58 73 +15

有意思的发现

  • 越小的模型涨得越多(31→24→12),符合"小模型 hard regime 占比更高"的直觉。
  • Agon 在 0.6B 上的 61 比 vanilla GRPO 在 4B 上的 59 高——两个 adapter 顶 7× 模型
  • 跨家族(Qwen3.5、Gemma 4)都成立,delta 跟家族关系不大,跟 zero-shot 强度负相关

但要注意,4B 上的 +12pp 也是在 95% CI ±5.5pp 范围内可能不显著的,作者没展开说,读者自己掂量。

3.4 第二个域:编程

Qwen3-1.7B 在 CodeContests easy split 上:

方法 pass@1 平均长度
Zero-shot 18 5.2k
GRPO 24 7.3k
Cooperative 29 4.8k
Agon 34 3.9k

同样序:Agon > Coop > GRPO > Zero-shot,长度反向缩短。绝对涨 +10pp 没数学域那么猛,作者归因 unit-test reward 稀疏 + code trace 里 opponent prefill 占比更高。

3.5 消融:每个设计都付了钱

Ablation table(论文 Table 4):

Factor 变体 (pass@1)
竞争(奖励) coop 46 / adv 61
信息交换 shared opponent 32 / per-rollout 61
奖励形式 margin \(c(b_i)-c(a_i)\) 49 / conversion bonus 61
角色分配 fixed 52 / rotate 61

每个设计都付了钱,没掉链子。Conversion bonus vs margin 差 12pp,是单点最大的杠杆——这也对应 §2.4 的理论。

3.6 泛化 sanity check:GSM8K 和 MATH-500

方法 GSM8K MATH-500
Zero-shot 62 45
Vanilla GRPO 68 52
Agon 75 64

在两个相对"温和"的评测上,Agon 也仍然领先 +13pp 和 +19pp,但绝对幅度比 DeepMath-hard(+38pp)小。符合预期:Agon 的竞争压力在 hard regime 最有效。


4. 一些我想较真的地方

读完之后我对几个点有保留:

1. 单次训练、300 题、binomial noise ±5.5pp、run-to-run 方差未量化。

the reported deltas should be read with that in mind.

论文里大数字(+31pp、+24pp、+12pp)都来自单次 training run + 单次 sampled evaluation。也就是说,作者没跑 3-5 个 seed 取均值。从经验看,这种 competitive RL 的训练曲线通常 noisy,3 seed 的 std 经常到 2-3pp。所以最干净的小模型上 +31pp 这个数字,在 3-seed 平均后可能变成 +28pp,CI 可能把 GRPO 排除也可能不排除

2. 2×2 缺了一格,"竞争但无交换"没真隔离。

论文自己承认了(原文引用上文)。所以"竞争是否独立贡献"的论证结构性依赖 coop vs adv 的对比,而 coop vs adv 还有一个 \(c(a_i)\) 项的差异——这不是纯竞争的隔离实验。这是一篇诚实但不完全干净的 ablation

3. Better cascade direction 是 post hoc 选的。

Both cascade directions (A→B and B→A) are evaluated and the better is reported, selected post hoc on the held-out set.

这意味着实际部署时要先在 held-out 上 pick direction,这不是"训练完随便用"。生产里通常不让你在测试集上挑。

4. "drafter standalone 46" 那个 +16pp 是不是 challenger-stream 迁移,未被控制。

the attribution of the drafter's +16 pp to the competitive objective is a hypothesis, not an isolated measurement.

作者明说没做 control(比如一个只训 cooperative 的 adapter,单独拎出来跑看是多少)。所以那 +16pp 来自"竞争"还是"cross-model 训练信号"本身,没拆干净。

5. shared base + 2× LoRA 是不是真的好。

这是个工程选择,不是方法必需。论文明说 "different blind spots are a hypothesis about the trained pair, not a measured property"——也就是 dual-adapter 这种最便宜的 instantiation 到底有没有"different blind spots",没量过。从初始化的角度,两个 adapter 起始差异在 noise 级,能不能靠 rotated update 拉出真正互补的盲点,是个开放问题。但说实话,这也不是这篇论文能解决的——它给了一个 work 的 recipe,留下了为什么 work 的开放问题。

6. 推理时是 2× 延迟。

Inference is a two-stage cascade, i.e. two sequential generation passes and added latency.

cascade 是 sequential 的,延迟加倍。生产部署要 batch / speculative 之类的优化,不算 plug-and-play。

7. Token 预算:"matched" 的不彻底。

Challenger 多出的 opponent summary prefill 没有 equalize。生成 token 数匹配,但总 prefill+generation 算起来 challenger 流偏贵。作者承认了但不深究。

8. The "drafter lifts from challenger-stream skills" 是个漂亮但未验证的故事。

如果 challenger stream 学到的是"读对手 → verify → 重写",这种能力为什么会迁移到"裸 prompt 独立解"?直觉上"对别人解法找茬"和"自己解"技能结构上不一样。可能存在某种"general reasoning depth"的正迁移,但作者没拆。这是论文最性感的开放问题。


5. 我的整体判断

Agon 是一篇工程和理论双干净的 micro-recipe 论文。它没有发明新方法——cross-model competitive RL、debate、prover-verifier 这些 idea 都是老朋友。它做对的事情是:

  1. 把这些 idea 落到 GRPO + 共享基座 + 双 LoRA 的工业级 pipeline 上,让"加一个对手"这件事的工程成本降到 ~2% 内存
  2. 给 reward 形式做了严密的梯度分析(conversion bonus vs margin),这不是经验之谈,是有数学的。
  3. 诚实地报告 2×2 缺格、单 seed、post-hoc cascade 选择等 limitation——读者能复现。
  4. 在 Qwen3-0.6B 上 DeepMath-hard 翻倍 + 短 57% trace,这个数据本身已经值得认真对待。

它没做对/没做的事情:

  1. 没跑 3-5 seed——大数字的稳定性存疑。
  2. 2×2 没填满——competition 的独立贡献没真正隔离。
  3. "为什么 drafter standalone 也变好" 没控制。
  4. 推理延迟加倍,cascade 方向要 post-hoc 选——不是 drop-in 升级。
  5. dual-adapter 的盲点发散没量过。

对工业界最有用的 takeaway

  • 如果你在做 GRPO 训练,+ 一个对手 + 一点 adversarial reward 在 hard regime 上几乎肯定能涨,代价是训练 pipeline 复杂化、推理延迟 ×2。
  • trace 短化是 emergent,不需要硬砍长度——这是个比 L1 更软、可能更稳定的密度控制姿势
  • 真正的 next axis 在 §6:让两个 adapter 在 latent space 直接交换信号。这一步落地了,"2× 推理" 的成本可能直接被 "latent bridge 一次前向" 替代,cascade 变 parallel。

给想复现的人

  • base 用 Qwen3-0.6B + 1 epoch DeepMath-103K difficulty-8(去掉 binary answer)
  • LoRA rank 16,lr 5e-5,linear decay + 10% warmup
  • group N=8,conversion bonus,\(\lambda=0.5\)(format),\(\gamma=0.5\)(可选 tiebreak)
  • TRL + vLLM 跑
  • 角色轮换别忘(消融里 52 vs 61 不是小数字)
  • 训完在 held-out 上 pick 哪个方向做 cascade

给想 push 的人

  • latent-space exchange 才是 next battleground——用 KV-cache injection 或 gated latent bridge 让两个 adapter 直接共享 representation,去掉 summary 的信息瓶颈和 2× latency。
  • 3-seed 跑一下验证大数字的稳健性。
  • 在"drafter 怎么变好"上加一个 cooperative-only-trained-adapter-standalone 的控制。

6. Future work 里那个真方向

论文最后一段写得很克制但其实野心最大:

For now the models talk in text; the next step is to let them reason together in latent space.

具体地说,作者在 related work 里点了一篇自己另一篇工作 Esperantix——在 latent space 做异质模型的 inference-time composition

如果 Agon 现阶段是:

problem → A 写 summary → B 读 summary → B 输出 final answer

那 latent 版是:

problem → [A, B] 在 representation 空间共享信号 → 双方联合输出

这一步落地了的话,两件事同时发生: 1. 信息瓶颈消失。现在 A 的 summary 是"语言压缩"过的,丢掉了 latent 里那些"知道但说不出来"的信号。latent bridge 没有这个损失。 2. 延迟变 parallel。两个 adapter 可以并行跑、共享中间 hidden state,cascade 的"2× sequential"变成"≈1× parallel"。

这才是 Agon 系列真正想拿下的战场。Text-channel 是为了"先证明 cross-model 信号有用",latent-channel 才是"把它做成 production"。

短期我不指望看到——KV-cache injection 在工程上还有很多坑(不同 layer、不同 head 的对齐,gating 怎么学)。但如果有人做出来,GRPO 训练范式可能直接被换掉:base + adapter 一起训、cross-adapter latent communication、single forward、no summary prefill、no sequential cascade。


7. 写在最后

读这篇论文最让我感慨的不是它涨了多少个点,是它老实。它把"为什么用 conversion bonus 不是 margin"写了一整段梯度分析,把"为什么 drafter 单独也变好"标成 "a hypothesis, not an isolated measurement",把 2×2 里那个惰性格子主动标出来——"this cell is theoretically equivalent to vanilla GRPO and serves as a consistency check rather than a true isolation"。

我最近读论文的体验是"惊喜越来越多来自诚实"。一个能把 limitation 写明白的作者,他的 data 我更信。Agon 涨的那 31pp 我现在愿意拿去 cite,这个信任是被那些 honest hedge 换来的。

如果你也在做 reasoning RL,这篇值得花一个下午读一下,主要不是为了抄 recipe,是为了体会一下"竞争 + 交换"这两个维度怎么拆 + 怎么验。从交叉表 2×2 怎么设、到 reward 形式怎么选、到 trace 短化能不能做 emergent——这套实验设计的逻辑,比方法本身更有迁移价值。

最后一句话送给还在跟 GRPO trace 通胀搏斗的同学:别再硬砍长度了,试试给模型一个对手。先 cooperative,稳了再加 conversion bonus。看着 trace 自然变短,那种"原来还能这样"的感觉比 +31pp 还解压。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我。