On Predicting the Post-training Potential of Pre-trained LLMs

Paper: arXiv:2605.11978 Code: 代码搜索未找到开源实现(已检索论文标题、RuDE2605.11978,并交叉使用 GitHub repo/code search)

1. Motivation (研究动机)

这篇论文针对的是一个很现实但长期缺少好工具的问题:在真正做 post-training 之前,怎样判断一个 base model 值不值得继续投入 SFT / RL 资源。现有实践里,团队常用 MMLU、GPQA、GSM8K 之类 knowledge benchmark,或者直接看 PPL,来估计 base model 的“底子”是否够好;但作者认为这些指标更多测的是知识回忆或语言建模拟合度,而不是 open-ended alignment 任务真正需要的 instruction following plasticity、复杂约束理解能力和对 human preference 的潜在可塑性。

论文想解决的具体问题是:给定一批 pre-trained base models 和目标 post-training 任务 ,能否构造一个只依赖 base model 本身的 scoring function ,使它对模型的排序尽量接近真正 post-training 后的 generative performance 排序。这个问题一旦可解,团队就不需要对多个候选 base models 逐个完整对齐训练一遍,能显著减少 trial-and-error 成本。值得研究的原因有三层。

第一,这是 foundation model 研发里的直接算力问题:选错 base model,后续昂贵的 alignment 训练基本都是沉没成本。第二,这是研究门槛问题:并不是所有团队都能负担“多模型并行 post-training 再择优”的流程。第三,这是方法论问题:如果真能在 pre-training 阶段就测到 alignment readiness,那么我们对“pre-training 到 post-training 之间到底转移了什么能力”会有更清楚的认识。

Figure 1 解读:这张图是整篇论文的起点。作者把 base model 在传统 benchmark 上的分数放在横轴,把对应 instruct model 在 post-training 后的 open-ended 表现放在纵轴,发现 Pearson correlation 很弱。也就是说,传统 benchmark 能说明模型“知道多少”,却很难说明模型“是否容易被对齐成好用的 instruct model”。这正是本文要补上的测量空白。

2. Idea (核心思想)

这篇论文最核心的洞见可以浓缩成一句话:**对于还不会稳定生成高质量答案的 base model,不如先测它能不能分辨高质量答案和带有细粒度缺陷的答案;这种 discriminative ability,比传统知识 benchmark 更接近它未来的 post-training potential。

** 更具体地说,作者提出 RuDE(Rubric-based Discriminative Evaluation):先为每个 query 构造一对高质量正样本 和“只在少数 rubric 上刻意出错、其余方面尽量保持一样好”的 hard negative ,再让 base model 比较两者的 conditional log-likelihood,检查它是否更偏好

如果一个 base model 在大量此类 pair 上都能稳定给 更高概率,作者认为这表明它已经 internalize 了一部分 alignment-relevant preference structure,因此更容易通过后续 post-training 变成强 instruct model。它和现有方法的根本差异有两点。与 MMLU / GPQA / GSM8K 这类静态知识测试相比,RuDE 测的是细粒度 rubric discrimination,不是知识回忆。

与直接让 base model 生成开放答案再打分的方案相比,RuDE 刻意绕开了 generation gap:base model 可能还不会“说对”,但它未必不会“看出哪个更对”。

3. Method (方法)

3.1 任务形式化:从“选 base model”写成一个 ranking 问题

作者先把问题形式化为:希望找到一个只依赖 base model 的评分函数 ,使得它诱导出的排序尽量和真实 post-training 后的 generative performance 一致: 这里 是模型在真正完成 post-training 后,在目标 open-ended task 上的生成表现。问题的难点在于:base model 在这个阶段往往还不会稳定 follow instruction,因此不能直接拿生成质量来估计。

为了解决这个 generation gap,作者把“生成能力”改写成“判别能力”。设 表示 base model 对 response 在 prompt 条件下给出的 conditional log-likelihood。给定一组 contrastive pairs ,定义 discriminative score: 作者提出的 GD-Potential Hypothesis(Generative-Discriminative Potential)是: 其中 是跨 base models 计算的 Pearson correlation。

直觉上,这个定义和 DPO / preference learning 的几何结构是相容的。post-training 本质上是在把模型分布往 preferred response 的方向推;如果 base model 一开始就倾向于给 preferred response 更高概率,那么它到对齐目标的 distributional shift 更小,所谓 alignment tax 也更低。因此,能否分辨 胜过 ,本身就是一个有信息量的 readiness signal。

3.2 整体框架:RuDE 如何构造“高保真正样本 vs. 精准降质负样本”

Figure 2 解读:Figure 2 展示了 RuDE 的三阶段流水线。第一阶段先生成一个通过全部 rubric 的 gold-standard response ;第二阶段不直接随机造差答案,而是只让模型在目标 rubric 子集上“精准犯错”,得到 hard negative ;第三阶段再把这两个 response 随机放到 A/B 位置,形成最终的 discriminative task。这个设计最关键的地方是:它不是比较“好答案 vs. 烂答案”,而是在尽量控制其余因素不变的前提下,只比较“是否在指定维度上微妙失误”。

RuDE 的核心不是单纯做 pairwise preference,而是尽量把 pair 的差异限制在可解释、可控制、可追责的 rubric violation 上。作者为此使用强 generator (Gemini-3-Pro)和严格 verifier (GPT-4.1),并把数据构造写成一个 verifier-guided iterative pipeline。

3.3 Phase 1:正样本 的 verifier-guided iterative refinement

第一阶段目标是生成一个完美满足全部 rubrics 的 response 。流程是:

  1. 给定 query 和完整 rubric 集 ,generator 先生成草稿
  2. verifier 逐条检查 是否满足每一条 rubric。
  3. 若有失败项 ,verifier 输出结构化反馈 ,说明失败原因。
  4. 重新喂给 generator,让它修正。
  5. 直到全部 rubric 都通过,得到

这里的 rubric 包含两类:

  • Positive Rubrics:必须出现的特征。
  • Negative Rubrics:必须避免的行为。

因此“满足所有 rubrics”的含义不是单纯全部为真,而是:正向要求必须出现,负向要求必须不出现。

这个阶段的关键价值不是“造一个好答案”本身,而是把正样本的质量拉到足够稳定的上界。否则后续任何判别结果都可能混入“正样本其实也不够好”的噪声,导致 base model 比较的是两个都有问题的 response。

3.4 Phase 2:hard negative 的 controlled degradation

第二阶段是整篇方法最关键、也最有新意的地方。作者不是随机抽低质量答案,也不是简单改写一小段文本,而是定义一个 target violation subset ,要求 generator 只在这几条 rubric 上犯错,同时保持其他 rubric 继续通过。

这个 controlled degradation 由三个约束保证:

  1. Length Constraint:要求 ,避免模型只靠“长短差异”来猜。
  2. Dual Verification:verifier 必须同时检查两件事:
    • 目标违规项是否真的被违反;
    • 非目标项是否仍然严格满足。
  3. Refinement Loop:如果 没有成功制造目标错误,或顺带破坏了本应保留的 rubric,verifier 就输出结构化错误分析,再让 generator 继续修。

这一步的难点在于“高保真欺骗”: 不能显得粗糙,否则任务太简单;但又必须在指定维度上真实错误,否则任务就失去可解释性。作者后面的 ablation 其实正是在证明:如果不用 controlled degradation,而是改用更直觉的构造法,任务不是太难就是太容易。

3.5 Phase 3:contrastive formulation 与 base-model discrimination

最后阶段把 变成一个二选一 discriminative task。作者随机把 放在 A 或 B,避免 position bias,然后要求 base model 依据 conditional probability 判断哪个 response 更优。最终评估不看自然语言解释,只看: 是否成立。

这一设计有两个好处。第一,它避免了让 base model 直接生成高质量 open-ended response。第二,它把评估信号压缩成可统计的 pairwise accuracy,因此可以跨模型直接比较,也方便计算 Pearson correlation。

3.6 4C Taxonomy:把“alignment readiness”拆成四类能力

作者没有把 rubric 当成一堆平铺直叙的检查项,而是系统化成 4C Taxonomy,用来解释“模型在哪一类能力上准备得更充分”。

DimensionSub-Category含义
CompetenceFactuality事实准确性,避免 hallucination
CompetenceLogic逻辑规则、因果关系是否正确
CompetenceProcedure是否遵循标准流程与步骤顺序
ContentCompleteness是否覆盖用户问题的所有组成部分
ContentCoherence语言是否流畅、可读、语法正确
ContentRelevance是否紧扣主题,不发生无关发散
ControlFormat是否满足 JSON / Markdown / 表格等格式约束
ControlLength是否满足字数或长度要求
ControlScope是否满足 mandatory inclusion / exclusion constraints
ComplianceSafety是否遵守安全边界、拒绝有害请求
CompliancePersona是否 adopt 指定角色、语气、交互风格
ComplianceUtility是否真正帮助用户完成意图

这个 taxonomy 的意义在于,它把“post-training potential”从一个单一分数拆解成四类更可诊断的 readiness。比如某个 base model 可能很 fluent,但在 Control 上很弱;另一个模型可能很安全、很 procedural,但写作风格一般。RuDE 不只是做排序,也试图解释排序背后的结构。

3.7 构造流程的实际统计与方法直觉

appendix 进一步给了这个构造流程的 operational statistics,这对理解方法是否可用很重要:

  • Phase 1(生成 )最多允许 5 轮 refinement,平均 2.3 轮,失败率 <3%
  • Phase 2(生成 )同样最多 5 轮,但平均需要 3.1 轮,失败率约 8%
  • 失败主要来自两类:目标 violation 不够明显,或非目标 rubric 被意外破坏。
  • 所有失败样本都会被 discard,不会进入最终数据集。

这组数字说明 controlled degradation 并不是一个“轻松的 prompt trick”,而是真有工程难度的 data synthesis pipeline。也正因为它难,RuDE 构造出来的 pair 才更接近“局部差一点点,但总体都很像好答案”的高质量判别样本。

3.8 Pseudocode(基于论文与 arXiv source 描述)

注:代码搜索未找到开源实现。以下伪代码基于论文正文与 arXiv LaTeX source 描述,不对应 released repository 中的真实函数/类名。

3.8.1 Positive sample synthesis

def synthesize_positive_sample(query, rubrics_all, generator, verifier, max_rounds=5):
    draft = None
    feedback = None
 
    for round_id in range(max_rounds):
        draft = generator.generate(
            query=query,
            rubrics_all=rubrics_all,
            failed_rubrics=None if feedback is None else feedback["failed_rubrics"],
            feedback=None if feedback is None else feedback["analysis"],
            previous_draft=draft,
        )
 
        verdicts = verifier.check_all(query=query, response=draft, rubrics=rubrics_all)
        failed = [rubric for rubric, ok in verdicts.items() if not ok]
        if not failed:
            return {
                "positive_sample": draft,
                "rounds": round_id + 1,
                "status": "success",
            }
 
        feedback = {
            "failed_rubrics": failed,
            "analysis": verifier.explain_failures(query=query, response=draft, failed_rubrics=failed),
        }
 
    return {
        "positive_sample": None,
        "rounds": max_rounds,
        "status": "discard",
    }

3.8.2 Controlled degradation for hard negatives

def synthesize_hard_negative(
    query,
    rubrics_all,
    positive_sample,
    target_violations,
    generator,
    verifier,
    max_rounds=5,
):
    target_length = token_length(positive_sample)
    draft = None
    feedback = None
 
    for round_id in range(max_rounds):
        draft = generator.generate_negative(
            query=query,
            rubrics_all=rubrics_all,
            target_violations=target_violations,
            target_length=target_length,
            failed_rubrics=None if feedback is None else feedback["failed_rubrics"],
            feedback=None if feedback is None else feedback["analysis"],
            previous_draft=draft,
        )
 
        verdict_target = verifier.check_violated(
            query=query,
            response=draft,
            rubrics=target_violations,
        )
        preserved = [r for r in rubrics_all if r not in target_violations]
        verdict_preserved = verifier.check_all(
            query=query,
            response=draft,
            rubrics=preserved,
        )
 
        target_ok = all(verdict_target.values())
        preserved_ok = all(verdict_preserved.values())
        length_ok = abs(token_length(draft) - target_length) <= 0.05 * target_length
 
        if target_ok and preserved_ok and length_ok:
            return {
                "negative_sample": draft,
                "rounds": round_id + 1,
                "status": "success",
            }
 
        failed = []
        failed.extend([r for r, ok in verdict_target.items() if not ok])
        failed.extend([r for r, ok in verdict_preserved.items() if not ok])
        if not length_ok:
            failed.append("length_constraint")
 
        feedback = {
            "failed_rubrics": failed,
            "analysis": verifier.explain_degradation_errors(
                query=query,
                response=draft,
                target_violations=target_violations,
                preserved_rubrics=preserved,
                target_length=target_length,
            ),
        }
 
    return {
        "negative_sample": None,
        "rounds": max_rounds,
        "status": "discard",
    }

3.8.3 Contrastive formulation

import random
 
 
def build_contrastive_instance(query, positive_sample, negative_sample):
    if random.random() < 0.5:
        option_a, option_b = positive_sample, negative_sample
        answer = "A"
    else:
        option_a, option_b = negative_sample, positive_sample
        answer = "B"
 
    return {
        "query": query,
        "option_a": option_a,
        "option_b": option_b,
        "preferred_label": answer,
    }

3.8.4 Discriminative scoring and 4C profiling

def evaluate_base_model(model, contrastive_dataset):
    correct = 0
    by_dimension = {}
 
    for item in contrastive_dataset:
        logp_a = model.conditional_logprob(item["option_a"], prompt=item["query"])
        logp_b = model.conditional_logprob(item["option_b"], prompt=item["query"])
        predicted = "A" if logp_a > logp_b else "B"
        correct += int(predicted == item["preferred_label"])
 
        for dim in item.get("dimensions", []):
            by_dimension.setdefault(dim, {"correct": 0, "total": 0})
            by_dimension[dim]["correct"] += int(predicted == item["preferred_label"])
            by_dimension[dim]["total"] += 1
 
    overall = correct / len(contrastive_dataset)
    dimension_scores = {
        dim: stat["correct"] / stat["total"]
        for dim, stat in by_dimension.items()
    }
    return overall, dimension_scores

3.9 Code state / 代码状态与映射

注:代码搜索未找到开源实现。以下映射表退化为“论文组件 可核对的 arXiv source 锚点”,方便后续复查,不是 released code 的类/函数映射。 Code reference: 无公开仓库;下表基于 arXiv source 2605.11978v1(2026-05-12)与本地检索结果,而非 commit 锚点。

Paper ConceptPublic implementation statusPaper / arXiv source anchor
Post-training potential ranking problem未开源section/2_task_formulation_v3.tex
S_dis discriminative score 与 GD-Potential hypothesis未开源section/2_task_formulation_v3.tex
Three-phase RuDE construction pipeline未开源section/3_method.tex, figure/overview.tex
4C Taxonomy未开源section/3_method.tex, table/rubrics.tex
Main benchmark table / domain comparisons未开源section/4_experiment.tex, table/main_1_v2.tex, table/main_2.tex
RL validation / appendix ablation / robustness未开源section/5_analysis.tex, section/9_appendix.tex, figure/rl.tex

论文公式与 released code 实现差异:代码搜索未找到开源实现,因此无法比较 released code 与论文公式/实现差异。训练配置数字(2-shot、max_output_length=8192temperature=0、RL 200 steps、8×A100 80GB)均来自论文正文与 appendix,而不是 actual launch script。

4. Experimental Setup (实验设置)

4.1 数据集与规模

RuDE 覆盖四个 open-ended domain,总计 28,683 个 contrastive samples,平均长度 11,566 tokens。难度通过负样本中注入的 violation 数量 控制:WritingBench 用 ,其他三个域用 ,其中 最难。

| Domain | Dataset | | Samples | Avg. Tok. | | --- | --- | ---: | ---: | ---: | | Medical Interaction | HealthBench | 1 | 1,597 | 3,968 | | Medical Interaction | HealthBench | 3 | 1,031 | 3,480 | | Medical Interaction | HealthBench | 5 | 1,045 | 3,912 | | Legal & Finance | PRBench | 1 | 3,848 | 20,194 | | Legal & Finance | PRBench | 3 | 4,043 | 10,776 | | Legal & Finance | PRBench | 5 | 4,542 | 11,724 | | Complex Instruction | AdvancedIF | 1 | 1,930 | 6,163 | | Complex Instruction | AdvancedIF | 3 | 1,349 | 8,111 | | Complex Instruction | AdvancedIF | 5 | 1,559 | 4,833 | | Creative Writing | WritingBench | 1 | 2,561 | 14,439 | | Creative Writing | WritingBench | 2 | 2,523 | 16,222 | | Creative Writing | WritingBench | 3 | 2,655 | 23,913 |

数据选择上有两个值得记住的筛选:

  • HealthBench 只取 Hard subset,因为 Consensus subset 平均只有 2.19 条 rubric,不够做 hard negative;Hard subset 平均 11.85 条 rubric。
  • AdvancedIF 去掉了 System Prompt Modification subset,因为 pre-trained base model 通常没有 system role,这类任务不适合本文框架。

4.2 比较对象与 baseline proxies

这篇论文的“比较”分两层。 第一层是 predictive proxy baseline:作者拿传统 pre-training proxy 跟 RuDE 做对比,包括知识 benchmark(图中明确出现的有 MMLUGPQAGSM8K)以及 appendix 中的 PPL。这些 proxy 的目标是预测 post-training 后的生成表现,但论文表明它们相关性不稳定或偏弱。 第二层是 被评测的 base model family。作者评了 16 个 base models,覆盖 Dense 与 MoE、4B 到 671B/235B/1T 量级,主要包括:

  • DeepSeek-V3.1
  • Gemma3-4B / 12B / 27B
  • Qwen2.5-7B / 14B / 72B
  • Qwen3-4B / 8B / 14B / 30B-A3B / 235B-A22B
  • Seed-OSS-36B
  • GLM-4.5-Air / GLM-4.5
  • Kimi-K2

对应的 post-training performance 来自这些 base models 的 instruct-tuned counterparts 在匹配 open-ended benchmark 上的表现,因此验证的是“同一家族 base instruct”之间的 predictive relationship。

4.3 评价指标

作者使用的核心指标有四类:

  • Accuracy (Acc):base model 是否给 更高 conditional log-likelihood。
  • Pearson correlation (, ):RuDE 分数与 instruct-tuned counterpart generative performance 的相关性。
  • 95% Confidence Interval:通过 10,000 次 bootstrap 计算。
  • Human verification:随机抽 100 个样本,人审正样本是否满足全部 rubric、负样本是否只违反目标 rubric,结果与 pipeline label 的一致率为 92%

4.4 训练与实现配置

论文给出的配置大多是 evaluation pipeline 层面的,而不是完整公开 training script:

  • Discriminative evaluation 使用 2-shot prompting,并且 A/B exemplar 平衡,以降低 in-context position bias。
  • max_output_length=8192temperature=0,追求完全 deterministic。
  • 受控 RL 验证实验选了 Qwen2.5-7B、Qwen2.5-14B、Qwen3-4B 三个模型,在 HealthBench 上训练 200 steps
  • 硬件是单机 224 CPU cores + 2,048 GB RAM + 8× NVIDIA A100 (80GB)
  • 全部 16 个 base models、4 个 domain、全部 difficulty level 的 discriminative evaluation 总共约 100 GPU-hours
  • 论文未详细说明 RL 的 learning rate、batch size、optimizer、clip range 等超参数,因此这些值不能从文中可靠恢复。

5. Experimental Results (实验结果)

5.1 主结果:RuDE 的排序能力与 domain specialization

先看主表。作者在 WritingBench 取 ,其余三个域取 ,得到如下结果:

ModelADHEWRPRAVG
Gemma3-4B51.051.441.337.945.4
Gemma3-12B71.357.455.348.258.1
Gemma3-27B74.965.257.349.961.8
Qwen3-4B64.453.950.145.753.5
Qwen3-8B75.660.660.049.461.4
Qwen3-14B77.762.962.951.463.7
Qwen3-30B-A3B74.562.859.049.861.5
Qwen3-235B-A22B85.872.768.556.570.9
Qwen2.5-7B43.440.742.139.541.4
Qwen2.5-14B69.963.659.950.060.9
Qwen2.5-72B80.567.157.451.864.2
Seed-OSS-36B86.676.863.058.471.2
GLM-4.5-Air73.466.457.950.162.0
GLM-4.585.778.165.072.075.2
Kimi-K283.577.780.157.674.7
DeepSeek-V3.193.184.373.164.678.8

这个表能直接读出三条主结论:

  1. 总体最强的是 DeepSeek-V3.1,平均 78.8,在 AdvancedIF 和 HealthBench 上分别达到 93.184.3
  2. GLM-4.5 是 PRBench specialist,PR 列达到 72.0,显著高于 DeepSeek-V3.1 的 64.6
  3. Kimi-K2 是 WritingBench specialist,WR 达到 80.1,高于 DeepSeek-V3.1 的 73.1 与 Qwen3-235B-A22B 的 68.5

这说明“更大模型通常更强”仍然成立,但并不意味着所有 domain 都由同一个模型统治。作者据此强调,pre-training data distribution 和 architecture bias 会在 creative writing、legal/finance adherence 等场景里留下清晰的 specialization 痕迹。

Figure 3 解读:Figure 3 是论文最核心的证据图。横轴是 base model 在 RuDE 上的 discriminative score,纵轴是其 instruct-tuned counterpart 在对应 open-ended benchmark 上的 generative score。作者报告多张子图的 Pearson correlation 普遍很高,其中 AdvancedIF 达到 0.91)。图中的右上角持续被 DeepSeek-V3.1、GLM-4.5、Qwen3-235B-A22B 这类强 base models 占据,说明 RuDE 的排序和真实 post-training 排序高度一致。

5.2 难度控制有效: 越小,任务越接近“真细节理解”

Figure 4 解读:Figure 4 展示了负样本中 violation 数量对难度的影响。当 增大时,负样本更像“明显出错”,模型更容易分辨;当 缩小到 1 时,差异只剩一个细节错误,任务就显著更难。论文给出的具体例子是:在 AdvancedIF 上,DeepSeek-V3.1 从 时的 93.1% 下降到 时的 70.1%。这证明 RuDE 不是一个容易饱和的 benchmark,而是能通过 violation granularity 连续调节难度。

作者还给出总体平均现象:AdvancedIF 的平均表现从 74.8%,下降到 53.2%。因此 RuDE 测到的并不是“能不能排除特别差的答案”,而是“能不能抓住高质量答案中埋藏的细微违规”。

5.3 PRBench 细分结果:GLM-4.5 的专业域优势非常明显

PRBench 的分解表进一步说明“平均分”掩盖了强 specialization。GLM-4.5 在 Finance / Finance-Hard / Legal / Legal-Hard 的 12 个子格子里全部第一

  • Finance: 60.0 / 62.0 / 75.0
  • Finance (Hard): 59.0 / 59.6 / 68.3
  • Legal: 65.0 / 69.9 / 75.0
  • Legal (Hard): 63.8 / 67.8 / 69.7
  • 12 子集平均:66.3

相比之下:

  • DeepSeek-V3.1 的 12 子集平均是 56.2
  • Kimi-K2 的 12 子集平均是 52.3
  • Seed-OSS-36B 的 12 子集平均是 53.6

这部分结果和作者的解释一致:某些 base model 可能没有最高的全局平均分,但在专业语域、长文档逻辑一致性和术语遵循上更有“领域直觉”。

5.4 4C 维度分析:不同模型的“alignment readiness”不是同一种形状

作者把 aggregate accuracy 进一步拆成 4C 维度分数:

ModelComplianceCompetenceContentControlAVG
Qwen2.5-7B39.635.237.434.736.72.2
Qwen3-4B43.142.547.039.343.03.1
Qwen3-235B-A22B56.851.659.056.355.93.1
GLM-4.558.361.056.957.458.41.9
Kimi-K258.156.050.957.455.63.2
DeepSeek-V3.163.059.562.460.861.41.5
Overall AVG52.049.949.349.850.3

这张表能支持几条非常有信息量的观察:

  • Compliance 是全局最强维度,整体平均 52.0,高于 Competence 49.9、Control 49.8、Content 49.3
  • DeepSeek-V3.1 不只是总分高,而且 4C 更均衡,比许多 top-tier 模型更平。
  • Control 是小模型最明显的短板。Qwen3-4B 的 Control 只有 39.3,Qwen2.5-7B 更低到 34.7
  • Qwen3-4B 全面优于更大的 Qwen2.5-7B,说明 generational leap 可能比单纯参数量更重要。

Figure 8 解读:Figure 8 再往下钻到了更细的 atomic sub-rubrics。作者不是只说某模型在 4C 哪一类强,而是继续看 Factuality、Procedure、Coherence、Format、Persona 这些原子项的 trade-off。图中最重要的发现是:很多模型的强项不是“全方面更好”,而是在某些子能力上特别突出,同时伴随另一类能力的牺牲。

正文里点出的几个例子都很有代表性:

  • GLM-4.5Factuality=0.64Procedure=0.63 上很强,但 Coherence=0.35 明显偏低,像是“技术正确但语言不够顺”。
  • GLM-4.5-Air 刚好反过来,Coherence=0.80Relevance=0.78 很强,但 Factuality=0.48 较弱,作者把它解读成 distillation 更保 style、少保 substance。
  • Kimi-K2 在结构化约束上非常像 specialist,Format=0.64Persona=0.70 都是亮点,这和它在 WritingBench 的领先是一致的。

5.5 RL 验证:RuDE 分高的 base model,后续 RL 学得更快也更高

Figure 5 解读:Figure 5 是把“静态相关性”变成“动态训练轨迹”的关键实验。作者在 HealthBench 上对 Qwen2.5-7B、Qwen2.5-14B、Qwen3-4B 做了 200 steps rubric-based RL。曲线显示:Qwen2.5-14B 最终最好;尽管 Qwen3-4B 比 Qwen2.5-7B 更小,但它学习更快、最终也更强。这正好和它们在 RuDE 上的 discriminative ranking 一致。

这组结果很重要,因为它说明 RuDE 不只是和最终结果“统计相关”,而是能预测谁在真正的 post-training dynamics 里更 data efficient。作者把这一点解读为:高 RuDE 分的模型,本身已经拥有更好的 preference-sensitive internal structure,因此后续 RL 只是在“把已有结构拉出来”,而不是从零塑形。

5.6 Ablation、robustness 与 appendix 发现

作者对数据构造方法本身也做了很强的 ablation,结论非常清楚:不用 controlled degradation,RuDE 就失去辨识力。

Ablation A: rejection sampling from natural generations

做法是:从强模型自然采样 32 个答案,拿最好和最差的做 pair。结果过难:

  • GPT-5 自己区分自己生成的 best vs. worst output,只有 27.1%
  • Qwen3-235B-Thinking 自己做这个任务,也只有 27.8%
  • Gemini-2.5-Pro 是 34.7% / 14.2%(取决于 generator)
  • Qwen3-30B-A3B-Base 只有 12.4% / 7.0%
  • Qwen3-235B-A22B-Base 也只有 29.1% / 20.9%

作者的解释是合理的:自然采样得到的好/坏答案会同时在长度、句式、词汇分布上乱飘,真正的 rubric violation 反而埋得太深,导致整个任务“失真地太难”。

Ablation B: locate-and-rewrite

做法是:先定位一段文本,再直接重写这段以制造错误。结果又过于简单:

  • Qwen3-30B-A3B-Base:79.2%
  • Qwen3-235B-A22B-Base:80.6%

两者只差 1.4 个点,几乎无法区分一个 30B active parameter 模型和一个 235B-A22B 模型的 post-training potential。作者据此认为:只做局部 rewrite 会让错误太显眼,benchmark 失去 discrimination power。

Robustness: position bias 基本被控制住了

AdvancedIF 上把 A/B 顺序互换以后,整体平均从 64.1 变成 63.4,平均偏差只有 +0.6。这说明模型的得分主要来自 semantic understanding,而不是单纯偏好选前一个选项。

一个值得注意的小例外是 Qwen3-14B,它的前后向差异达到 +8.6,说明单模型层面仍可能存在 residual position sensitivity,但整体上不影响论文的主结论。

Confidence intervals 与 PPL 对照

作者用 10,000 次 bootstrap 给全部主要指标加了 95% confidence interval,并指出 top-tier 和 mid-tier 之间存在明显区分,不是 sampling variance 偶然造成的。

与此同时,appendix 还给了 PPL 的对照图。PPL 在某些子任务上相关性很强,但跨域不稳定:

  • AdvancedIF:corr=0.93
  • PRBench-Finance-Hard:corr=0.83
  • HealthBench:corr=0.04
  • PRBench-Legal:corr=0.09

Figure 17 解读:Figure 17 说明 PPL 不是完全没用,但它的 predictiveness 很不稳定。某些域里它确实能跟 post-training performance 对上,但一换到 safety-critical 或专业推理任务就容易失灵。和 Figure 3 对比后可以看到,RuDE 的优势不在于“永远比 PPL 高”,而在于它对 open-ended alignment task 的相关性更稳定、更可迁移、更可解释

5.7 局限性与总体结论

作者没有单列一个系统化的 Limitations section,所以不能替作者虚构失败模式;但从正文和 appendix 可以明确读出的边界至少有四个:

  1. 数据构造依赖强 generator + 强 verifier。RuDE 本身不是零成本评估,尤其 controlled degradation 需要多轮迭代。
  2. 构造流程有非零失败率。Phase 1 失败率 <3%,Phase 2 约 8%,说明“精准造错而不顺带破坏其他维度”本身很难。
  3. 最难设置下仍然非常挑战。例如 AdvancedIF 在 时,即使是 DeepSeek-V3.1 也只有 70.1%,说明 benchmark 仍远未饱和。
  4. 代码未公开。这意味着当前读者能复核论文公式、表格、LaTeX source 和 figure,但还不能把它对照到 released implementation、training config 或真实 evaluation script。

总体上,这篇论文做成了三件事。第一,它把“预测 post-training potential”正式定义成一个可验证任务。第二,它提出了一个具有很强工程可操作性的 discriminative benchmark 构造流程。第三,它用主相关性实验、RL 训练轨迹、4C 维度诊断和构造 ablation 证明:base model 的 rubric-based discrimination ability,确实是比传统 knowledge benchmark 更接近真实 alignment readiness 的信号。