Direct Preference Optimization
REF: https://zhuanlan.zhihu.com/p/671780768
DPO(Direct Preference Optimization)和 RLHF(Reinforcement Learning from Human Feedback)是两种不同的方法,DPO 是一种直接优化用户或专家偏好的方法。它通过收集用户对模型输出的偏好数据,直接优化模型的参数,使得模型输出更符合用户的偏好,而后者通过收集人类对模型行为的反馈,使用这些反馈来指导强化学习过程,从而优化模型的性能。
优点: DPO 不需要复杂的强化学习算法,直接使用偏好数据进行优化;(更少的计算资源)由于不需要模拟环境和大量的探索,计算资源需求相对较低。
缺点:需要大量的高质量 偏好数据,收集这些数据可能成本较高;(适用范围有限)对于一些需要复杂策略和长时间决策的任务,DPO 可能不如 RLHF 有效。
RLHF
RLHF 一般会分 2 步:
第一步是训练 reward model。训练数据是同一个 prompt 的 2 个回答,让人或 GPT4 标注哪个回答更好,reward model 会去优化如下的 loss:
rϕmax{E(x,ywin,ylose)∼D[logσ(rϕ(x,ywin)−rϕ(x,ylose))]}
其中 rϕ 就是 reward model 用来给回答打分。D 是训练数据集,x 是 prompt,ywin 和 ylose 分别是好的回答和不好的回答。也就是说,要尽可能让好的回答的得分比不好的回答高,拉大他们之间的差别。
第二步是用 RL 算法来提升模型的得分。使用的 loss 是:
πθmax{Ex∼D,y∼πθ(y∣x)[rϕ(x,y)]−βDKL[πθ(y∣x)∣∣πref(y∣x)]}
其中 πθ 是我们在训练的 LLM,πref 是训练的初始值。这个 loss 意思是希望 LLM 输出的回答的评分能尽可能高,同时 πθ 不要偏离 πref 太多,保证它还能正常做回答,不要训成一个评分很高但是回答乱码的东西。
DPO 的作者们意识到,后面的这个式子是有显式解的。因为:
πθmax{Ex∼D,y∼πθ(y∣x)[rϕ(x,y)]−βDKL[πθ(y∣x)∣∣πref