文章目录
- 前言
- Chat GPT是如何基于RLHF进行训练的
- RLHF 技术分解
- 预训练语言模型
- 训练奖励模型
- 强化学习微调预训练模型
- 局限性
- 参考
前言
随着OpenAI推出的Chat GPT火热出圈,Chat GPT背后的技术原理之一,人类反馈强化学习RLHF (Reinforcement Learning from Human Feedback)
也被大众熟知。那么RLHF是什么呢?看看Chat GPT的回答。
强化学习是一种机器学习技术,其目的是教给智能体在给定的环境中通过不断的试验和错误,学习如何最大限度地完成任务。强化学习的核心思想是在环境中运行智能体,智能体会基于反馈奖励和惩罚信号来更新其策略和行动。在强化学习中,智能体通过试错的方法学习行动策略,从而逐渐改进自己并最小化行动的错误。在这种情况下,反馈通常是来自环境的信息
,例如得分或奖励。与之相反,在RLHF中,反馈来自人类专家
,这可以加快学习速度和提高性能。此外,在RLHF中,人类专家可以提供更多种类的反馈和指导,例如告诉系统哪些行为是正确的,或者提供示例行为来帮助系统更好地理解任务。
Chat GPT是如何基于RLHF进行训练的
ChatGP是InstructGPT的姊妹模型,使用与InstructGPT相同的方法,侧重点不同,InstructGPT侧重于教育和学习领域;ChatGPT侧重于人机对话交互,所以数据集的收集设置上也略微不同。
ChatGPT是基于RLHF进行训练的,它是从GPT-3.5系列中的一个模型进行微调的。具体步骤描述如下:
- ChatGPT使用监督微调训练一个初始模型。人类人工智能训练者提供对话,他们在对话中扮演用户和人工智能助手。将这些新的对话数据集与InstructGPT数据集混合,并将其转换成对话格式。
- 收集由两个或者多个按照质量排序的模型生成组成的comparison data,然后创建强化学习的奖励模型。为了收集这些数据,OpenAI让AI trainer与chatbot进行聊天对话,然后随机选择一条模型书写的信息,并让AI trainer对其进行排名。
- 使用这些奖励模型,OpenAI使用近端策略优化PPO算法对模型进行微调。
RLHF 技术分解
RLHF 是一项涉及多个模型和不同训练阶段的复杂概念,这里我们按三个步骤分解:
- 预训练一个语言模型 (LM) ;
- 聚合问答数据并训练一个奖励模型 (Reward Model,RM) ;
- 用强化学习 (RL) 方式微调 LM。
预训练语言模型
第一步是需要一个预训练语言模型。目前存在的已知的预训练模型有BERT系列,GPT系列等等,这些模型都在大量的文本数据上进行预训练,这些模型的算法思路和实现方式不同,但都具有较强的表现能力,可适用于广泛的人工智能应用领域。还有可选的Human Augmented Text,就是使用额外的文本或者条件对语言模型进行微调。
训练奖励模型
接下来,训练奖励模型RM。奖励模型接受一系列文本并返回一个标量奖励,数值上对应人的偏好。
- 在模型选择方面,奖励模型可以是另一个经过微调的语言模型,也可以是根据偏好数据从头开始训练的语言模型。
- 在训练文本方面,奖励模型的提示-生成文本从预定义数据集中采样生成,并用初始的语言模型给这些提示生成文本。
- 在训练奖励数据方面,需要人工对语言模型生成的回答进行排名。如果直接对文本标注分数来训练奖励模型,由于标注者自身的差异性会导致标注分数充满主观性。通过排名可以比较多个模型的输出并构建更好的规范化数据集。至于如何进行排名?一种成功的方式是对不同语言模型在相同提示下的输出进行比较,然后使用Elo系统建立一个完整的排名。这些不同的排名结果会被归一化为用于训练的标量奖励值。
强化学习微调预训练模型
长期以来,由于工程和算法等原因,人们认为用强化学习训练语言模型是不可行的。现在,很多组织机构寻找到的解决方案是:使用策略梯度强化学习算法(Policy Gradient RL)、近端策略优化算法(Proximal Policy Optimization,PPO)微调初始语言模型的部分或者全部参数。
首先将微调任务表述为强化学习问题:
- 策略(policy) 是一个接受提示并返回一系列文本或者文本的概率分布的语言模型
- 策略的行动空间(action space) 是语言模型的此表对应的所有词元。
- 观察空间(action space) 是可能的输入词元序列
- **奖励函数(reward function)**是偏好模型(preference model )和策略转变约束(constraint on policy shift)的结合
奖励函数是指系统将上述讨论过的模型组合成一个RLHF过程。给定一个提示 x x x,将提示输入初始语言模型和微调的语言模型,分别得到输出文本 y 1 y_{1} y1和 y 2 y_{2} y2。将来自当前策略的文本传递给偏好模型,返回一个”preferability“标量概念, r θ r_{\theta} rθ。将该文本与初始模型中的文本进行比较,计算一个表示两者差异的惩罚值。在多个来自于OpenAI, Anthropic, and DeepMind的论文中,将此惩罚值设置为输出词分布序列之间的KL散度的缩放,即 r K L r_{KL} rKL。KL散度用来惩罚强化学习策略在每个训练批次中生成大幅偏离初始预训练模型,这对确保模型输出合理连贯的文本片段是有用的。如果去除这个惩罚项,可能会导致模型在优化中生成乱码文本愚弄奖励模型提供高奖励值。在实际应用中,KL散度通过从两个分布中采样近似得到,发送到强化学习的最终奖励是 r = r θ − λ r K L r = r_{\theta} - \lambda r_{KL} r=rθ−λrKL。
一些RLHF系统会向奖励函数中添加额外的术语。例如,OpenAI在InstructGPT中成功地将额外的预训练梯度混合到PPO的更新规则中。最后,**更新规则(update rule)**来自于PPO的参数更新,它最大化了当前一个批次数据的最大奖励指标。PPO是一种信任域优化算法,它使用对梯度的约束来确保更新步骤不会破坏学习过程的稳定。
局限性
尽管RLHF已经取得一定的成果和关注,它仍然存在一些局限性。
- 模型仍然会不确定性地输出有害或者不真实的文本。
- 收集人类偏好数据的质量和数量决定了RLHF系统性能的上限。
参考
- Illustrating Reinforcement Learning from Human Feedback (RLHF)
- ChatGPT 背后的“功臣”——RLHF 技术详解
- Introducing ChatGPT