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 或对话上下文下的两个候选回答:
训练时不是把 chosen/rejected 放进一个 judge prompt 让模型生成判断,而是分别格式化成两条普通对话输入:
然后用 pairwise Bradley-Terry loss 约束:
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 上的准确率。