偏好对齐的公理化重建 2026:从 DPO 对偶到 GRPO 群组优势的统一视角
约 32 分钟9380 字3 次阅读

偏好对齐的公理化重建 2026:从 DPO 对偶到 GRPO 群组优势再到 RLVR 验证器的统一视角
一句话摘要:当 DPO 把 RLHF 折成对偶损失、GRPO 把 PPO 的 critic 折成群组基线、RLVR 把奖励折成规则验证器时,三条路径殊途同归地落在"奖励几何 + 偏好采样 + 验证反馈"的统一三轴上;本文从公理化与不动点的角度重建这条谱系,澄清当前工程实践里被混淆的若干概念。
一、问题的提出:当 RLHF、RLVR、DPO、GRPO、SFT 撞上工程语义
2024 年下半年到 2026 年中,偏好对齐的工程叙事已经从"RLHF 三阶段=SFT→RM→PPO"迅速演化为"DPO 直接回归""GRPO 砍掉 critic""RLVR 砍掉奖励模型"等多条并行路径。在工业界的后训练流水线里,工程师们经常会遇到这样的语义冲突:训练目标里写的是"偏好对齐",但 loss 公式里跑的是 Bradley-Terry 的对偶闭合形式;框架名字叫"RLHF",但 critic 是 PPO 的 GAE 还是 GRPO 的群组基线,文档里混着写;验证集里用"规则检查器"打分,但 log 里写"reward"。当算法选型论文与工程实现之间的术语漂移达到一定程度时,工程团队就会发现:算法名 ≠ 实际优化目标。
本文的目标是把当前被工程话语割裂的偏好对齐谱系,用一组最小的公理重新拼起来。具体来说,我提出三组公理:第一组是关于奖励函数的"几何公理"——奖励信号应该被理解为某个偏好势函数的对偶形式;第二组是关于采样的"群组公理"——所有无 critic 方法本质都是在做相对优势的群组估计;第三组是关于验证的"反馈公理"——可验证的规则检查器是一种可微或可强化学习的弱奖励信号。三组公理交叉组合,就形成了 DPO、GRPO、RLVR 及其混合形态。
这条重建路径的现实意义不止于"统一名词"。它直接帮助工程师回答三个落地问题:(i) 当我们想把一个 RM-based PPO 流水线切换到 GRPO 时,需要修改的到底是哪些组件,保留的又是哪些? (ii) 当我们想给一个纯 SFT 模型加一个"轻量级 RL 阶段"时,最经济的接法是 DPO 还是 RLVR? (iii) 当业务指标要求"可解释、可审计、可回滚"时,验证器是否必然比 奖励模型 更可审计?——这三问都依赖一个清晰的公理化基底。
需要提前声明的是,本文不做完整的数学证明(每一步严格证明都需要独立的论文级别论证),而是把当前文献里散落的关键定理按公理化结构组织,并对工程实现中常见的概念错位做澄清。读者读完应当能够:(a) 看一段 RLHF/DPO/GRPO/RLVR 的代码立即判断它在做什么公理层面的事;(b) 设计一个新对齐流水线时直接按公理三轴拼装;(c) 在工程会议上对"该用哪种对齐方法"给出可被反驳的论证依据。
二、形式化:奖励几何 + 偏好采样 + 验证反馈三轴
本节把后续讨论的不动点建立在三个公理之上,并给出对应的形式化表达。形式上,我们把"对齐"看成是从策略 到期望奖励 的极值问题,而不同的对齐方法只是在"奖励 由谁产生"和"优势 由谁估计"两个维度上做了不同的选择。
公理 1:奖励几何公理(Reward-Geometry Axiom)
陈述:存在一个"偏好势函数" (其中 是回答空间),使得任意两个回答 (winner)和 (loser)之间的偏好概率满足:
其中 是 sigmoid 函数, 是逆温度系数。这一公理的含义是:偏好可以被一个低维势能差完全刻画,而无需引入不可解释的高维奖励模型。
这正是 Bradley-Terry 模型在 LLM 对齐中的标准形式。DPO(Direct Preference Optimization)的核心洞察就是把这个隐式势函数 与策略对数比 等价起来,从而把 RLHF 的两阶段(训练 RM + PPO)折成一个回归损失。
公理 2:群组采样公理(Group-Baseline Axiom)
陈述:对于一组从同一 prompt 采样出的回答 ,其相对优势的群组估计为:
即每个回答的优势是其奖励减去同一 prompt 下的群组均值。这一公理的本质是:在策略内引入一个无偏的基线来降低优势估计的方差。
这就是 GRPO(Group Relative Policy Optimization)相对于 PPO 的关键简化。PPO 用一个独立的 value network 来估计基线(GAE 的核心),而 GRPO 直接用同一组回答的群组均值——不再训练 critic。从方差缩减的角度看,只要群组大小 足够大(典型 或 ),群组均值就是基线的无偏估计,且工程实现成本远低于训练一个 value network。
公理 3:验证反馈公理(Verifier-Feedback Axiom)
陈述:存在一个可计算的验证函数 (或 ),使得对于任何 prompt ,其"正确"回答 满足:
其中 , 是规则验证器(例如数学题答案是否匹配、代码是否通过测试用例、JSON schema 是否合法), 是格式奖励(鼓励按要求输出), 是先验奖励(例如来自 RM 或 human prior)。
这就是 RLVR(Reinforcement Learning with Verifiable Rewards)的核心思想:奖励不再由学得的黑盒 RM 给出,而是由可验证的规则检查器给出。RLVR 的工程优势是奖励信号无幻觉、可审计、可低成本扩展;劣势是奖励信号的覆盖域有限(只对"有明确正确答案"的领域有效)。
三轴的交叉组合
把三组公理交叉,就得到当前主流对齐方法的统一分类:
| 方法 | 奖励产生 | 优势估计 | 验证反馈 |
|---|---|---|---|
| RLHF (PPO) | RM | GAE with critic | (无) |
| DPO | (隐式) | 无显式 advantage | (无) |
| GRPO | RM 或 verifier | 群组均值 | 可选 |
| RLVR | Verifier | 群组均值 或 GAE | ✓ 强制 |
| Process Reward | Step-level verifier | 群组 + step-baseline | ✓ 多步 |
| DPO+Verifier | 混合 | 隐式 | 可选 |
这张表的读法是:任何一个对齐方法,都可以被描述为"在三个公理轴上各做了一个选择"。比如 GRPO + 规则验证器的组合就自然落到了 RLVR 的范畴;DPO + 群组均值估计优势就退化成了一个新的"Identity Preference Optimization"变体(虽然没有理论优势)。这种公理化视角的最大好处是:当我们设计新算法时,可以先在表上选三个格子,再去验证组合是否有效,而不是每次从零开始发明的"全新算法"。
三、机制 1:DPO 的对偶闭合与隐式势函数
DPO 的数学推导被 Rafailov 等人(2023)首次系统化提出,但对偶闭合的本质在更早的统计学习文献里就有先例。下面我从公理 1 出发,重新审视 DPO 的核心 loss。
从 RL 目标到对偶 loss
设 是当前策略, 是参考策略(通常是 SFT 后的模型)。RLHF 在 KL 正则下的目标是:
其最优解有闭式表达:
其中 是配分函数。把上式两边取对数并整理,就得到奖励的对偶表达:
代入 Bradley-Terry 偏好模型 ,配分函数 自动消去,得到 DPO loss:
这个 loss 完全不需要训练 RM,也不需要采样,只是一个有监督的偏好回归。
DPO 的工程含义与三大问题
DPO 的工程含义可以从三个角度看:
- 训练稳定性:因为 DPO 是有监督 loss,没有 PPO 的 ratio clipping 和 KL 漂移问题,训练曲线通常非常平稳。
- 分布漂移:DPO 的 在训练过程中可能逐渐偏离 ,导致 出现极端值(mode collapse)。
- 偏好数据的隐含偏置:DPO 假设偏好对 来自同一 prompt 的真实分布,但实际工程中偏好标注经常受标注者主观影响。
为了解决 mode collapse,文献提出了多个变体:IPO(Identity Preference Optimization)使用均方误差代替 log-sigmoid;KTO(Kahneman-Tversky Optimization)放弃配对假设,使用单条回答的"满意/不满意"标注;ORPO(Odds Ratio Preference Optimization)把 SFT loss 和偏好 loss 合并成一个 odds-ratio 项。这些变体的共同点是仍然走公理 1 的隐式势函数路径,只是把目标函数改成了更稳健的形式。
伪代码:DPO 训练循环
import torch
import torch.nn.functional as F
def dpo_loss(policy_logits, ref_logits, y_w, y_l, beta=0.1):
"""DPO loss computation.
policy_logits: (B, T, V) from current policy
ref_logits: (B, T, V) from reference policy
y_w, y_l: (B, T) winner / loser token ids
"""
# 1. Compute per-sequence log-probs
log_pi_w = gather_log_probs(policy_logits, y_w) # (B,)
log_pi_l = gather_log_probs(policy_logits, y_l) # (B,)
log_ref_w = gather_log_probs(ref_logits, y_w) # (B,)
log_ref_l = gather_log_probs(ref_logits, y_l) # (B,)
# 2. Compute log-ratio margins (公理 1 的核心)
margin_w = log_pi_w - log_ref_w # log(π_θ/π_ref) for winner
margin_l = log_pi_l - log_ref_l # log(π_θ/π_ref) for loser
# 3. Bradley-Terry logistic loss
logits = beta * (margin_w - margin_l)
loss = -F.logsigmoid(logits).mean()
return loss
def gather_log_probs(logits, labels):
"""Sum log p(y_t | y_<t) over sequence positions."""
log_probs = F.log_softmax(logits, dim=-1)
return log_probs.gather(-1, labels.unsqueeze(-1)).squeeze(-1).sum(dim=-1)
这段伪代码的三个关键动作——gather log-probs、计算 margin、应用 logistic loss——就是 DPO 的全部。没有任何采样、没有 critic、没有 reward head,这就是 DPO 在公理 1 视角下的极简性。
四、机制 2:GRPO 的群组基线与无 critic 优化
GRPO 由 DeepSeek-AI 团队在 2024 年提出,最初用于数学推理任务,核心是用群组均值代替 critic。它本质上是在公理 2 上的一个具体选择——奖励仍然来自 RM 或 verifier,但基线从 GAE 退化到群组均值。
从 PPO 到 GRPO 的退化路径
PPO 的标准 loss 是:
其中 是重要性采样比率, 是 GAE 估计的优势。GAE 的标准形式是:
这需要一个训练好的 value network 。GRPO 的关键退化是:把 替换成同一组回答的群组均值:
这相当于 GAE 在 时的特例——只看当前步的 TD error,但用群组均值代替 value network。从方差缩减角度看,只要群组大小 ,群组均值就是 的一个无偏且方差可控的估计。
GRPO 的工程优势与三大陷阱
GRPO 在工程上相比 PPO 的优势是显著的:
- 显存减半:不需要训练 value network,Actor 和 Critic 不再共享显存。
- 训练速度提升 1.5-2 倍:少了 critic 的 forward 和 backward。
- 实现简化:可以直接用 vLLM 或 SGLang 的采样 API,无需自定义 rollout。
但 GRPO 也有三个常见陷阱:
- 群组大小选择: 太小(如 )导致基线估计方差大, 太大(如 )导致采样成本高。经验值 。
- 奖励信号的尺度敏感性:群组均值对奖励的绝对值敏感,如果 RM 输出未经归一化,可能导致优势估计偏向某些 prompt。
- 同质化风险:群组采样可能产生大量相似回答,导致群组均值失去基线意义(即"近零方差问题")。解决办法是引入温度扰动或多样性奖励。
伪代码:GRPO 训练循环
def grpo_loss(policy_logits_old, policy_logits_new, rewards, group_ids, epsilon=0.2, beta=0.04):
"""GRPO loss with group-baseline advantage.
rewards: (B,) reward from RM or verifier
group_ids: (B,) which group each sample belongs to (same prompt -> same group)
"""
# 1. Group baseline: mean reward per group (公理 2)
group_means = scatter_mean(rewards, group_ids, dim=0) # (num_groups,)
advantages = rewards - group_means[group_ids] # (B,)
# 2. Importance sampling ratio
log_ratio = compute_log_ratio(policy_logits_new, policy_logits_old)
ratio = log_ratio.exp()
# 3. PPO clipped objective
surr1 = ratio * advantages
surr2 = ratio.clamp(1 - epsilon, 1 + epsilon) * advantages
policy_loss = -torch.min(surr1, surr2).mean()
# 4. KL penalty against reference policy
kl_penalty = beta * log_ratio.mean()
return policy_loss + kl_penalty
这段伪代码展示了 GRPO 的核心:群组均值 是 critic 的替代品。scatter_mean 这一行就是 GRPO 的全部哲学——用一个不学而知的统计量代替学得的基线。
五、机制 3:RLVR 的验证反馈与可审计奖励
RLVR(Reinforcement Learning with Verifiable Rewards)在 2025 年成为后训练主流之一,其核心洞察是:对于有明确正确答案的领域,奖励完全可以由规则验证器给出。这一洞察源自 OpenAI o1 / DeepSeek-R1 在数学和代码任务上的成功——这些任务的"对错"是可机器验证的。
验证器的形式化定义
设 是一组验证器集合,每个 对应一种任务类型(例如数学答案匹配、代码测试通过率、JSON schema 合规性、SQL 查询结果正确性)。RLVR 的奖励为:
其中 表示 prompt 是否属于第 类任务。与 RM 不同的是,验证器是确定性的、可解释的、可审计的——给定 ,任何工程师都可以手动验证 是否正确。
RLVR 的工程优势与三大限制
RLVR 的核心优势是奖励信号的可信度。对于"答案是否正确"这种二元判断,验证器可以达到接近 100% 的精度,而 RM 即使在精心训练后也只有 85-92% 的精度。这就意味着 RLVR 训练出来的策略在"已知正确答案的任务"上不会因为奖励幻觉而偏离。
但 RLVR 也有三个根本限制:
- 领域受限:只对"有明确正确答案"的任务有效,例如数学、代码、逻辑推理。开放性生成(如创意写作、对话质量)无法用验证器打分。
- 验证器维护成本:验证器需要随任务演进而更新,例如数学竞赛题目风格变化时,答案匹配规则也需要更新。
- 奖励稀疏:对于长链推理任务,只有最终答案对错才有奖励,中间步骤没有反馈信号。这导致 credit assignment 问题。
第三个限制的解决办法是 Process Reward Model (PRM)——给推理的每一步都打一个验证器分(步骤是否正确、是否符合推理规则)。但 PRM 本身又是一个 RM,绕回了"学得的奖励模型"问题。当前主流折中是对推理过程做规则化的格式奖励(如 "Let me think step by step" + 每步必须以句号结尾)以提供中间反馈。
伪代码:RLVR 训练循环
def rlvr_verifier_reward(prompt, response, verifier):
"""Compute verifiable reward for RLVR."""
task_type = classify_task(prompt)
if task_type == "math":
# 数学题:匹配最终答案
answer = extract_final_answer(response)
correct = answer == verifier.expected_answer
return 1.0 if correct else 0.0
elif task_type == "code":
# 代码题:跑测试用例
code = extract_code_block(response)
return verifier.run_test_cases(code)
elif task_type == "json":
# JSON 输出:schema 合规性
try:
parsed = json.loads(response)
return 1.0 if validate_schema(parsed, verifier.schema) else 0.0
except json.JSONDecodeError:
return 0.0
else:
raise ValueError(f"Unknown task type: {task_type}")
这段伪代码展示了 RLVR 的极简性:奖励信号是 if-else 链 + 一个测试运行器,没有神经网络、没有学得的权重。这就是为什么 RLVR 在工程上被称为"低幻觉对齐"——奖励信号本身是确定性的。
六、统一视角:三轴的几何与不动点
把公理 1、2、3 放到一起,我们得到偏好对齐的几何图景:奖励产生(公理 1)+ 优势估计(公理 2)+ 验证反馈(公理 3) 构成三维设计空间,每个具体算法对应空间中的一个点。这种几何视角的好处是让我们看到"不动点"——某些极端配置会收敛到相同的策略。
不动点 1:纯 SFT
当公理 1 的奖励 、公理 2 的群组大小 、公理 3 的验证器权重 时,三轴退化到 SFT 本身。SFT 是偏好对齐的几何原点。
不动点 2:纯 DPO
当公理 1 的奖励来自隐式势函数、公理 2 完全不显式估计优势(DPO 没有 advantage 概念)、公理 3 验证器权重 时,就是纯 DPO。DPO 是"无 critic、无 verifier"的对齐原点。
不动点 3:GRPO + RLVR
当公理 1 的奖励来自验证器、公理 2 用群组均值估计优势、公理 3 验证器权重 时,就是当前最流行的"GRPO + 规则验证器"配置(DeepSeek-R1 风格)。这是"砍掉 critic、砍掉 RM"的极简对齐方案。
不动点 4:完整 RLHF
当公理 1 用 RM、公理 2 用 GAE + critic、公理 3 验证器权重 时,就是经典 RLHF。这是"三轴全开"的最重对齐方案。
设计空间的拓扑
图表加载中…
这张拓扑图展示了三轴的组合空间。当我们讨论"该用哪种对齐方法"时,实际上是在问"应该选择哪个格子"。没有绝对最优的格子,只有相对当前任务约束最适合的格子。
七、对工程实践的推论:六条可执行结论
基于上面的公理化重建,我给出六条可直接落到工程决策上的推论:
推论 1:DPO 适合"离线偏好数据充足 + 任务域稳定"的场景——例如客服对话、产品问答。优势是训练简单、可重现;劣势是分布漂移敏感,需要 reference policy 定期刷新。
推论 2:GRPO 适合"在线采样便宜 + 任务有可验证信号"的场景——例如数学推理、代码生成、SQL 生成。优势是无 critic 的工程简化;劣势是对采样多样性敏感,需要温度扰动。
推论 3:RLVR 适合"任务有明确正确答案"的场景——例如定理证明、单元测试、数据清洗规则。优势是奖励可信;劣势是领域受限。
推论 4:完整 RLHF 适合"任务无明确正确答案 + 偏好数据丰富"的场景——例如创意写作、复杂对话。优势是表达力最强;劣势是工程成本最高、奖励幻觉风险大。
推论 5:避免"算法名 ≠ 实际配置"的工程语义冲突——文档里写"我们用 GRPO"但实际是用 GRPO + Verifier + Critic 的混合时,团队其他成员会误判算法的边界条件。建议在配置文件中明确写出三轴选择:
alignment:
reward_source: verifier # axiom 1
advantage_estimator: group_baseline # axiom 2
group_size: 16
verifier_weight: 1.0 # axiom 3
format_reward_weight: 0.1
prior_reward_weight: 0.0
推论 6:监控"群组均值方差"和"验证器覆盖率"两个核心指标——这两个指标直接对应公理 2 和公理 3 的退化风险。当群组均值方差趋近于 0(即所有回答奖励相近),说明采样多样性不足,需要提高温度或引入多样性奖励;当验证器覆盖率下降(即大量 prompt 落不到任何 上),说明任务分布漂移,需要更新验证器集合。
八、讨论:局限与未解之谜
本文的公理化重建有几个明确的局限:
局限 1:没有覆盖 Process Reward——长链推理任务里的步骤级奖励(PRM)在公理 3 里被简化为"格式奖励",这丢失了"中间步骤是否正确"的关键信号。完整的 PRM 应该被建模为"公理 3 的多步扩展",但本文未展开。
局限 2:没有覆盖 Multi-Turn RL——当对话是多轮的(Agent 场景),奖励往往是延迟的(最终任务完成才给奖励)。这种延迟奖励下,群组均值和 GAE 都需要重新设计,本文未涉及。
局限 3:隐式势函数的局限——公理 1 假设偏好可以被一个低维势函数刻画,但当偏好是"多维"(例如既要好又要快又要便宜)时,单个 无法同时表达所有维度,需要向量势函数或多任务学习。
未解之谜 1:DPO 和 GRPO 的最优组合是否存在——理论上可以构造一个"先 DPO 离线回归、再 GRPO 在线优化"的两阶段流水线,但当前没有公开实验证明这种组合显著优于单阶段方法。
未解之谜 2:验证器的可学习性边界——RLVR 把验证器当作固定规则,但如果某些"软约束"(例如回答的语气、礼貌程度)也需要打分,验证器就需要引入学习组件。这就把 RLVR 部分拉回了 RM 的方向。如何在保留可审计性的同时引入学习能力,是一个开放问题。
未解之谜 3:群组采样的最优规模曲线—— 太小方差大、 太大成本高,但最优 是否随任务难度单调变化、是否有 phase transition,都没有理论结果。
九、给研究者的下一步清单
基于本文的公理化框架,我给后续研究者提供以下具体的研究方向:
研究方向 1:向量势函数的偏好模型——把 Bradley-Terry 模型扩展为多维 ,每个维度对应一个偏好属性(正确性、简洁性、礼貌性)。这需要新的偏好数据标注协议(每条偏好对标注多个属性分数)和新的对偶 loss。
研究方向 2:自适应群组大小——当前的 是固定超参数,但理论上可以根据 prompt 难度动态调整 (简单 prompt 用小群组,复杂 prompt 用大群组)。这需要难度估计器和调度策略。
研究方向 3:验证器的元学习——如何从历史 数据中自动发现新的验证规则?这可以借助 LLM 自身(让 LLM 阅读一批样本并归纳规则),形成 "Verifier Synthesis" 的新范式。
研究方向 4:组合验证器——当前的验证器是单任务的(数学/代码/JSON),但现实任务往往是混合的(例如"用 JSON 格式输出数学证明")。如何组合多个验证器并解决冲突(两个验证器给出矛盾分数),是一个工程与理论都未解决的开放问题。
研究方向 5:三轴选择的自动发现——给定任务约束(偏好数据量、采样预算、可验证性),是否能自动搜索最优的三轴配置?这需要把当前的"算法选型经验"形式化为可搜索的设计空间。
研究方向 6:审计性形式化——RLVR 宣称"奖励可审计",但"可审计"目前是直觉概念。需要把"可审计性"形式化为可度量的属性(验证器覆盖度、规则可解释度、决策可追溯性),并建立审计性 vs 对齐效果的定量关系。
参考文献
- Rafailov, R., et al. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. NeurIPS 2023.
- Schulman, J., et al. (2017). Proximal Policy Optimization Algorithms. arXiv:1707.06347.
- Shao, Z., et al. (2024). DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. arXiv:2402.03300 (GRPO 原始论文).
- Ahmadian, A., et al. (2024). Back to Basics: Revisiting REINFORCE Style Optimization for Studying Scaling Laws of RL. arXiv:2404.04668.
- Ethayarajh, K., et al. (2024). KTO: Model Alignment as Prospect Theoretic Optimization. arXiv:2402.01306.
- Hong, J., et al. (2024). ORPO: Monolithic Preference Optimization without Reference Model. arXiv:2403.07691.
- Calandriello, D., et al. (2024). IPO: Identity Preference Optimization. arXiv:2310.12036.
- Lambert, N., et al. (2024). RewardBench: Evaluating Reward Models for Language Modeling. arXiv:2403.13787.
- Lightman, H., et al. (2023). Let's Verify Step by Step. arXiv:2305.20050 (Process Reward Model 原始论文).
- OpenAI (2024). Learning to Reason with LLMs. o1 System Blog.
- DeepSeek-AI (2025). DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. arXiv:2501.12948.
- Sutton, R. S., & Barto, A. G. (2018). Reinforcement Learning: An Introduction (2nd ed.). MIT Press.
- Bradley, R. A., & Terry, M. E. (1952). Rank Analysis of Incomplete Block Designs. Biometrika.
- Tversky, A., & Kahneman, D. (1979). Prospect Theory: An Analysis of Decision Under Risk. Econometrica.
- Schulman, J., et al. (2015). High-Dimensional Continuous Control Using Generalized Advantage Estimation. arXiv:1506.02438 (GAE 原始论文).
- Hu, J., et al. (2025). OpenRLHF: An Easy-to-use, Scalable and High-performance RLHF Framework. arXiv:2405.11143.
- Touvron, H., et al. (2023). LLaMA 2: Open Foundation and Fine-Tuned Chat Models. arXiv:2307.09288 (RLHF 在生产级模型中的应用).
- Bai, Y., et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073 (RLHF 变体: RLAIF).
- Christiano, P., et al. (2017). Deep Reinforcement Learning from Human Preferences. NeurIPS 2017 (RLHF 原始论文).
- Gao, L., et al. (2023). A Framework for Few-Shot Language Model Evaluation. arXiv:2304.14767 (lm-eval-harness, 验证器评测基础设施).