← 返回 2026-05-04

Themis:面向灵活多准则打分的多语言鲁棒代码奖励模型训练 Themis: Training Robust Multilingual Code Reward Models for Flexible Multi-Criteria Scoring

Indraneil Paul, Glavaš Glavas, Iryna Gurevych 📅 2026-05-01 👍 3 2026-07-13 08:36
Bradley-Terry 代码奖励模型 偏好学习 多准则评估 多语言 开源RM

用 35 万条代码偏好对训练一套能跨 8 种语言、按 5 个质量维度灵活打分的开源代码奖励模型

前置知识

奖励模型 (Reward Model, RM)

在大语言模型后训练中用来对模型输出打一个标量分数的代理模块,分数代表"这个回答有多好"。它通过学习人类偏好对 (chosen vs. rejected) 得到 Bradley-Terry 形式的二分类目标 $\mathcal{L}_{\text{BT}} = -\mathbb{E}\log\sigma(r_\theta(x, y_c) - r_\theta(x, y_r))$,其中 $r_\theta$ 是标量头、$\sigma$ 是 sigmoid。RM 既可以用作 RLHF 中的策略奖励,也可以用作推理时 test-time scaling 的打分器。在代码领域,传统 RM 几乎只能评"功能是否正确",因为大家依赖执行反馈。

整篇 Themis 论文的目标就是构造和训练代码 RM。如果不懂 RM 的输入 (prompt, code)→ 输出 (scalar reward) 接口、Bradley-Terry 损失的意义、以及 RM 在后训练 pipeline 中的位置(替代或补充执行反馈),就理解不了作者为什么强调"多准则 + 多语言"对代码后训练是瓶颈。

Bradley-Terry 偏好学习

一种把成对偏好 (y_c 优于 y_r) 建模为标量分差的方法:假设每个候选有一个潜在的"实力值" $r_\theta(x, y)$,那么 chosen 战胜 rejected 的概率是 $P(y_c \succ y_r) = \sigma(r_\theta(x, y_c) - r_\theta(x, y_r))$。Themis 在 PT 和 PM 两个阶段都使用同一个 BT 目标,并叠加一个针对 chosen response 的条件语言建模正则项 $\lambda \log p_\theta(y_c \mid p, x)$ 和一个奖励幅度正则项 $\mu \cdot (r_\theta(p,x,y_c) + r_\theta(p,x,y_r))^2$,以缓解标量 RM 在偏好范围外校准差的问题。

论文 §4.2 给出的总训练目标 $\mathcal{L}$ 几乎全文都在用 BT。理解 BT 才能明白为什么作者说"训练目标在指定 reward 尺度时是欠定的 (under-specified)",以及为什么 naive 的"模型合并 + BT"会失败——不同 RM 的 reward 尺度不一致。

参考无关 (reference-free) 评估与 RM-as-a-Judge

RM-as-a-Judge 指让一个语言模型或奖励模型直接给候选回答打一个分数,不需要 ground-truth reference answer。参考无关设置 (reference-free) 对代码特别难,因为没有参考解答也没有可执行测试。Themis 的卖点就是:模型足够好时它能直接当评判器,无需任何执行信号,对不可执行的代码(Rust/Go 等模块级编译语言、有外部依赖的代码)也能评分。

论文反复强调"execution feedback 局限"——测试用例执行只能在自包含可执行代码上做,限制很大。如果不理解 reference-free 评分和 LM-as-a-judge 的范式,就抓不住 Themis 试图替代执行反馈的核心动机。

GitHub commit mining 与代码偏好对构造

论文用一段端到端流水线从开源 GitHub 仓库的单文件 commit 中挖掘"隐式偏好对":(1) 用 frontier LM 把自然语言搜索词变成搜索 query;(2) 用 ModernBERT 训练准则分类器召回高置信度 commit;(3) 拉取 2019-06 至 2021-01 期间已合并 PR 的 commit 作为人类验证;(4) 多 LM 投票剔除多意图 commit;(5) 用 LM 反向合成 inverse instruction。一段 bug-fix commit 就自动成为"chosen=修复版 / rejected=有 bug 版"的偏好对。

Themis-CodeRewardBench 与 Themis-CodePreference 共 35 万+偏好对全部来自这条流水线,是论文资源贡献的核心。读论文时必须先吃透这套流水线,才能理解"35 万偏好对"的规模、多样性,以及为何它跨 5 准则 8 语言都能铺开。

多准则 / 多任务学习的干扰 (interference) 与解耦

当一个标量模型同时学多个目标 (functional correctness、效率、安全、可读性...) 时,损失会在不同准则之间"抢梯度",导致某些准则被牺牲。Themis 用一种轻量解法:把评测准则作为 system prompt $p$ 注入,约 15% 样本不带 prompt,20% 样本给"全准则"提示,剩下的给"单一准则"提示,靠训练时 prompt 引导模型在推理时按条件切换偏好。论文显示这比 model merging、专属 head、模型集成都更有效。

RQ2 整章都在分析"多准则干扰"问题。这是论文方法的核心设计——既不是给每个准则训一个模型,也不是简单多任务共享参数。如果不懂 prompt-conditioned 解耦,就理解不了 §5.2 里 88.16 vs 87.88% 这种细微差异的意义。

研究动机

代码大模型的后训练几乎完全依赖执行反馈:要么用现成的 test-case,要么用 LM 合成 test-case(多模型投票,互相验证),再用 I/O 是否匹配作为奖励。这种范式有三个硬伤:第一,需要自包含、可独立执行的代码,而真实仓库里大部分代码依赖外部库、跨文件、跨模块,无法直接跑——在 Rust/Go/Swift 这种模块级编译语言上几乎完全失效;第二,合成 test-case 依赖多 LM 投票的循环共识机制,已有工作 (Wang et al., 2025e; Cao et al., 2025) 表明这类 test-case 经常很脆、有错误;第三,测试执行只看 I/O 匹配,看不到非功能性维度——执行时间、内存、安全漏洞、可读性、可维护性全部被忽略。同时,现有的代码奖励数据集 (HumanEvalPack, MBPP+, CodeContests) 几乎全是 valid-vs-buggy Python 对,且源自很老的基础竞赛题 (Austin et al., 2021; Chen et al., 2021),饱和度高、分布窄,根本测不出 RM 在真实场景的强弱。作者在 Themis-CodeRewardBench 上对 45 个现有 RM 打分时发现:即使是 70B 的 Nexusflow/Athene-RM-70B 在 security hardness 上也只有 78.30 分,math RM (Qwen2.5-Math-RM-72B) 在非功能准则上掉到 55-58 分,而 Rubric 类 RM (R3-Qwen3-14B) 在 security 上仅 30.17 分,几乎是随机猜测;通用 LMUnit-qwen2.5-72b 整体平均只有 27.89 分 (Functional Correctness 39.10)。换句话说,今天最强的 RM 也只能在"判别功能正确性"这一个窄轴上勉强能用。

本文的目标是论文目标有三层:其一,建立一个跨越 8 种编程语言 (C, C#, C++, Go, Java, JavaScript, Python, Ruby) 和 5 个代码质量维度 (Functional Correctness, Execution Efficiency, Memory Efficiency, Readability & Maintainability, Security Hardness) 的代码 RM 评测基准 Themis-CodeRewardBench,约 8.9k 偏好对,把"测出 RM 的真实能力差距"这件事做到位;其二,发布目前规模最大的开源代码偏好数据集 Themis-CodePreference,含 350k+ 偏好对,以及 110k+ 的通用偏好数据 Themis-GeneralPreference,作为训练资源;其三,训练一套从 0.6B 到 32B 的开源多语言多准则代码 RM 套件 Themis-RM,在 Themis-CodeRewardBench、listwise re-ranking、adversarial robustness 三个层次上同时建立 SOTA。

与已有工作不同的是,切入角度有两个独到之处。第一,不再把 RM 当成"代码执行的代理",而是当成"代码质量的独立评估器"——只要 RM 训练数据足够多样,模型自身的世界知识就能跨语言、跨准则打分,从而绕开执行反馈的所有局限(不可执行、需 test-case、I/O only 等)。第二,把"多准则偏好学习"视作一种可以通过 prompt 工程来解耦的问题:用 system prompt 指定当前关心的准则,配合训练时混合 (15%/20%/65%) 的 prompt 采样策略,让一个标量 RM 同时承担多个评判轴。作者用大量实验证明 (Table 2 RQ2 ablations),这套"prompt-conditioned 多任务"方案比模型合并、专属 head、模型集成都更有效——Themis-RM-8B 合并 5 个单准则模型后反而掉到 77.07%,比多任务基线 87.88% 还低 10 分以上。

核心方法

Themis 的整体技术路线可以一句话概括:先从 GitHub commit 里挖出海量、跨语言、跨准则的代码偏好对,再用一个统一的"准则 prompt + Bradley-Terry + 条件 LM 正则 + 幅度正则"目标训练一套 Qwen3 基座,最后在自建的 Themis-CodeRewardBench 上验证 RM 真的能用。直觉上,作者认为"如果一个 RM 见过的代码偏好足够丰富,它就能像人一样按用户指定的任意维度去评分",所以方法的关键不在损失函数本身(还是 BT),而在于数据规模和构造方式。技术路线分四步:(1) 用 commit mining 流水线产出 35 万+偏好对,(2) 预训练阶段先用 11 万+通用偏好对齐通用人类偏好概念,(3) 在代码偏好数据上做第二阶段训练并加入两条正则,(4) 用准则 system prompt 引导模型在推理时按需切换评判维度。

核心创新是"把多准则偏好学习 + 多语言泛化 + 不可执行代码评测"这三个原本被视为独立的问题,统一在一个标量 RM 框架下解决。和已有方法的本质区别有三点:(1) 数据层:以前所有代码 RM 数据集都是 valid-vs-buggy Python 对,规模最多几万;Themis 把 GitHub commit 这种天然带人类意图标注的信号转成偏好对,覆盖 5 准则 8 语言共 35 万规模,是 CodeContests 类数据集的 100 倍以上。(2) 训练目标层:在 BT 主损失之外显式加入"条件语言建模正则" $\lambda \log p_\theta(y_c \mid p, x)$(让 RM 同时学会"为什么 chosen 是好的")和"奖励幅度正则" $\mu \cdot (r_\theta(p,x,y_c) + r_\theta(p,x,y_r))^2$(让打分尺度不至于发散),避免标量 RM 的常见校准问题。(3) 推理接口层:通过 system prompt $p$ 注入准则描述,让同一个 RM 既能按"功能正确性"排,也能按"内存效率"排,无需 retrain、无需 model merge、无需 ensembling。这种设计同时解决了多准则干扰和模型规模爆炸两个痛点。

方法步骤详情

训练流程共两步 + 一条数据流水线。第一步:构造偏好数据 (Section 3)。从 GitHub Archive 拉 2019-06 至 2021-01 期间已合并 PR 的 commit,按 15+ stars / 5+ contributors / 10+ issues 过滤仓库;用 frontier LM (Kimi, DeepSeek, MiniMax) 生成 5 个准则的搜索 query;训练 ModernBERT 准则分类器召回高置信 commit;多 LM 投票剔除多意图;再用 LM 反向合成 inverse instruction,产出 Themis-CodePreference (350k+) 和 Themis-CodeRewardBench (8.9k) 两份数据。Test split 与训练 split 在仓库和时间上都做了严格 disjoint。第二步:偏好预训练 PT (Section 4.1)。用 110k+ 的 Themis-GeneralPreference(混合自然语言和代码偏好),训练 2 个 epoch,让 RM 先学会通用的人类偏好概念 (relevance, helpfulness, harmlessness)。第三步:偏好建模 PM (Section 4.2)。用 Themis-CodePreference 训练 1 个 epoch,损失函数是 $\mathcal{L} = -\mathbb{E}_{(p, x, y_c, y_r)\sim \mathcal{D}} [\log\sigma(r_\theta(p, x, y_c) - r_\theta(p, x, y_r)) + \lambda \log p_\theta(y_c \mid p, x) + \mu \cdot (r_\theta(p, x, y_c) + r_\theta(p, x, y_r))^2]$,其中 $\sigma$ 是 sigmoid、$\lambda$ 控制 LM 正则强度、$\mu$ 控制幅度正则强度。Prompt 采样策略:15% 样本不带准则 prompt、20% 给"全准则"通用 prompt、65% 给单准则 prompt。第四步:推理时通过 system prompt $p$ 选择想要的准则,模型按条件打分。整个训练在修改过的 trl 框架上跑,AdamW + cosine schedule + 5% warmup,从 Qwen3 dense 模型系列初始化出 0.6B/1.7B/4B/8B/14B/32B 共 6 个尺寸的 Themis-RM。

技术新颖性

技术新颖性集中在三点。第一,commit mining pipeline:把 GitHub 单文件 merged commit 转成带 inverse instruction 的偏好对,是把"implicit human validation"工程化的范式。和之前 SFT 数据合成 (Wang et al., 2024d) 不同,这套流水线不是用 LM 编造偏好,而是复用真实开发者已经验证过的代码改动,再用 LM 写 prompt。这种"真实信号 + LM prompt augmentation"的混合方式同时保证数据规模和信号质量。第二,准则 prompt 解耦:之前的多准则 RM 通常依赖模型合并、专属 head 或 Mixture-of-Experts,本文证明仅靠 system prompt + 训练时 prompt 采样就能达到 SOTA (Table 2 中 Themis-RM-8B 合并方案 77.07% vs. prompt-conditioned 89.78%),并保持模型架构单一、推理接口简单。第三,正则化设计:BT 损失是 underspecified 的(不同 reward 尺度都能满足同一对偏好的排序),作者加入幅度正则让多准则 RM 在不同 prompt 下尺度对齐,从而支持真正的多准则组合打分;LM 正则则让 RM 不只是一个 ranker、还具备一定的"chosen 是什么"的语义能力,缓解 generator-validator inconsistency (Li et al., 2024c)。从经验结果看,Themis-RM-32B 在 Themis-CodeRewardBench 上达到 91.82 平均准确率,比最佳 baseline (Athene-RM-70B 的 81.19) 高出 10 分以上,且 0.6B 模型 (79.26) 能超过多个 >70B 通用 RM,体现数据-目标-prompt 三位一体的设计对代码 RM 的杠杆效应。

Overview of our pipeline for mining multi-programming-language multi-criteria code preferences from single-file merged GitHub commits. Used both in Themis-CodeRewardBench and for Themis-CodePreference.
Figure 1: Overview of our pipeline for mining multi-programming-language multi-criteria code preferences from single-file merged GitHub commits. Used both in Themis-CodeRewardBench and for Themis-CodePreference.

实验结果

RQ1 (Themis-CodeRewardBench 多维评测):Themis-RM 全尺寸都显著超越现有 RM。32B 拿到 91.82 平均 (FC 94.27, EE 84.95, ME 95.16, R&M 87.59, SH 94.55),比最强的 baseline Nexusflow/Athene-RM-70B (81.19) 高 10.6 分。最戏剧性的是小尺寸:Themis-RM-0.6B 拿到 79.26 平均,超过 Nexusflow/Starling-RM-34B (70.63) 和 CodeScaler-8B (79.12),更超过 nvidia/Llama-3.3-Nemotron-70B-Reward (78.39)——一个 0.6B 模型比 70B 模型还强 0.87 分,凸显专有代码偏好数据对通用偏好的胜出。在 security hardness 这种冷门维度上,Themis-RM-32B 拿到 94.55,几乎是 Athene-RM-70B (78.30) 的 1.2 倍,是 Rubric 类 RM R3-Qwen3-14B (30.17) 的 3 倍。RQ2 (多准则训练消融):在 8B 模型上,把训练拆成 (a) 去掉辅助损失 (-2.55)、(b) 去掉 PT 阶段 (-4.64)、(c) 推理时改用全准则 prompt (-1.62)、(d) 完全去掉准则 prompt (-1.90) 都会掉点;最关键的是,把 5 个单准则模型合并反而比多任务基线还低 10 分以上 (77.07 vs 87.88),证明 prompt-conditioned 训练比 model merge 更适合多准则建模。Cross-criteria transfer 显示 FC 训练对 EE/ME/SH 有明显迁移,但反方向迁移较弱,FC-only 模型 78.61 平均仍超过大多数 baseline。RQ3 (跨语言):8B 模型在 8 种语言上准确率在 88-93% 之间波动,跨语言差异很小 (Python 88.82, Ruby 88.76 vs Go 91.60)。控制变量实验显示,Python-only 训练在 Ruby/JS 上更强 (83-86),Java-only 在 Java/JS 上更强 (87-88),但 all-language 训练 (85.31) 始终最好,验证净正向跨语言迁移。RQ4 (下游鲁棒性):listwise re-ranking 上 Themis-RM-32B 在 C++/Java/Python 三个 CodeContests+ 上拿到 Hits@10 97.65/98.59/97.44 和 Rank Corr.@40 0.5067/0.5352/0.5018,超过所有基线 (Athene-RM-70B 的 Hits@10 仅 24.88-29.34、Rank Corr. 接近 0)。Adversarial robustness (Aletheia-Adv) 上 Themis-RM-32B 拿到 81.43/82.09/83.02,比 Llama-3.3-Nemotron-70B-Reward (63.48/62.12/55.91) 高 18-27 分。最重要的是,下游鲁棒性的 scaling trend 比 pairwise accuracy 的更陡——这是和 prior work (Bartoldson et al., 2024) 的关键反差,表明 Themis-RM 在实际部署中尺寸收益更大。

Criteria-level dataset composition of the Themis-CodeRewardBench reward model evaluation benchmark introduced in Section 3, broken down across the eight constituent programming languages.
Table 1: Criteria-level dataset composition of the Themis-CodeRewardBench reward model evaluation benchmark introduced in Section 3, broken down across the eight constituent programming languages.
Detailed criteria-level preference accuracy of extant RMs and the Themis-RM suite on Themis-CodeRewardBench (RQ1: ref. to Section 5.1) followed by Themis-RM-8B training ablations (RQ2: ref. to Section 5.2).
Table 2: Detailed criteria-level preference accuracy of extant RMs and the Themis-RM suite on Themis-CodeRewardBench (RQ1: ref. to Section 5.1) followed by Themis-RM-8B training ablations (RQ2: ref. to Section 5.2).
Detailed programming-language-level preference accuracy of extant RMs and the Themis-RM suite on Themis-CodeRewardBench (RQ3: ref. to Section 5.3) followed by Themis-RM-8B cross-lingual transfer ablations (RQ3: ref. to Section 5.3).
Table 3: Detailed programming-language-level preference accuracy of extant RMs and the Themis-RM suite on Themis-CodeRewardBench (RQ3: ref. to Section 5.3) followed by Themis-RM-8B cross-lingual transfer ablations (RQ3: ref. to Section 5.3).
Re-ranking and adversarial robustness evaluation of the Themis-RM suite (RQ4: ref. to Section 5.4). We benchmark against a selection of the highest scoring extant RMs on Themis-CodeRewardBench.
Table 4: Re-ranking and adversarial robustness evaluation of the Themis-RM suite (RQ4: ref. to Section 5.4). We benchmark against a selection of the highest scoring extant RMs on Themis-CodeRewardBench.
Comparison of Themis-CodeRewardBench against the code subsets of popular existing RM evaluation benchmarks. Themis-CodeRewardBench judges RMs on (a) longer and (b) more complex code responses, over a (c) largely novel distribution of prompts.
Figure 2: Comparison of Themis-CodeRewardBench against the code subsets of popular existing RM evaluation benchmarks. Themis-CodeRewardBench judges RMs on (a) longer and (b) more complex code responses, over a (c) largely novel distribution of prompts.
查看结构化数据
任务指标本文基线提升
Themis-CodeRewardBench 全 5 准则平均偏好准确率 Accuracy (%) Themis-RM-32B: 91.82; Themis-RM-0.6B: 79.26 Nexusflow/Athene-RM-70B: 81.19 (最强 baseline); CodeScaler-8B: 79.12 +10.63 (32B vs. 70B best baseline); +0.87 (0.6B vs. 70B Nemotron-Reward 78.39)
Security Hardness 偏好准确率 Accuracy (%) Themis-RM-32B: 94.55; Themis-RM-14B: 95.36; Themis-RM-0.6B: 87.69 Athene-RM-70B: 78.30; Rubric R3-Qwen3-14B: 30.17; Qwen2.5-Math-RM-72B: 55.30 +16.25 (32B vs 70B Athene); +57.38 (14B vs 14B Rubric baseline)
Memory Efficiency 偏好准确率 Accuracy (%) Themis-RM-32B: 95.16; Themis-RM-0.6B: 86.85 Athene-RM-70B: 77.16; nvidia/Llama-3.3-Nemotron-70B-Reward: 66.44 +18.0 (32B vs 70B Athene); +20.4 (0.6B vs 70B Nemotron)
CodeContests+ Python Listwise Re-ranking Hits@10 (%) / Rank Correlation@40 Themis-RM-32B: 97.44 / 0.5018 Llama-3.3-Nemotron-70B-Reward: 78.59 / 0.3012; Athene-RM-70B: 29.34 / 0.1281 +18.85 Hits@10; Rank Corr. 提升约 67%
Aletheia-Adv Java Adversarial Robustness Accuracy (%) Themis-RM-32B: 82.09; Themis-RM-8B: 73.48 Llama-3.3-Nemotron-70B-Reward: 62.12; AceCodeRM-32B: 65.33 +19.97 (32B vs 70B Nemotron); +16.76 (8B vs 32B AceCodeRM)
Cross-criteria 零样本迁移 (FC-only 训练在 SH 上的得分) Accuracy (%) Themis-RM-8B (FC only): SH 75.58 Themis-RM-8B (multi-task full): SH 93.34 FC-only 在 SH 上仍超过多数通用 RM (Athene-70B 78.30 持平),证明 FC 准则知识能正向迁移到安全维度

局限与改进

作者坦承的局限有:(1) 训练数据时间窗截止 2021 年 1 月 (PM 阶段) 和 2019 年 3 月 (commit preference 训练),新的漏洞类型、新的 API、新的语言生态无法覆盖;(2) 五准则覆盖并不完备,如 test coverage、API 设计一致性、国际化、license 合规、可观测性、错误处理完整性等工程维度都没纳入;(3) Bradley-Terry 损失本身是 underspecified 的,不同 RM 跑出来的 reward 尺度差异显著,作者承认 $\mu$ 选小了导致 merging 失败、选大了又压扁 reward 方差影响 listwise;(4) prompt-conditioned 解耦需要推理时显式给出准则,对"用户模糊表达想要又快又安全的代码"这种多准则融合场景没有专门处理。从我观察的角度,论文还有几个未充分讨论的问题:(1) "RM 在 FC 维度上比 baseline 强"是否真的能迁移到下游 RLHF?Table 4 只验证了 re-ranking,没有把 Themis-RM 实际接入 PPO/GRPO 做端到端 RLHF 跑 HumanEval/MBPP;(2) 0.6B 模型 79.26 平均 vs. 32B 模型 91.82,scaling 趋势虽正向但 0.6B→32B 跨 50 倍仅提升 12 分,相比 LLM 主流量化指标 (Kaplan et al., 2020 那种跨数量级的对数线性) 偏弱,提示这套训练在数据效率上还有瓶颈;(3) Aletheia-Adv 是现有 adversarial benchmark,论文并未构造新的、专门针对代码 RM 的攻击 (如逻辑保留的语义等价变体),因此 adversarial robustness 的真实性还有打折;(4) 评测里几乎所有结果都是 pairwise accuracy,但 RM 真正在 RLHF 里被用作 dense reward——单一 preference pair 的准确率可能与连续 trajectory 的价值估计相关性不强,作者也没报告 calibration 指标如 Brier score / ECE;(5) "8 种语言"覆盖偏中-高资源,C# 和 Ruby 的偏好对数量在 FC 准则分别是 42 和 97,对比 Python 的 216 少 1 倍以上,泛化结论对真正低资源语言 (Kotlin/Swift/Rust 等) 外推性存疑。

独立分析的弱点

独立分析来看,Themis 至少有以下可改进的弱点。弱点一:奖励幅度正则 $\mu$ 的选择极其脆弱。论文自己也承认尝试 $\mu \in \{0.1, 0.5\}$ 会把 reward 压得太死、伤害 listwise re-ranking,但选小了又导致 model merging 失败。本质问题是 BT 损失对 reward 绝对值无约束,可以加参数化约束 (例如强制 chosen-rejected 分差近似落在某个 sigmoid 饱和区) 或在 PT 阶段就加入 reward magnitude 锚定。弱点二:prompt-conditioned 解耦在极端多准则组合下未验证。论文实验里都是单准则或"全准则"prompt,但真实用户经常说"我要又快又安全又可读的代码"——3 准则以上的组合 prompt 是否仍能让 RM 给出兼顾的多目标评分,作者没有测。改进方向是构造 synthetic 多准则组合 prompt 训练数据 (类似 conditional RL 的 reward shaping)。弱点三:Commit 偏好对的隐式假设过强。所有偏好都来自"commit 前后代码",但 commit 作者本身可能做了功能/性能/可读性多重改动,单意图过滤 + 多 LM 投票不能保证每对都"只差一个维度"。如果 chosen 和 rejected 在另一维度上其实相反 (e.g. 修复了 bug 但降低了效率),RM 学到的偏好可能是混合而非条件性的。改进方向是在合成数据里显式控制 other-criteria 等价 (如同时要求 chosen 和 rejected 在其他准则上不可区分)。弱点四:评测指标单一。全部用 preference accuracy,但下游 RLHF 用的是 dense reward value,pairwise accuracy 高不代表 value function 准确。可加 calibration / Brier score / Spearman correlation with true reward 等指标。弱点五:没有 release 上线 RLHF 跑分。Table 4 仅做了 re-ranking,但没接 PPO/GRPO 看 HumanEval/MBPP pass@1 的真实提升,这是这套 RM 价值最直接的证据。

未来方向

作者自己提出的未来方向在 Conclusion 隐含两个:(1) 把 RM 推广到"超出可执行代码"的后训练场景;(2) 推动开源生态共建。从论文线索和我自己的观察,可延伸的方向还有:方向一,多准则多目标的 RLHF 范式。把 Themis-RM 当成 multi-objective reward,对策略做 constrained optimization (类似 Safe-RLHF 或 MORL),让模型在 inference 时可以按用户偏好 (latent utility vector) 调整输出。方向二,扩展准则到工程级维度。加入 test coverage、observability、error handling、API 一致性、license compliance 等,目前的 5 准则对工业落地远远不够。方向三,commit mining 的时间扩展。把数据截止时间推到 2024-2025,纳入 LLM 生成代码 (Copilot 提交)、最新 CVE 模式、LLM 自身后训练留下的偏好痕迹。方向四,对抗鲁棒性主动训练。论文只验证了 Aletheia-Adv 的"评测式鲁棒性",未来可以构造 judge-hacking 训练数据 (保留逻辑的语义等价变体、prompt-injection 风格的偏好污染) 进一步提升。方向五,dense reward 替代 pairwise。把 BT 改成 pointwise regression on synthetic continuous score (e.g., 用 profiling 输出 + LM judge 的聚合作为 silver label),缓解 BT 的 underspecification。方向六,与 verifier-as-a-service 集成。把 Themis-RM 当成"软 verifier",在生成阶段就给出 reward signal 引导 decoding (e.g., best-of-N 重排 + process reward),和现有 execution-based verifier 形成互补。方向七,下游 RLHF 端到端验证。真正的硬证据是把 Themis-RM 接入 Qwen2.5-Coder / Llama-3-Coder 系列跑 PPO 或 GRPO,看 HumanEval+、MBPP+、SWE-bench 的提升幅度。

复现评估

整体复现难度中等偏上,但门槛在算力而非思路。作者承诺开源所有 artifacts(Themis-CodeRewardBench、Themis-GeneralPreference、Themis-CodePreference、Themis-RM 6 个尺寸的 checkpoint),训练框架是基于 huggingface/trl 的修改 fork,技术栈透明。数据层面,commit mining 流水线用公开的 github/github-repos archive、GHTorrent 镜像、Kimi/DeepSeek/MiniMax 三个 frontier LM 合成 query 与 inverse instruction,全部可重跑;但 frontier LM 在不同时间点调用可能产出不完全一致的标注,需要固定 temperature=0 或记录 prompt-template 细节。模型层面,6 个尺寸的 Qwen3 base 在不同规模上都需要重新训练,0.6B/1.7B/4B 用单卡 8xA100-80G 在几天内可以完成 PT+PM 两阶段,8B/14B 需要 16-32 张 H100,32B 至少需要 64-128 张 H100 跑 1-2 周。训练超参:AdamW + cosine + 5% warmup、PT 2 epoch + PM 1 epoch、$\lambda$ 和 $\mu$ 是关键但作者没给具体值,需要 sweep。评测层面,Themis-CodeRewardBench 8.9k 偏好对可直接下载使用;listwise re-ranking 需要 CodeContests+ 数据集和 bytedance/sandboxfusion sandbox,adversarial 评测需要 Aletheia-Adv。整体而言,0.6B-4B 的小模型在 8xA100 上 1 周内可完整复现主要结论,32B 模型对大多数学术团队算力门槛过高,但作者直接给 checkpoint 是合理的开源姿态。代码细节、prompt template、数据过滤的 exact configuration 在 Appendix (Section B/C) 有详述。最大的隐性难点是 commit mining 阶段对 frontier LM 调用的依赖——这是经验性环节,换模型可能让最终 RM 的精度有 1-3 分的波动。