一、RLHF的概念
LLM生成的内容需对齐(Aligned)人类的价值观念,如道德要求等等,已致有学者提出了“宪法 AI”(Constitutional AI)的概念。强化学习是通过奖励(Reward)机制来指导模型训练的,奖励机制可视为模型训练中的优化目标函数。若将人类的反馈视为强化学习的奖励,这就是基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)。
二、训练步骤
首先我们已经有一个预训练模型了,RLHF则是对该模型的进一步调整优化。RLHF分成监督微调(SFT)、奖励建模和强化学习等3个步骤。这3个阶段分别对应3个数据集:SFT数据集、RM数据集和RL数据集。
1.监督微调(SFT)
SFT 使用监督学习来训练模型,以便对不同的提示做出适当的响应,详见有监督微调(SFT)的原理和损失函数。人类专家按照格式 (提示, 输出) 创建带标签的示例,演示对于不同的用例(例如回答问题、进行总结或翻译)该如何对提示作出响应。这个过程所需要的样本,通常需要人工编写,耗时耗力,因此可以引入Self-Instruct方法,详见低成本指令数据集构建: Self-Instruct。
2. 奖励模型
为了给模型提供人类反馈,需要一个奖励模型来将人类偏好转化为数字奖励信号。训练奖励模型需要足够的训练数据,包括来自人类评估者的直接反馈——一种方法是通过概率采样获得多个答案,然后让标注人员对这些答案进行排序;还可以使用不同LLM来回答同一个问题,然后人工排序;还可以直接让标注人员判定“赞成”或“反对”;更复杂的方法可能会要求标记人员提供总体评分,并标注每个输出的缺陷分类,然后通过算法将这些反馈汇总为加权质量分数。
有了奖励模型后,该奖励模型以一个线性层的形式嵌入在原最终softmax层之后,将输出序列映射到一个标量值上,即输入提示和响应,输出反馈分数。
3.强化学习
最后一步是确定如何以及使用多少奖励模型来更新 AI 权重的策略,最成功算法之一是近端策略优化 (PPO)。
大多数机器学习和神经网络模型使用梯度下降来使损失函数最小化,并使误差尽可能小,而强化学习算法往往使用梯度上升来使奖励最大化。然而,如果在没有任何限制的情况下使用奖励函数来训练 LLM,则语言模型可能会为了迎合奖励机制而大幅调整其权重,甚至输出毫无意义的胡言乱语。
PPO 算法会限制每次训练迭代中可以在多大程度上更新策略,从而提供了一种更稳定的更新权重的方法。具体来说,就是使用KL散度来控制新的模型和原始模型之间的差异不要过大,以保持对原始训练数据的拟合能力,KL散度函数有一个超参数β,用于控制散度权重。
预训练损失系数γ控制预训练梯度的强度,是防止LLM在训练过程中过度优化,致模型在通用NLP任务上性能的大幅下降。