大模型中的 Reward Model:ORM、PRM、PPO、DPO
原创 jhc888007 算法杂学搬砖工 2024年10月29日 23:07 北京
对于一般分类、抽取任务,简单的多次生成结果投票就能解决很多问题。但是对于生成 / 推理这种开放 / 复杂的任务,还需要 Reward Model 来帮助判断。
PRM vs ORM
ORM(Outcome Reward Model)即训练一个 Reward Model,判别大模型生成的多个结果哪个更好。
PRM(Process Reward Model)主要针对的是 ToT 一类的多步输出大模型输出,同样训练一个/若干个 Reward Model,然后每一步判别哪几个输出更好。
ORM 和 PRM 一方面可以在大模型输出的多个结果中选择更好的一个,更重要的是,判别结果可以某种损失的形式回传,优化大模型。
显然,PRM 的上限更高(ORM 甚至可能存在结果正确但过程不正确的情况),但同时要求 Reward Model 能够正确的判别每一步的结果,显然对 Reward Model 的要求更高。
DPO vs PPO
PPO(Proximal Policy Optimization)最初在 ChatGPT 的 RHLF 中使用,同样是有一个人工标注数据训练的 Reward Model,大模型生成多个结果后,经过 Reward Model 判断,通过强化学习的方式来使得大模型偏向更好的答案,远离更差的答案。
DPO(Direct Preference Optimization)模仿了 PPO 的方式,同样训练 Reward Model,大模型生成多个结果后,使用 Reward Model 判断优劣,然后好的作为训练集,以SFT 的方式训练。
PPO 和 DPO 的最大区别是 PPO 是强化学习的两阶段范式,先生成,再判别,再根据判别结果优化,但 DPO 其实是离线生产了一批正样本数据集,还是监督学习范式,所以 PPO 又被称为 On-policy,而 DPO 被称为 Off-policy。
效果上,自然 PPO 其实是更合理,天花板更高的,但实现成本也很高,但 DPO 相对实现成本就很简单。