简介
Simple Preference Optimization(简称SimPO),即简单偏好优化,是一种针对偏好优化问题的新算法,旨在实现比当前方法(如DPO,即直接偏好优化)更高效的优化效果。SimPO无需参考模型,并在多个基准评估中,如AlpacaEval 2、MT-Bench和Arena-Hard等,表现优于现有的DPO方法及其变体。
项目更新
最近更新
- 2024年10月12日:为方便重现,我们发布了Llama3-Instruct和Gemma2-IT的训练曲线。
- 2024年7月17日:通过对Google的gemma-2 9B模型进行优化,发布了新的 SimPO模型,该模型在AlpacaEval 2上取得了72.4的胜率。
- 2024年7月8日:更新了论文的第二版,增加了新的基准并对现有模型的表现进行了改进。
SimPO优化策略
环境设置
SimPO提供了一个环境文件,以确保实验结果的可重现性。强烈建议在相同的硬件和CUDA版本下使用相同的Python包版本来运行SimPO。
超参数调节
在SimPO中,超参数learning_rate
(学习率)、beta
(奖励缩放)和gamma
(目标奖励幅度)尤为关键。对这些超参数的合理调节可以显著提升模型的性能。例如,较小的学习率对于数学等需要较复杂推理的领域更为适合。
一致性和重现性
SimPO的训练和评估需要确保一致性,尤其是在评测AlpacaEval 2结果时,必须使用指定的库和配置文件,以免产生结果分歧。
提供的模型
Gemma 模型
提供基于Google的gemma-2-9b-it的两个模型,这些模型在GSM和MMLU任务上的表现均优于基础模型。
v0.2 版本
该版本重新标注了偏好优化数据集,并在多个测试中显示出超越前一版本的性能,但是在某些输出中可能存在格式遵循性问题。
v0.1 版本
提供了一系列评测模型,用于偏好优化算法的比较研究。
使用指南
SimPO代码基于alignment-handbook项目构建,具体的安装步骤包括创建Python虚拟环境、安装PyTorch及其他依赖包。在推理任务中,可以参考generate.py脚本以正确加载模型。
训练脚本
SimPO提供了四种不同设置下的训练配置文件,适用于不同需求的训练任务。
评估
对于AlpacaEval 2、Arena-Hard和MT-Bench的评估,项目团队遵循了官方的实施方案,用户可参考相关的开源项目获取更多评估细节。
联系方式
如果对代码或论文有疑问,可通过电子邮件与项目作者联系;如在使用代码时遇到问题,欢迎在项目的issue板块提交详细的问题说明,以便获得及时的帮助。
论文引用
若该项目对您的研究有所帮助,请引用SimPO相关论文。