项目介绍:RewardBench
什么是RewardBench?
RewardBench是一个用于评估奖励模型(包括通过直接偏好优化DPO训练的模型)的基准测试系统。这个项目的目标是通过标准化的评估方法来测试模型的能力和安全性,为研究人员和开发者提供一个可靠的工具来检测和提高模型性能。
项目功能
RewardBench项目提供以下核心功能:
- 通用推理代码:支持多种奖励模型,如Starling、PairRM、OpenAssistant、DPO等,提供统一的推理代码。
- 数据格式化与测试:提供通用的数据集格式和测试框架,确保公平的模型推理比较。
- 分析与可视化工具:帮助用户分析模型结果,并以直观的方式呈现绩效数据。
快速使用指南
RewardBench可以快速评估任何奖励模型以及任何偏好集。通过pip安装RewardBench,只需简单几步即可开始使用:
pip install rewardbench
然后,运行以下命令进行评估:
rewardbench --model={你的模型} --dataset={你的数据集} --batch_size=8
对于DPO模型,可以使用以下命令传递参考模型:
rewardbench --model={你的DPO模型} --ref_model={参考模型}
这个工具能够自动使用Tokenizers的聊天模板,也可以选择使用fastchat转换模板。
记录与日志
RewardBench的命令行工具提供了多种高级功能,用于保存模型输出和准确率评分。这些结果可以与用户自有的奖励模型结合,上传到HuggingFace平台,支持拒绝样本评分。例如:
rewardbench --model vwxyzjn/reward_modeling__EleutherAI_pythia-14m --batch_size 128 --tokenizer=EleutherAI/pythia-14m --push_results_to_hub --upload_model_metadata_to_hf --chat_template raw
项目结构
RewardBench项目结构包括:
- 核心工具和建模文件
- 脚本和配置文件,用于评估奖励模型
- 单元测试和Dockerfile,以确保项目的可重现性和可扩展性
贡献与参与
研究人员可以通过在HuggingFace上开问题或提交合并请求来贡献他们的模型。如果自定义代码是必需的,可以通过我们的推理框架启用它。具体流程请参考RewardBench的贡献指南。
总结
RewardBench提供了一套全面的工具,用于有效评估和改进奖励模型。通过标准化的评估方法,RewardBench为研究人员和开发者提供了一种了解和提高模型性能的途径。欢迎社区的贡献与合作,以共同完善这个强大而有用的工具!