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: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 的"扰动":
简单说就是:有 hint 后,Generator 觉得自己之前的 unassisted response 有多"意外"。
这个公式我盯着看了好几遍。它同时衡量了两件事:
- query 对 Generator 来说有多难:如果 query 简单到 Generator 一答就对,那 hint 加不加都没区别,δ ≈ 0
- 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:上半部分是 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:
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 版本:
其中 \(\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:
其中 \(\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:训练动态。可以看到不同任务的 reward / accuracy 在两轮迭代中持续提升,没有出现 self-play 经常出现的"collapse"或"plateau"。

图4:去掉关键组件后的表现对比。Length penalty 和 BLEU penalty 都不能省——去掉任何一个,Proposer 会学到非常 degenerate 的策略,整个 system 退化。
我的判断:值不值得读?
毫无保留地推荐。这是 self-play / self-evolve 这个方向今年最值得读的论文之一。
亮点:
- Hint-δ 是个 elegant 的 idea。一个公式,self-contained,不依赖外部 verifier,且天花板随 model 涨——所有期望的性质都满足
- "低 δ 优先"的反直觉设计很有 insight。背后是 DPO 的 implicit KL constraint,体现了对优化机制的深入理解
- 跨域 transfer 的发现对整个 post-training 社区有启发——你不需要专门刷数学题来涨数学能力,open-ended task 里的 logical depth 能 transfer
- 理论保证——给出了 best-iterate suboptimality bound,虽然是简化的 linear case,但至少把直觉 formalize 了
- 实验设计很扎实——Qwen 和 Llama 两种 family,base 和 instruct 两种 alignment level,覆盖 chat、IFEval、math 三种任务
问题:
- Hint 的"来源"模糊。Hint-δ 假设有一个 hint,但 hint 本身是 Proposer 生成的——所以"hint 是否真的提供了有用信息"完全依赖 Proposer 的能力。如果 Proposer 一开始就菜,那 hint 也菜,整个机制启动不起来。论文用 Length penalty 和 BLEU penalty 防 collapse 但没系统讨论 cold-start 问题
- R-Zero 在 AIME 上比 G-Zero R2 更强(Qwen3:14.92 vs 12.40)。论文 emphasize G-Zero 的平均更高,但单看 math 指标其实 R-Zero 更猛。这是个 trade-off 而不是 strict dominance
- LoRA 训练 + 2 轮迭代是否能扩展到 full fine-tune + 更多轮?没有说。如果 G-Zero 只能在 LoRA 这种 lightweight setup 下 work,那应用范围会受限
- 没和最近的其他 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 可以在任何任务上跑。
下一个值得追的问题:
- 能不能把 Hint-δ 扩展到 multi-step 任务? 单轮 query-response 上 work,agentic 多轮交互场景下怎么定义 hint?
- Cold-start 怎么处理? 当 Proposer 和 Generator 都是初始状态,能不能从零启动,还是需要一些 warmup?
- 跨模型的 transfer——一个 family 训出来的 Proposer,能不能 zero-shot 给另一个 family 的 Generator 用?
如果你在做 post-training 或者 alignment,这篇文章值得花一个晚上仔细啃一遍。
觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我