G-Zero:开放域任务里,没有 verifier 也能跑出 self-play 的奇迹?

核心摘要

Self-evolve LLM 这几年的成功故事,几乎都集中在可验证任务上——数学题答案对错可以判,代码可以跑通,AlphaProof、R-Zero 这一类工作沿着这条路一路狂奔。但有个问题始终绕不开:写作、对话、开放问答这些没有 ground truth 的任务,怎么 self-evolve?

现行套路是搞 LLM-as-a-judge。但你试过就知道,这条路有两个致命问题:一是 judge 的能力是天花板——你的 model 永远超不过 judge 自己;二是 reward hacking 太严重——model 学会的不是真正变好,而是学会"骗 judge",比如生成更长的回复、加更多 emoji、用 judge 喜欢的句式。

这篇 G-Zero 给了一个非常优雅的解法:完全不需要 verifier 也不需要 judge,supervision 信号从模型自己的 distributional dynamics 里挖出来。核心机制叫 Hint-δ——衡量一个 hint 让 Generator 的预测分布 shift 多少。Proposer 用 GRPO 训练去找 Generator 的盲区(生成让 Generator 答不好但 hint 一加就显著改善的 query),Generator 用 DPO 把 hint-guided response 作为 chosen,把 unassisted response 作为 rejected,学着自己内化这种 hint。两个 model co-evolve。

实验在 Qwen3-8B-Base 和 Llama-3.1-8B-Instruct 上跑 2 轮:开放域任务 AlpacaEval +3.74,验证域任务 AIME25 +5.21。最 interesting 的发现是——训练数据 70% 都是开放域任务(写作、解释、advice),但 model 的数学推理也大幅提升。说明 self-play 学到的是"逻辑深度"和"composition pattern",而不是 domain-specific 的记忆。

读完我觉得这篇是今年我看到的 self-play 论文里 framing 最干净的一篇。Hint-δ 这个 idea 简单到我恨自己没想到——log P(answer|q, hint) - log P(answer|q) 一句话讲完,但它解决的问题是过去一整个赛道头疼的事。


论文信息

  • 标题:G-Zero: Self-Play for Open-Ended Generation from Zero Data
  • 作者:Chengsong Huang, Haolin Liu, Tong Zheng, Runpeng Dai, Langlin Huang, Jinyuan Li, Zongxia Li, Zhepei Wei, Yu Meng, Jiaxin Huang
  • 机构:Washington University in St. Louis, UVA, UMD, UNC Chapel Hill
  • arXiv:https://arxiv.org/abs/2605.09959

问题:开放域 self-evolve 为什么这么难?

我先讲下背景。

DeepSeek-R1 那一脉的 self-play 走的是 RLVR(Reinforcement Learning from Verifiable Rewards)。数学题对就 reward 1,错就 reward 0;代码能跑通就 1,跑不通就 0。这套机制成功的前提是有 oracle——存在一个 ground truth 函数能告诉你答案对不对。

但现实任务里,oracle 是稀缺品。写一篇好文章没有 oracle。回答一个 open question没有 oracle。多轮对话没有 oracle。这些场景下没法直接用 RLVR。

行业的应对方案是 LLM-as-a-judge——拿另一个 LLM 当 judge 来打分。听起来合理,但实际跑下来两个 well-known 问题:

问题 1:Judge 是性能上限。你的 Generator 学到的"好"的定义,就是这个 judge 觉得"好"。如果 judge 是 GPT-4,你 fine-tune 一辈子也最多打到 GPT-4 的水平

问题 2:Reward hacking 严重。Judge 自己有 bias——长的更好、有 bullet point 更好、有 emoji 更好——Generator 不需要真的变好,只需要 exploit 这些 bias 就能涨分。你打开 AlpacaEval-tuned 模型的输出,普遍长得让人头疼,就是这个原因

R-Zero 这类工作避开了 judge 的问题,改用 majority voting 做 self-supervision——但这只适用于有正确答案的问题(mathematical reasoning),开放域用不了。

那有没有可能在没 verifier 也没 judge 的前提下,让 model 自我进化?这就是 G-Zero 想解决的问题。

图1:三种 self-supervision 信号的对比

图1:R-Zero 用 majority voting,只能用于 verifiable closed-domain。LLM-as-a-Judge 用 scalar score,受限于 judge 能力。G-Zero 通过比较 hint-conditioned 和 unassisted response 创建 internal preference signal——不需要外部 verifier 或 judge。


核心 idea:Hint-δ

整篇论文的精髓就是这一个公式。给一个 query \(q\) 和一个 hint \(h\),让 Generator 在没 hint 的情况下生成一个 baseline response \(a_{\text{hard}}\),然后衡量 hint 对这个 response 的"扰动":

\[\delta(q, h, a_{\text{hard}}) = \frac{1}{T}\sum_{t=1}^T [\log \pi_G(a_t | q, a_{<t}, h) - \log \pi_G(a_t | q, a_{<t})]\]

简单说就是:有 hint 后,Generator 觉得自己之前的 unassisted response 有多"意外"

这个公式我盯着看了好几遍。它同时衡量了两件事:

  1. query 对 Generator 来说有多难:如果 query 简单到 Generator 一答就对,那 hint 加不加都没区别,δ ≈ 0
  2. hint 是否真的有用:如果 hint 是废话,Generator 看不看都不影响概率分布,δ ≈ 0

只有当 query 有难度 + hint 提供了 Generator 不知道的信息,δ 才会显著大于 0

这就是 G-Zero 的核心 insight——把"找 Generator 的盲区"这个抽象目标,转化成了一个完全 self-contained 的 scalar signal。不需要任何外部判断,δ 完全从 Generator 自己的 log-probability 里算出来。

更深刻的一点:Hint-δ 的天花板会随着 Generator 能力一起涨。当 Generator 变强后,简单的 hint 不再能 shift 它的分布,Proposer 必须找到更深的盲区——这天然形成了一个 self-scaling 的难度阶梯。


框架:两个 model 的协同进化

图2:G-Zero 协同进化循环

图2:上半部分是 Proposer 训练——Proposer \(\pi_P\) 生成 (query, hint) 对,冻结的 Generator 算 unassisted response,Hint-δ 作为 GRPO reward 驱动 Proposer 寻找 Generator 的盲区。下半部分是 Generator 训练——Proposer 冻结,Generator 对每个 query 生成 with-hint 和 without-hint 两个 response,过滤后用 DPO 让 Generator 学会偏好 hint-guided response。

Proposer 训练(GRPO)

Proposer 的 reward 是 Hint-δ 减去两个 penalty:

\[r(q, h) = \delta(q, h, a_{\text{hard}}) - \mathcal{P}_{\text{length}} - \mathcal{P}_{\text{BLEU}}\]

Length Penalty:hint 不能太长(>200 字符),防止 Proposer 通过堆砌冗长文本人为 shift 分布

BLEU Duplication Penalty:对同一 batch 内 BLEU 距离 < 0.5 的 question 做聚类,每个 rollout 按 cluster 大小折扣——防止 Proposer 退化成生成重复 query

这两个 penalty 是关键的工程细节。没有 length penalty,Proposer 会学到"生成 1000 字的 hint"——因为越长 token 越多,δ 越容易爆。没有 duplication penalty,Proposer 会 collapse 到同一个最容易刷分的 query 上。

Generator 训练(DPO)

Generator 用标准 DPO 训练,但有两个细节:

第一,preference pair 直接构造: - chosen = \(a_{\text{assisted}}\)(有 hint 的 response) - rejected = \(a_{\text{hard}}\)(无 hint 的 response)

第二,DPO 用 length-normalized 版本:

\[\mathcal{L}^{LN}_{\text{DPO}}(\theta) = -\mathbb{E}\left[\log \sigma\left(\beta(\bar{r}_\theta(x, y_w) - \bar{r}_\theta(x, y_l))\right)\right]\]

其中 \(\bar{r}_\theta(x, y) = \frac{1}{|y|}\log \frac{\pi_\theta(y|x)}{\pi_{\text{ref}}(y|x)}\)。这是为了避免 vanilla DPO 对长 response 的偏置。

训练数据筛选:反直觉的"低 δ 优先"

这块是论文最容易被忽视但非常关键的设计。Proposer 训练时 maximize δ(找盲区),但 Generator 训练时只保留 δ 在 lower half 的 pair

为什么反着来?两个原因:

原因 1:高 δ pair 太"trivial"。如果 hint-guided response 和 unassisted response 的差距巨大,DPO 学到的只是表面的、显而易见的差异——比如"长答案比短答案好"。低 δ pair 强迫 DPO 学fine-grained 的结构性改进

原因 2:高 δ pair 违反 DPO 的 implicit KL constraint。DPO 的 closed-form 里有个隐式的 KL 限制 model 不要偏离 reference 太远。高 δ 意味着 hint-assisted response 远离 Generator 原始分布,强行 push 会导致 gradient 爆炸、训练不稳定

这个"Proposer 找最大 δ,Generator 学最小 δ"的对偶设计很巧妙——前者负责 exploration(探索 Generator 不会的东西),后者负责 exploitation(学那些它就差一点能做对的东西)。


理论保证

论文给了一个 best-iterate suboptimality bound:

\[J(\pi^*) - J(\pi_{t_0}) \leq \widetilde{O}(\varepsilon + \sqrt{\eta_\delta})\]

其中 \(\eta_\delta\) 是 δ-filter 之后的 pseudo-label noise。这个 bound 把两件事分开了:

  • Hint-δ filter 控制数据质量(小 \(\eta_\delta\)
  • BLEU penalty 控制数据覆盖(exploration coverage)

也就是说,G-Zero 的 co-evolution guarantee 来自这两个机制的协同:Proposer 提供既可信又新颖的 preference pair,Generator 累积 DPO update 把这些 pair 蒸馏到自己的 policy 里

我没有完整看证明(在附录),但 framing 是清晰的——把直觉级的设计映射到了一个 PAC-style 的 bound 上。


实验结果

主表

Model Method AlpLC IF-pS IF-pL IF-iS IF-iL AIME24 AIME25 Avg
Qwen3-8B-Base base 8.94 43.07 50.28 56.00 61.75 10.42 7.19 33.95
R-Zero 8.04 37.56 42.79 54.12 57.37 14.92 13.34 32.59
G-Zero R2 8.47 43.81 50.83 57.92 63.43 11.15 12.40 35.43
Llama-3.1-8B-Inst base 24.12 58.41 65.80 69.42 75.30 5.94 0.42 42.77
R-Zero 21.74 56.94 62.47 66.74 72.93 5.07 0.34 40.89
G-Zero R2 27.86 59.52 66.35 70.38 75.78 6.77 0.63 43.90

几个观察

观察 1:R-Zero 有 trade-off,G-Zero 没有。R-Zero 在 AIME 上涨得猛(Qwen3 AIME24 从 10.42 涨到 14.92),但 chat 和 IFEval 都掉了——它牺牲开放域换数学。G-Zero 几乎所有指标都涨,没有这种交易

观察 2:G-Zero 在不同 base model 上 target 不同的瓶颈。Qwen3-Base 没经过 instruction tuning,G-Zero 主要补hard reasoning 和 strict formatting(AIME25 7.19→12.40)。Llama-Instruct 已经做过 alignment,G-Zero 主要补对话质量(AlpacaEval LC 24.12→27.86)。这个"自适应"的特性挺迷人的

观察 3:iterative gain 在累积。Llama 第一轮提升不大,第二轮显著加速。这印证了 co-evolve 的有效性——更强的 Generator 让 Proposer 找到更深的盲区,反过来让 Generator 学更多

最 surprising 的发现:跨域 transfer

Category % Pool Mean δ
Math 9.6% 0.045
Code 9.0% 0.040
Explain 9.6% 0.058
Advice 30.2% 0.045
Writing 17.4% 0.060
Other 24.1% 0.056

训练数据里 70% 是开放域任务(writing、advice、explanation),只有 19% 是 math+code。但 G-Zero 在 AIME25 上的提升和 R-Zero(专门刷 math)差不多

这说明 self-play 学到的是generalizable 的逻辑深度和 compositional pattern——这些 pattern 在 structured writing 任务里被习得,但能 transfer 到数学推理。

我觉得这是这篇论文最深刻的发现:reasoning 能力本质上是一种通用的 cognitive structure,可以在 open-ended task 里被催化出来,不需要专门用数学题训练。这点对 post-training 的实践有非常大的启发。

δ filter 的消融

δ filter Chat IFEval Math Avg
base 8.94 52.78 8.81 33.95
[0, 50] (G-Zero) 9.07 53.03 11.78 34.96
[20, 80] 9.07 51.82 12.54 34.40
[50, 100] 9.68 51.97 10.37 34.04

这张表证实了"低 δ 优先"的设计。[0, 50] 和 [50, 100] 的对比最关键——保留高 δ 的 [50, 100] 反而表现最差,几乎没有提升。低 δ 的 fine-grained signal 是 DPO 学到东西的关键。

图3:训练过程中各指标的变化曲线

图3:训练动态。可以看到不同任务的 reward / accuracy 在两轮迭代中持续提升,没有出现 self-play 经常出现的"collapse"或"plateau"。

图4:消融实验

图4:去掉关键组件后的表现对比。Length penalty 和 BLEU penalty 都不能省——去掉任何一个,Proposer 会学到非常 degenerate 的策略,整个 system 退化。


我的判断:值不值得读?

毫无保留地推荐。这是 self-play / self-evolve 这个方向今年最值得读的论文之一。

亮点

  1. Hint-δ 是个 elegant 的 idea。一个公式,self-contained,不依赖外部 verifier,且天花板随 model 涨——所有期望的性质都满足
  2. "低 δ 优先"的反直觉设计很有 insight。背后是 DPO 的 implicit KL constraint,体现了对优化机制的深入理解
  3. 跨域 transfer 的发现对整个 post-training 社区有启发——你不需要专门刷数学题来涨数学能力,open-ended task 里的 logical depth 能 transfer
  4. 理论保证——给出了 best-iterate suboptimality bound,虽然是简化的 linear case,但至少把直觉 formalize 了
  5. 实验设计很扎实——Qwen 和 Llama 两种 family,base 和 instruct 两种 alignment level,覆盖 chat、IFEval、math 三种任务

问题

  1. Hint 的"来源"模糊。Hint-δ 假设有一个 hint,但 hint 本身是 Proposer 生成的——所以"hint 是否真的提供了有用信息"完全依赖 Proposer 的能力。如果 Proposer 一开始就菜,那 hint 也菜,整个机制启动不起来。论文用 Length penalty 和 BLEU penalty 防 collapse 但没系统讨论 cold-start 问题
  2. R-Zero 在 AIME 上比 G-Zero R2 更强(Qwen3:14.92 vs 12.40)。论文 emphasize G-Zero 的平均更高,但单看 math 指标其实 R-Zero 更猛。这是个 trade-off 而不是 strict dominance
  3. LoRA 训练 + 2 轮迭代是否能扩展到 full fine-tune + 更多轮?没有说。如果 G-Zero 只能在 LoRA 这种 lightweight setup 下 work,那应用范围会受限
  4. 没和最近的其他 verifier-free 方法比。比如 Constitutional AI、Self-Rewarding LM 这些,应该有更直接的对比

对工程实践的启发

  • 不需要外部 verifier 也能 self-evolve——这是一个 paradigm shift。如果你的任务找不到 ground truth,G-Zero 的思路是个直接可用的解
  • Hint-δ 这个机制可以单独使用作为"难度估计"工具——找出 model 在哪些 query 上有盲区,是构造 hard example dataset 的好方法
  • Length penalty 在所有 self-play 里都是必须的——不加 length penalty,你的 model 会变成话痨
  • 跨域 transfer 的洞察意味着 post-training 的 budget 分配可以更灵活——不必死磕 in-domain 数据

收尾

这篇论文我觉得在 self-play / RLAIF 这个方向是一个重要的进化节点

回看这个方向的发展:从 RLHF(依赖人工标注)→ Constitutional AI(依赖 constitution)→ RLAIF / LLM-as-judge(依赖更强的 judge)→ Self-Rewarding LM(self-judge)→ R-Zero(用 majority voting 替代 judge)→ G-Zero(用 distributional dynamics 替代 majority voting)——你能看到一个清晰的"逐步去 external supervision"的趋势。

每一步都在解锁一个 limitation:人工成本、constitution 设计、judge 上限、需要 verifiable answer。G-Zero 解锁的是"开放域 + 无 verifier"——这是最大的解锁,因为它意味着 self-evolve 可以在任何任务上跑。

下一个值得追的问题:

  1. 能不能把 Hint-δ 扩展到 multi-step 任务? 单轮 query-response 上 work,agentic 多轮交互场景下怎么定义 hint?
  2. Cold-start 怎么处理? 当 Proposer 和 Generator 都是初始状态,能不能从零启动,还是需要一些 warmup?
  3. 跨模型的 transfer——一个 family 训出来的 Proposer,能不能 zero-shot 给另一个 family 的 Generator 用?

如果你在做 post-training 或者 alignment,这篇文章值得花一个晚上仔细啃一遍。


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