pass@k 会骗你:EliteReplay 如何用进化档案库对抗 RL 的解法坍塌
一个反直觉的发现
想象你在训练一个写 SQL 的语言模型。训练前,模型对同一个问题能写出五种不同的正确查询——有的用 JOIN,有的用子查询,有的用窗口函数。你用 GRPO 跑了一轮 RL 后训练,pass@1 从 25% 涨到了 55%。漂亮。
然后你抽了 128 个样本,发现模型几乎只用一种写法了。
那另外四种呢?消失了。不是被"优化"了,是被"饿死"了——RL 把概率质量集中到了最高奖励的路径上,其他正确路径的概率被同步压低。这就是所谓的 behavior sharpening(行为锐化):RL 不创造新能力,它只是放大了基座模型已有的少数行为。
问题来了:你用什么指标衡量"多样性丢失"?
如果你用 pass@k(k 次采样中至少有一次正确的概率),你可能会觉得没事——pass@128 还是 73%。但 pass@k 只问"有没有对的",不问"对的有几种"。一个模型可以靠反复输出同一种正确解法拿到高 pass@k,同时把基座模型原本会的其他解法全部遗忘。
这就是 EliteReplay 论文的核心洞察:pass@k 是一个标量幻觉,它把"解法多样性"这个高维量压成了一个比特。
论文:EliteReplay 的两步走
EliteReplay 来自 Ohio State University 的 Hanane Nour Moussa、Doeun Lee 和 Sachin Kumar,论文标题是 Preserving Diverse Solutions in RL Post-Training via Quality-Diversity Search。
方法分两步:
第一步:用 MAP-Elites 建"精英档案"
训练前,先用冻结的基座模型对训练集的一个子集(1000 个问题)做质量多样性搜索(Quality-Diversity Search, QD)。具体来说,用的是 MAP-Elites 算法——这是进化计算里的经典方法:
- 定义行为空间:不是手动设计行为描述符,而是让一个 LLM(labeler)看一批种子解法后,归纳出"解法类别"(比如"用 JOIN 连接"、"用子查询"、"用窗口函数"),再结合结构特征(SQL 的 AST 特征)组成行为描述符。
- 初始化档案:把基座模型采样的正确解法插入对应的档案格子。
- 选择目标:优先选择档案里还没出现过的解法类别。
- 变异:用基座模型生成新解法,prompt 里指定目标解法类别和父代精英。
- 评估插入:验证正确性,如果正确且格子为空就填入,如果格子已有解法但新解法更短就替换。
搜索预算用完后,每个问题得到一个档案——里面是覆盖了多种解法类别的正确 SQL,每个类别最多保留一个精英。
第二步:GRPO + Replay 联合训练
训练时,目标函数变成:
其中 replay loss 就是档案里解法的负对数似然,按长度归一化。\(\mu = 0.05\),也就是 95% 的梯度来自 GRPO,5% 来自档案回放。
这个设计的关键在于:档案是离线构建的,用冻结的基座模型。不是训练过程中动态收集的,也不是从 RL 的 rollout 里采的。档案一旦建好就固定了,训练过程中只做采样回放。
为什么 pass@k 是标量幻觉
论文提出了三个层次的多样性指标,一层比一层细:
- pass@k:k 次采样中至少一次正确的概率。这是最粗的——它只看"能不能对",不看"有几种对法"。
- U@k(Unique correct strategies):k 次采样中正确解法的策略类别数。策略类别用 SQL 的 AST 结构特征确定性地计算,不依赖 LLM 判断。
- Effective diversity:两个随机采样都正确且策略不同的概率。这个指标同时惩罚"不准确"和"不多样"。
还有一个关键指标:strategy retention(策略保留率)——基座模型原本会的正确策略,训练后还保留了多少。
实验结果很清楚:
| 方法 | BIRD pass@1 | BIRD pass@128 | BIRD U@128 | 策略保留率 |
|---|---|---|---|---|
| 基座模型 | 25.3% | 73.6% | — | 100% |
| GRPO | ~55% | 68-69% | ~3.0 | 34-39% |
| MaxRL | ~55% | 73.7% | 6.2 | ~39% |
| EliteReplay | 52.5% | 74.8% | 9.1 | 62% |
注意 MaxRL 和 EliteReplay 的 pass@128 几乎一样(73.7% vs 74.8%),但 U@128 差了 50%(6.2 vs 9.1)。如果你只看 pass@k,你会以为这两个方法差不多;但 MaxRL 靠的是反复输出少数几种解法,EliteReplay 保留了基座模型的大部分解法谱。
这就是"标量幻觉"的典型表现:pass@k 把"解法空间的结构"压成了一个比特,丢失了"有几种对法"这个关键信息。
消歧场景:多样性的实战价值
你可能会问:保留多种解法有什么用?只要答案对不就行了?
论文用 AmbiQT 基准测试回答了这个问题。AmbiQT 里每个问题都有两种合理解读——比如"部门的员工"可以指当前员工,也可以指所有曾分配到该部门的人。一个模型如果只会一种解读,无论采样多少次都覆盖不了另一种。
结果:在 k=128 时,GRPO 只能在 4.2% 的问题上覆盖两种解读,最强的多样性基线 MaxRL 达到 14.2%,EliteReplay 达到 27.0%——几乎是 MaxRL 的两倍, closes more than half the gap to the base model's 37%。
这个实验把"多样性"从抽象指标变成了实战价值:当问题本身有歧义时,解法多样性就是覆盖能力。
消融实验:两个条件缺一不可
论文的消融实验设计得很精巧,回答了两个关键问题:
问题 1:档案的组成重要吗?还是只要回放就行?
作者做了一个对照:用 IID 采样(直接从基座模型随机采样正确解法)替代 MAP-Elites 档案,保持回放机制不变。结果:pass@k 差不多,但 U@128 从 9.1 降到 7.4。IID 采样会过采样基座模型的常见解法,稀有解法还是会被 RL 压制。 档案的"广覆盖"结构是必要的。
问题 2:只在训练前做 SFT 够吗?还是必须全程回放?
作者做了一个"Elite SFT → GRPO"变体:先用档案做 SFT,再跑 GRPO,训练过程中不回放。结果:pass@128 和 U@128 都掉到了普通 GRPO 的水平(68.5% 和 3.0)。SFT 暖身不足以防止多样性坍塌——RL 会把 SFT 学到的稀有解法重新压回去。 回放必须贯穿整个 RL 训练。
这两个消融合在一起给出了一个清晰的设计原则:多样性保护 = QD 档案(广覆盖)+ 全程回放(持续注入)。 缺任何一个,坍塌都会发生。
一个意外的副产品:OOD 泛化
EliteReplay 在 MATH-500(训练时完全没见过数学任务)上的表现出乎意料:pass@1 从基座模型的 28.3% 提升到 35.5%,而三个基线都掉到了 25-27%。
作者的推测是:回放可能起到了"排练"作用,缓解了 RL 的域外遗忘。 这个发现如果成立,意味着 QD 档案不只是保护多样性,还可能保护了基座模型的通用能力——RL 后训练常见的"能力窄化"问题可能有一个简单的缓解手段。
工程洞察
从工程角度看,EliteReplay 的成本结构很清晰:
- 档案构建:一次性成本,用冻结的基座模型在 1000 个问题上跑 MAP-Elites 搜索。搜索预算是固定的,不随训练步数增长。
- 训练:GRPO + 5% 回放,训练 100 步。回放 loss 的计算是纯监督学习,没有额外的 rollout 成本。
- 评测:需要 128 次采样来估计 U@k,这比 pass@1 贵很多,但这是衡量多样性的必要成本。
代码已开源:https://github.com/skai-research/EliteReplay
包含:
- 档案构建器(策略标注、变异、SQL 验证、MAP-Elites 插入)
- 已发布的 BIRD 档案(2708 个占用格子,780 个问题,1500 个回放样本)
- EliteReplay + 所有基线的训练代码
- BIRD/Spider 评测代码
- 多样性指标实现(U@k、effective diversity、strategy retention)
- 已发布模型
hananour/EliteReplay-BIRD-4B
我的思考:三个层次的洞察
第一层:评测的标量幻觉
这篇论文最锋利的贡献不是方法本身,而是它对 pass@k 的解构。pass@k 是 RL 后训练领域的事实标准评测指标——DeepSeek-R1、Qwen3、Llama-4 的技术报告都在用 pass@k 衡量"推理能力"。但如果两个方法的 pass@k 相同,一个靠 1 种解法、一个靠 9 种解法,它们的"推理能力"真的等价吗?
这和之前在 Reading Right, Acting Wrong 里看到的"准确率隐藏了理解和决策两个独立维度"是同一个模式:标量评测指标会系统性地隐藏内部结构的差异。 每次发现一个标量幻觉,都值得问一句:这个标量压掉了什么高维信息?
第二层:RL 的"遗忘"本质
EliteReplay 的消融实验揭示了一个反直觉的事实:SFT 学到的东西,RL 会忘掉。 这不是"没学会",而是"学会了又被覆盖"。RL 的梯度更新会系统性地压低非最优路径的概率,即使这些路径是正确的。
这和"记忆是搜索约束"的洞察一致——RL 训练不只是学习,它同时在遗忘。EliteReplay 的回放机制本质上是一种"反遗忘"装置:用固定的档案锚定那些会被遗忘的解法。
第三层:QD 与 RL 的互补性
质量多样性搜索(QD)和强化学习(RL)在哲学上是互补的:
- RL 的目标是收敛:找到最优策略,最大化奖励。
- QD 的目标是发散:覆盖行为空间,找到多种高质量解法。
EliteReplay 把这两个目标拆开了:QD 负责发现(离线,用基座模型),RL 负责优化(在线,用 GRPO)。回放是连接两者的桥梁——QD 发现的多样性通过回放"注入"到 RL 的优化过程中,防止 RL 的收敛倾向把多样性吃掉。
这个设计模式比 EliteReplay 本身更通用。任何需要"在优化过程中保持多样性"的场景——不管是 Agent 的策略训练、生成模型的样本多样性、还是搜索算法的探索-利用平衡——都可以借鉴这个"离线建档案 + 在线回放"的框架。
局限与展望
论文坦诚地承认了两个局限:
- 模型规模:只在 Qwen3.5-4B-Base 上做了实验,更大模型上的效果待验证。
- 领域:只在 text-to-SQL 上做了实验,因为 SQL 的结构化特性让策略分类变得可行。数学推理这类缺乏结构化策略表示的领域,如何定义"策略"是个开放问题。
但作者也指出,任何有"可验证正确性"和"有意义行为区分"的领域——比如代码优化、算法生成——都适用这个方法。
结语
EliteReplay 让我最兴奋的不是方法本身,而是它揭示的评测盲区。我们用了这么久的 pass@k 来衡量推理能力,却很少问"这个指标压掉了什么"。当两个方法的 pass@k 相同时,一个可能是"一种解法反复输出",另一个可能是"九种解法各有千秋"——这两种"能力"在下游应用里的价值完全不同。
下次你看 RL 后训练的论文,不妨多问一句:它的 pass@k 背后,U@k 是多少?
论文:arxiv.org/abs/2610.22290
代码:github.com/skai-research/EliteReplay
模型:hananour/EliteReplay-BIRD-4B(HuggingFace)
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。