快捷方式

torchtune.rlhf.loss.SimPOLoss

torchtune.rlhf.loss.SimPOLoss = <function SimPOLoss>[源代码]

使用无参考奖励的简单偏好优化: https://arxiv.org/abs/2405.14734。来自论文的直觉

SimPO 的有效性归因于一个关键设计:使用序列的平均对数概率作为隐式奖励。此外,我们向 Bradley-Terry 目标引入了目标奖励边距,以鼓励获胜响应和失败响应之间有更大的边距,从而进一步增强算法的性能。

基于 TRL 实现: https://github.com/huggingface/trl/blob/98ad01ddfd1e1b67ec018014b83cba40e0caea66/trl/trainer/cpo_trainer.py#L603

SimPO 几乎与 DPO 相同,但使用平均对数概率来消除对参考模型的需求,从而在训练期间正则化策略。它还使用目标奖励边距来引导策略朝着更好的响应发展。这与 IPOLoss 中的直觉类似,但我们不是针对参考策略和策略模型之间的边距进行优化,而是针对选择的响应和拒绝的响应之间的边距进行优化。

参数:
  • beta (float) – 与 DPO 损失等效的温度缩放参数,通常在 2.0 到 2.5 的范围内。默认为 2.0。

  • gamma (float) – 目标奖励边距超参数,通常我们有 gamma in (0, 1.5]。默认为 0.5。

  • label_smoothing (float) – 编码关于标签的不确定性的参数。默认为 0。

类型:

SimPO

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得问题解答

查看资源