SimPO

添加链接描述
优化点两个:

  1. gamma
  2. 长度正则

gamma

原始DPO把两部分母拿出来是
− l o g π r e f ( w i n ) π r e f ( l o s e ) -log \frac{\pi_{ref}(win)}{\pi_{ref}(lose)} logπref(lose)πref(win)
由于构建数据集时常常把不满意的大模型输出作为lose,因此这个值往往>0.
这抬高了sigma内部的值,变相削弱了 π θ \pi_{\theta} πθ的学习动力。
因此,一个简单的方法是手动设置超参gamma<0代替上述公式。

长度正则

长度越长,涉及token越多——其实公式上看不出什么问题,可以说没问题。
但是会出现这样一个情况:loss要变小,目标是DPO的win部分正无穷,lose部分负无穷,这只需要全序列中的少数几个token有较大的logits改动就做得到。(说是这么说,但只是个极端情况),但是极端情况在训练初期不是不可能发生。如果所谓的DPO训练完成是几个token的功劳,假如这些token都在chosen和rejected的末尾,那么infer的前期很大概率仍然是原本的错误推理。
越长的序列越可能出现这种现象,因为token多了。
长度正则能缓解这个现象,把单token的loss平均到每个token上,迫使所有token必须同时优化。

改进

gamma是个硬阈值,和PPO里优势函数的设计思路一样。不是很solid但是也只能如此了。
长度正则的做法有些饮鸩止渴,个人感觉结合step-dpo+loss贡献衰减的思路比单纯长度正则要好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值