模型简介
模型特点
模型能力
使用案例
🚀 Skywork奖励模型系列
Skywork奖励模型系列基于先进的基础模型构建,能有效处理复杂场景下的偏好问题,在多个领域如数学、编码和安全方面表现出色。其训练数据经过精心筛选和处理,在RewardBench排行榜上取得了优异成绩。
🚀 快速开始
模型信息
属性 | 详情 |
---|---|
库名称 | transformers |
基础模型 | meta-llama/Llama-3.1-8B-Instruct |
数据集 | Skywork/Skywork-Reward-Preference-80K-v0.2 |
任务类型 | 文本分类 |
模型链接
重要提示
⚠️ 重要提示
此模型使用原始Skywork奖励偏好数据集的净化版本(即v0.2)进行训练。更新后的数据集 Skywork-Reward-Preference-80K-v0.2 从 magpie-ultra-v0.1 子集中移除了4,957个受污染的样本对,这些样本对与 RewardBench 中的评估提示存在显著的n-gram重叠。你可以在 这里 找到被移除的样本对集合。更多详细信息,请参考 此GitHub要点。
如果你的任务涉及在 RewardBench 上进行评估,我们强烈建议使用数据集和模型的v0.2版本,而不是v0.1版本,以确保适当的净化处理并避免任何污染问题。
✨ 主要特性
- 高性能:基于先进的基础模型 gemma-2-27b-it 和 Llama-3.1-8B-Instruct 构建,在处理复杂场景下的偏好问题时表现出色。
- 数据精选:使用精心策划的 Skywork奖励数据集合,仅包含80K高质量的偏好样本对,涵盖多个公开可用的数据源。
- 多领域适用:模型在数学、编码、安全等多个领域都有良好的表现,能够适应不同的应用场景。
- 排行榜领先:在 RewardBench 排行榜上,Skywork-Reward-Llama-3.1-8B-v0.2 在8B模型中排名第一。
📦 安装指南
文档未提供安装步骤,故跳过此章节。
💻 使用示例
基础用法
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer
# Load model and tokenizer
device = "cuda:0"
model_name = "Skywork/Skywork-Reward-Llama-3.1-8B-v0.2"
rm = AutoModelForSequenceClassification.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
device_map=device,
attn_implementation="flash_attention_2",
num_labels=1,
)
rm_tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "Jane has 12 apples. She gives 4 apples to her friend Mark, then buys 1 more apple, and finally splits all her apples equally among herself and her 2 siblings. How many apples does each person get?"
response1 = "1. Jane starts with 12 apples and gives 4 to Mark. 12 - 4 = 8. Jane now has 8 apples.\n2. Jane buys 1 more apple. 8 + 1 = 9. Jane now has 9 apples.\n3. Jane splits the 9 apples equally among herself and her 2 siblings (3 people in total). 9 ÷ 3 = 3 apples each. Each person gets 3 apples."
response2 = "1. Jane starts with 12 apples and gives 4 to Mark. 12 - 4 = 8. Jane now has 8 apples.\n2. Jane buys 1 more apple. 8 + 1 = 9. Jane now has 9 apples.\n3. Jane splits the 9 apples equally among her 2 siblings (2 people in total). 9 ÷ 2 = 4.5 apples each. Each person gets 4 apples."
conv1 = [{"role": "user", "content": prompt}, {"role": "assistant", "content": response1}]
conv2 = [{"role": "user", "content": prompt}, {"role": "assistant", "content": response2}]
# Format and tokenize the conversations
# If you use `tokenize=False` with `apply_chat_template` and `tokenizer()` to tokenize the conversation,
# remeber to remove the duplicated BOS token.
conv1_tokenized = rm_tokenizer.apply_chat_template(conv1, tokenize=True, return_tensors="pt").to(device)
conv2_tokenized = rm_tokenizer.apply_chat_template(conv2, tokenize=True, return_tensors="pt").to(device)
# Get the reward scores
with torch.no_grad():
score1 = rm(conv1_tokenized).logits[0][0].item()
score2 = rm(conv2_tokenized).logits[0][0].item()
print(f"Score for response 1: {score1}")
print(f"Score for response 2: {score2}")
# Output:
# 27B:
# Score for response 1: 0.5625
# Score for response 2: -8.5
# 8B:
# Score for response 1: 13.6875
# Score for response 2: -9.1875
高级用法
为了使27B奖励模型达到最佳性能,请确保启用 flash_attention_2
或 eager
实现。默认的 spda
实现可能会导致错误,从而显著降低该模型的性能。
📚 详细文档
模型简介
Skywork-Reward-Gemma-2-27B-v0.2 和 Skywork-Reward-Llama-3.1-8B-v0.2 分别基于 gemma-2-27b-it 和 Llama-3.1-8B-Instruct 架构构建。这两个模型均使用 Skywork奖励数据集合 进行训练,该集合仅包含80K高质量的偏好样本对,这些样本对来自公开可用的数据。
数据混合
我们没有依赖现有的大型偏好数据集,而是精心策划了 Skywork奖励数据集合,以包含高质量的偏好样本对,并针对特定的能力和知识领域。经过精心策划的训练数据集约包含80K个样本,这些样本从多个公开可用的数据源中进行子采样得到,包括:
- HelpSteer2
- OffsetBias
- WildGuard (对抗性)
- Magpie DPO系列:Ultra、Pro (Llama-3.1)、Pro、Air。
免责声明:除了对上述数据集进行子采样以创建Skywork奖励数据集合外,我们未对原始数据集进行任何修改。
数据集策划技巧
在数据集策划过程中,我们采用了一些技巧,以在不影响整体性能的前提下,提高模型性能并平衡各个领域:
- Magpie数据集样本选择:我们根据数据集中提供的平均ArmoRM分数,独立地从组合的Magpie数据集中选择数学、代码和其他类别的顶级样本。我们分别将Magpie-Air子集和Magpie-Pro子集中的ArmoRM平均分数减去0.1和0.05,以优先选择Magpie-Ultra和Magpie-Pro-Llama-3.1样本。
- WildGuard样本选择:我们没有包含WildGuard中的所有偏好样本对,而是首先在其他三个数据源上训练一个奖励模型(RM)。然后,我们(1)使用这个RM对WildGuard中所有样本的选择响应和拒绝响应进行评分,(2)仅选择选择响应的RM分数大于拒绝响应的RM分数的样本。我们观察到,这种方法在很大程度上保留了聊天、硬聊天和推理的原始性能,同时提高了安全性。对于这两个模型,我们使用27B模型对WildGuard样本进行评分。
RewardBench排行榜
我们使用 官方测试脚本 在 RewardBench 上评估我们的模型。截至2024年10月,Skywork-Reward-Llama-3.1-8B-v0.2 在RewardBench排行榜的8B模型中排名第一。
排名 | 模型 | 模型类型 | 分数 | 聊天 | 硬聊天 | 安全 | 推理 |
---|---|---|---|---|---|---|---|
1 | Skywork/Skywork-Reward-Gemma-2-27B-v0.2 | 序列分类器 | 94.3 | 96.1 | 89.9 | 93.0 | 98.1 |
2 | nvidia/Llama-3.1-Nemotron-70B-Reward | 自定义分类器 | 94.1 | 97.5 | 85.7 | 95.1 | 98.1 |
3 | Skywork/Skywork-Reward-Gemma-2-27B | 序列分类器 | 93.8 | 95.8 | 91.4 | 91.9 | 96.1 |
4 | SF-Foundation/TextEval-Llama3.1-70B | 生成式 | 93.5 | 94.1 | 90.1 | 93.2 | 96.4 |
5 | meta-metrics/MetaMetrics-RM-v1.0 | 自定义分类器 | 93.4 | 98.3 | 86.4 | 90.8 | 98.2 |
6 | Skywork/Skywork-Critic-Llama-3.1-70B | 生成式 | 93.3 | 96.6 | 87.9 | 93.1 | 95.5 |
7 | Skywork/Skywork-Reward-Llama-3.1-8B-v0.2 | 序列分类器 | 93.1 | 94.7 | 88.4 | 92.7 | 96.7 |
8 | nicolinho/QRM-Llama3.1-8B | 序列分类器 | 93.1 | 94.4 | 89.7 | 92.3 | 95.8 |
9 | LxzGordon/URM-LLaMa-3.1-8B | 序列分类器 | 92.9 | 95.5 | 88.2 | 91.1 | 97.0 |
10 | Salesforce/SFR-LLaMa-3.1-70B-Judge-r | 生成式 | 92.7 | 96.9 | 84.8 | 91.6 | 97.6 |
11 | Skywork/Skywork-Reward-Llama-3.1-8B | 序列分类器 | 92.5 | 95.8 | 87.3 | 90.8 | 96.2 |
12 | general-preference/GPM-Llama-3.1-8B | 自定义分类器 | 92.2 | 93.3 | 88.6 | 91.1 | 96.0 |
🔧 技术细节
文档未提供足够的技术实现细节,故跳过此章节。
📄 许可证
声明
我们在此声明,Skywork模型不得用于任何对国家或社会安全构成威胁的活动,或从事非法行为。此外,我们要求用户在未进行适当的安全审查和记录的情况下,不要将Skywork模型部署到互联网服务中。我们希望所有用户都能遵守这一原则,以确保技术进步在规范和合法的环境中进行。
我们已尽最大努力确保模型训练过程中使用的数据符合规定。然而,尽管我们付出了大量努力,但由于模型和数据的复杂性,仍可能存在不可预测的风险和问题。因此,如果因使用Skywork开源模型而出现任何问题,包括但不限于数据安全问题、舆论风险,或因模型被误导、滥用、传播或不当使用而产生的任何风险和问题,我们将不承担任何责任。
许可协议
Skywork模型的社区使用需要遵循 Skywork社区许可证。Skywork模型支持商业使用。如果您计划将Skywork模型或其衍生产品用于商业目的,则必须遵守 Skywork社区许可证 中的条款和条件。
技术报告
Skywork-Reward: Bag of Tricks for Reward Modeling in LLMs
联系我们
如果您有任何问题,请随时通过 yuhao.liuu@kunlun-inc.com 或 liang.zeng@kunlun-inc.com 与我们联系。
引用
如果您觉得我们的工作有帮助,请使用以下BibTeX条目引用我们:
@article{liu2024skywork,
title={Skywork-Reward: Bag of Tricks for Reward Modeling in LLMs},
author={Liu, Chris Yuhao and Zeng, Liang and Liu, Jiacai and Yan, Rui and He, Jujie and Wang, Chaojie and Yan, Shuicheng and Liu, Yang and Zhou, Yahui},
journal={arXiv preprint arXiv:2410.18451},
year={2024}
}



