论文题目:Self-Rewarding Language Models
论文链接:https://arxiv.org/pdf/2401.10020.pdf
现有的LLM偏好对齐方法通常使用人类偏好数据来训练奖励模型,这可能会限制模型的 性能,因为这些模型的性能受限于人类的表现水平。
为解决上述问题,论文提出了一个名为“Self-Rewarding Language Models”的方法,它的核心在于让语言模型在训练过程中 自我提供奖励信号 ,而 不是依赖于固定的外部奖励模型或人类偏好 。以下是解决这个问题的关键步骤:
- 初始化(Initialization) :
- 使用种子模型(如Llama 2 70B)进行微调,这个种子模型在人类编写的指令遵循数据集(如Open Assistant数据集)上进行监督微调(SFT)。
- 同时,也使用种子LLM-as-a-Judge指令遵循数据集进行微调,这提供了模型如何作为奖励模型进行评估的示例。
- 自我指令创建(Self-Instruction Creation) :
- 生成新的提示(prompts)。
- 对这些新提示生成候选响应。
- 使用LLM-as-a-Judge机制评估这些候选响应,为自己的生成内容分配奖励。
- 指令遵循训练(Instruction Following Training) :
- 使用种子数据(IFT和EFT)进行初始训练。
- 然后,使用自我指令创建过程中生成的数据(AI Feedback Training, AIFT)通过偏好对(preference pairs)进行训练,这可以通过直接偏好优化(DPO)算法实现。
- 迭代训练(Iterative Training) :
- 通过迭代地训练一系列模型,每个模型都使用前一个模型生成的偏好数据进行训练。
- 这样,模型不仅能够改进其生成能力,而且作为自己的奖励模型,奖励模型本身也能通过迭代得到改进。
在 AlpacaEval 2.0排行榜上 ,Self-Rewarding Iteration 3(M3)的Win Rate达到 20.44% ,
在性能上超越了许多使用专有训练数据或从更强模型中提取目标的现有模型
。