跳转至

title: Skywork-Reward: Bag of Tricks for Reward Modeling in LLMs paper_id: 'arXiv:2410.18451' year: '2024'


Skywork-Reward: Bag of Tricks for Reward Modeling in LLMs

跳转:🌐 看原文 EN · 📖 看译文 ZH · 📄 看原文 PDF

笔记时间:2026-07-06 评分:0 领域:verifier 方法:pref-rm 类型:method, dataset

元信息

  • ID: arXiv:2410.18451
  • 年份: 2024
  • 作者: Chris Yuhao Liu, Liang Zeng, Jiacai Liu, Rui Yan, Jujie He, Chaojie Wang, Shuicheng Yan, Yang Liu, Yahui Zhou
  • 机构: Skywork AI, Kunlun Inc.
  • 本地 PDF: paper.pdf
  • 解析文本: main_en.md
  • 中文翻译: main_zh.md
  • 页数: 18
  • 主题: reward modeling, preference data, data filtering, RewardBench, Bradley-Terry loss

摘要翻译

论文提出一组以数据为中心的 reward modeling 技术。核心不是复杂模型结构,而是从公开偏好数据中筛选高质量样本,构建 Skywork Reward Preference 80K。该数据集只有约 8.2 万个偏好对,显著小于常见的 700K 级偏好混合数据。基于该数据训练的 Skywork-Reward-Gemma-2-27B 和 Skywork-Reward-Llama-3.1-8B 在 RewardBench 上取得很强表现,其中 27B 模型在论文写作时排名第一。

定位

这篇是偏好奖励模型的 data recipe 论文。它说明:在 discriminative reward model 中,数据质量、任务分布、hard pair 选择、污染处理,可能比单纯扩大偏好数据规模更关键。

它与数学 ORM/verifier 的共同点是都训练 prompt + candidate -> scalar score;区别是 Skywork 面向主观偏好和安全/聊天/推理综合排序,标签来自 chosen/rejected pair,而不是客观答案 correct/incorrect。

训练数据长什么样

标准样本是同一个 prompt 或对话上下文下的两个候选回答:

{
  "prompt": "用户问题或多轮对话上下文",
  "chosen": "更受偏好的 assistant 回答",
  "rejected": "较差的 assistant 回答"
}

训练时不是把 chosen/rejected 放进一个 judge prompt 让模型生成判断,而是分别格式化成两条普通对话输入:

prompt + chosen -> reward_chosen
prompt + rejected -> reward_rejected

然后用 pairwise Bradley-Terry loss 约束:

reward_chosen > reward_rejected

chosen/rejected 是 loss 的监督信号,不是自然语言输入的一部分。judge prompt 适合 generative judge,不适合 Skywork 这种 discriminative reward model recipe。

训练时是否 freeze backbone

论文描述更接近 end-to-end 训练,而不是 freeze backbone 只训练 reward head。作者使用 Meta-Llama-3.1-8B-Instruct 和 Gemma-2-27B-it 作为 backbone,将最后一层替换为随机初始化 reward head,然后用 AdamW 在偏好数据上训练 2 epoch。论文没有提到冻结 backbone;学习率按 backbone 规模设置为 8B 用 2e-6、27B 用 1e-6,这是典型 reward model 全参数微调或至少 backbone 参与反向传播的设定。

实践中可以为了算力采用 LoRA 或只训 head,但那是实现折中,不是本文报告的主要 recipe。只 freeze backbone 训练随机 reward head 通常表达能力有限,难以达到论文中 RewardBench 级别的结果。

方法

数据来自七个公开来源,最终 Skywork Reward Preference 80K 包含 81,973 个 pair:

Dataset # Pairs 主要作用
HelpSteer2 7,221 人类标注的 helpfulness/correctness/coherence 等偏好
OffsetBias 8,504 对抗长度偏差等 spurious preference
WildGuardMix 6,709 安全 refusal/compliance 偏好
Magpie Ultra 27,785 Llama 3.1 405B 合成,高质量通用偏好
Magpie Pro (Llama 3) 2,030 Llama 3 70B 合成
Magpie Pro (Llama 3.1) 29,682 Llama 3.1 70B 合成
Magpie Air 42 Llama 3 8B 合成,过滤后只保留极少量

关键数据选择策略:

  • Magpie 数据按生成模型强弱和 ArmoRM 分数筛选。
  • 作者发现 ArmoRM 对不同生成模型存在分布偏差,因此手动调整 Air 和 Pro(Llama 3) 的分数 offset。
  • 数学和代码类别保留 top 30%,其他类别采样 10%,提升目标能力密度。
  • WildGuardMix 中只保留更有价值的 adversarial 子集;进一步只纳入旧 reward model 已判对的 adversarial 样本,以减少对通用偏好能力的损害。
  • HelpSteer2 只使用 chosen helpfulness 高于 rejected helpfulness 的 pair。

训练目标是标准 Bradley-Terry pairwise ranking loss:

$$ \mathcal{L}{\text{ranking}} = -\log \left(\sigma\left(r\theta\left(x, y_c\right) - r_\theta\left(x, y_r\right)\right)\right) $$

作者也测试 Focal、Hinge、Margin MSE、Cross-Entropy、Tempered Log、Temperature-adjusted Bradley-Terry 等变体,但整体上普通 Bradley-Terry 最好。

实验

训练设置:

  • backbones: Meta-Llama-3.1-8B-Instruct, Gemma-2-27B-it
  • reward head: 替换最后一层为随机初始化 scalar reward head
  • global batch size: 128
  • optimizer: AdamW
  • weight decay: 1e-3
  • schedule: cosine learning rate
  • epochs: 2
  • LR: 8B 用 2e-6,27B 用 1e-6

RewardBench 主结果:

Model Avg. Chat Chat Hard Safety Reasoning
Llama-3.1-8B + Preference 700K 86.9 98.0 67.3 89.4 93.0
Gemma-2-27B + Preference 700K 88.1 97.5 71.7 90.0 93.4
Llama-3.1-8B + Preference 378K 91.8 94.6 84.5 91.5 96.5
Gemma-2-27B + Preference 378K 92.6 94.4 87.5 91.9 96.7
Skywork-Reward-Llama-3.1-8B 92.5 95.8 87.3 90.6 96.2
Skywork-Reward-Gemma-2-27B 93.8 95.8 91.4 92.0 96.1

结论是:80K 精筛数据超过 700K 混合数据;378K 未充分压缩数据也明显强于 700K baseline,说明原始数据源选择已经比简单混合更好。

污染分析

RewardBench 团队指出 Magpie Ultra 可能有约 5K prompts 与 RewardBench 评估集重叠。作者使用 leaderboard 维护者提供的 decontamination script 后,构建 Skywork Reward Preference 80K v0.2。

污染统计:

Dataset RewardBench prompts with >7-gram match Contaminated prompts
Preference 700K 800 15,349
Nectar 381 2,394
Skywork Reward Preference 80K v0.1 673 5,402
Skywork Reward Preference 80K v0.2 460 445

有意思的是,去污染后模型分数没有下降,反而提升:

Model Avg. Chat Chat Hard Safety Reasoning
Skywork-Reward-Llama-3.1-8B 92.5 95.8 87.3 90.6 96.2
Llama-3.1-8B Decontaminated 93.1 94.7 88.4 92.7 96.7
Skywork-Reward-Gemma-2-27B 93.8 95.8 91.4 92.0 96.1
Gemma-2-27B Decontaminated 94.3 96.1 89.9 93.0 98.1

这说明所谓 contamination 不一定等价于 benchmark 泄漏收益。被移除样本可能与 RewardBench 偏好标准不一致,反而降低了评估表现。

局限

  • 论文主要报告 RewardBench,增强版 66K/86K 数据能达到更高分但未发布,作者也承认需要 RLHF pipeline 中进一步验证。
  • Magpie 数据的筛选依赖 ArmoRM,因此会继承 ArmoRM 的偏差;作者使用手动 offset,但没有系统探索最优校准。
  • 数据构造强依赖 RewardBench 目标分布,泛化到其他偏好标准或真实 RLHF 效果仍需额外验证。
  • 偏好维度被混合到一个 scalar reward 中,缺少类似 Nemotron-Reward 的多维 reward 可解释性。

与其他论文关系

  • 与 HelpSteer2 / Nemotron-Reward:Skywork 使用 HelpSteer2 作为一个高质量子集,但最终训练单一 scalar reward model,而不是多维 reward。
  • 与 OffsetBias:Skywork 直接吸收其对抗偏差数据,说明 length bias 和 spurious cue 是主观 RM 的核心风险。
  • 与 RewardBench:Skywork 的成功很大程度由 RewardBench 驱动,也暴露出 preference benchmark 与公开合成数据之间的污染问题。
  • 与 ORM/verifier:训练形式同为 prompt + candidate -> score,但 Skywork 的监督是 better/worse preference,而非 correct/incorrect outcome。

对训练 reward model 的启发

  • 数据格式保持 pairwise:同一个 prompt 下比较 chosen 和 rejected,不要跨 prompt 比分。
  • 不要给 discriminative RM 加 judge prompt;用 chat template 分别格式化 chosen/rejected,再让 scalar head 打分。
  • 数据量不是第一优先级。先做任务分布、质量分数、hard negative 和污染过滤。
  • 安全数据要控制 trade-off:直接加入大量 adversarial refusal/compliance pair 可能损害一般偏好能力。
  • 合成数据需要校准生成模型分布和 judge 偏差,否则 reward model 可能学到评分器偏差。
  • 验证集应按 prompt split,并单独报告长度桶、类别桶、Chat Hard 或 hard negatives 上的准确率。