大模型 RLHF 技术原理与实战解析
ChatGPT 区别于其他模型的亮点以及难以复现的原因,主要在于其独特的基础模型训练范式。OpenAI 雇佣了大量人员产生了几万条打分数据,RLHF(Reinforcement Learning from Human Feedback)的本质类似于激发了基础模型的能力。基础模型本身已经具备很强的能力,而 RLHF 通过相对较少的计算量将这种能力激发出来,使其更符合人类价值观。
背景由来
OpenAI 推出的 ChatGPT 对话模型掀起了新的 AI 热潮,它面对多种多样的问题对答如流,似乎已经打破了机器和人的边界。这一工作的背后是大型语言模型(Large Language Model, LLM)生成领域的新训练范式:RLHF,即以强化学习方式依据人类反馈优化语言模型。
过去几年里各种 LLM 根据人类输入提示(prompt)生成多样化文本的能力令人印象深刻。然而,对生成结果的评估是主观和依赖上下文的。例如,我们希望模型生成一个有创意的故事、一段真实的信息性文本或可执行的代码片段。这些结果难以用现有的基于规则的文本生成指标(如 BLEU 和 ROUGE)来衡量。
除了评估指标,现有的模型通常以预测下一个单词的方式和简单的损失函数(如交叉熵)来建模,没有显式地引入人的偏好和主观意见。为了解决上述问题,如果我们用生成文本的人工反馈作为性能衡量标准,或者更进一步用该反馈作为损失来优化模型,那不是更好吗?这就是 RLHF 的思想:使用强化学习的方式直接优化带有人类反馈的语言模型。RLHF 使得在一般文本数据语料库上训练的语言模型能和复杂的人类价值观对齐。
什么是 RLHF?
1. 强化学习
在了解 RLHF 之前,我们需要先知道什么是 RL。强化学习(RL)是一种机器学习,在这种学习中,个体(Agent)通过与环境的互动来学习做决定。个体采取行动以实现一个特定的目标,根据其行动接受奖励或惩罚形式的反馈。随着时间的推移,个体学会了做出决策的最佳策略,以使其收到的累积奖励最大化。
2. 基于人类反馈的强化学习
RLHF 是一个将强化学习与人类反馈相结合的框架,以提高个体在学习复杂任务中的表现。在 RLHF 中,人类通过提供反馈参与学习过程,帮助个体更好地理解任务,更有效地学习最优策略。将人类反馈纳入强化学习可以帮助克服与传统 RL 技术相关的一些挑战。人的反馈可以用来提供指导,纠正错误,并提供关于环境和任务的额外信息,而这些信息可能是个体自己难以学习的。
一些可以纳入 RL 的人类反馈的方式包括:
- 提供专家示范:人类专家可以示范正确的行为,个体可以通过模仿或利用示范与强化学习技术相结合来学习。
- 塑造奖励功能:人类的反馈可以用来修改奖励功能,使其更有信息量,并与期望的行为更好地保持一致。
- 提供纠正性反馈:人类可以在训练期间向个体提供纠正性反馈,使其从错误中学习并改善其表现。
3. RLHF 框架结构
RLHF 框架主要包括以下几个关键组成部分:
- 环境 (Environment):环境是个体所处的外部世界,它定义了任务的规则,以及个体可以执行的动作。环境对个体的行为做出反应,并提供状态信息和奖励。
- 个体 (Agent):个体是与环境互动并学习的主体。它通过观察环境状态,采取行动,并根据环境的反馈来调整其策略。
- 人类反馈 (Human Feedback):人类反馈是 RLHF 的核心组成部分。不同于传统强化学习只依赖预设的奖励函数,RLHF 中的个体能够直接从人类的反馈中学习。这种反馈可以是示范、指导、纠正甚至是奖励函数的直接调整。
- 学习算法 (Learning Algorithm):学习算法负责处理环境提供的数据和人类反馈,更新个体的决策策略。这可能包括模仿学习算法、策略优化算法等。
原理介绍
RLHF 的训练过程可以分解为三个核心步骤:
- 多种策略产生样本并收集人类反馈
- 训练奖励模型
- 训练强化学习策略,微调 LM
Step 1:预训练语言模型 + 有标签数据微调(可选)
首先需要一个预训练语言模型,通过大量的语料去训练出基础模型,对于 ChatGPT 来说就是 GPT-3。还有一个可选的 Human Augmented Text,又叫 Fine-tune。这里说直白点就是招人给问题(prompt)写示范回答(demonstration),然后让 GPT-3 去学习。Fine-tune 又叫有标签数据微调,概念比较简单,就是给到标准答案让模型去学习。实际想要用人工去撰写答案的方式来训练模型,成本是不可想象的,所以需要引入强化学习。
Step 2:训练奖励模型
我们需要一个模型来定量评判模型输出的回答在人类看来是否质量不错,即输入 [提示 (prompt),模型生成的回答],奖励模型输出一个能表示回答质量的标量数字。
把大量的 prompt(OpenAI 使用调用 GPT-3 用户的真实数据)输入给第一步得到的语言模型,对同一个问题,可以让一个模型生成多个回答,也可以让不同的微调版本回答。让标注人员对同一个问题的不同回答排序,有人可能会好奇为啥不打分?这是因为实验发现不同的标注员,打分的偏好会有很大的差异,而这种差异就会导致出现大量的噪声样本。排序的话能获得大大提升一致性。
这些不同的排序结果会通过某种归一化的方式变成定量的数据丢给模型训练,从而获得一个奖励模型。也就是一个裁判员。
Step 3:通过强化学习微调语言模型
基于强化学习(RL)去优化调整语言模型。
- Policy:是给 GPT 输入文本后输出结果的过程(输出文本的概率分布)。
- Action Space:是词表所有 token(可以简单理解为词语)在所有输出位置的排列组合。
- Observation space:是可能输入的 token 序列,也就是 Prompt。
- Reward Function:则是基于上面第二步得到的奖励模型,配合一些策略层面的约束。
将初始语言模型的微调任务建模为强化学习问题,因此需要定义策略(policy)、动作空间(action space)和奖励函数(reward function)等基本要素。具体怎么计算得到奖励,ChatGPT 是基于梯度下降,OpenAI 用的是 Proximal Policy Optimization (PPO) 算法。
什么是 PPO?
PPO 是一种用于在强化学习中训练代理的算法。它的主要特点如下:
- On-policy 算法:PPO 被称为「on-policy」算法,因为它直接学习和更新当前策略,而不是像 DQN 的「off-policy」算法那样从过去的经验中学习。这意味着 PPO 正在根据代理人所采取的行动和所收到的奖励,不断地调整策略。
- 信任域优化方法:PPO 使用信任域优化方法来训练策略,这意味着它将策略的变化限制在与前一策略的一定范围内,以确保稳定性。这与其它策略梯度方法不同,后者有时会对策略进行大规模更新,从而破坏学习的稳定性。
- 价值函数与优势函数:PPO 使用价值函数,来估计给定状态或操作的预期返回。价值函数用于计算优势函数,它代表预期回报和当前回报之间的差异。然后,通过比较当前策略采取的操作与前一个策略本应采取的操作,使用优势函数更新策略。这使 PPO 可以根据所采取行动的预估值,对策略进行更智能的更新。
在这一步中,PPO 模型经由 SFT 模型初始化,且价值函数经由奖励模型初始化。该环境是一个「bandit environment」,它会产生随机显示提示,并期望对提示做出响应。给出提示和响应后,它会产生奖励(由奖励模型决定)。SFT 模型会对每个 token 添加 KL 惩罚因子,以免奖励模型的过度优化。
RLHF 的应用
RLHF 已在不同领域的各种应用中显示出前景,如:
- 智能机器人:RLHF 可以用来训练机器人系统,使其以高精确度和高适应性完成复杂的任务,如操纵、运动和导航。
- 自动驾驶:RLHF 可以通过纳入人类对驾驶行为和决策的反馈,帮助自主车辆学习安全和高效的驾驶策略。
- 医疗保健:RLHF 可以应用于训练人工智能系统,用于个性化的治疗计划、药物发现和其他医疗应用,在这些方面人类的专业知识是至关重要的。
- 学习教育:RLHF 可用于开发智能辅导系统,以适应个体学习者的需求,并根据人类的反馈提供个性化的指导。
例如当我们将 RLHF 应用到自动驾驶的时候,是怎么运作的呢?在开发自动驾驶系统的过程中,致力于实现系统在多样化道路条件下的安全和高效驾驶。这一目标通过采纳基于人类反馈的强化学习(RLHF)框架得以实现,整个过程分为三个主要步骤:
- 首先,我们从专家司机那里收集示范驾驶数据和评价建议,为模型提供了初步的学习基础。
- 接着,这些数据被用于训练神经网络模型,通过模仿学习方法,如行为克隆,以及策略优化算法,如 PPO 或 DDPG,系统不仅能学会模仿专家的驾驶技巧,还能进一步优化其决策策略。
- 最后一步,我们将专家的纠正性反馈和奖励调整融入学习过程,使得自动驾驶系统的性能不断提升。通过这种细致入微的训练方法,我们的系统不仅精准地复现了专家司机的操作,而且在面对新的驾驶情境时也能展现出高度的适应性和可靠性,显著提升了整体的学习效率。
RLHF 的挑战
尽管 RLHF 效果显著,但在实际落地中仍面临诸多挑战:
- 数据效率:收集人类的反馈意见可能很费时和昂贵,因此,开发能够在有限的反馈意见下有效学习的方法很重要。
- 人类的偏见和不一致:人类的反馈可能容易出现偏见和不一致,这可能会影响个体的学习过程和表现。
- 可扩展性:RLHF 方法需要可扩展到高维的状态和行动空间,以及复杂的环境,以适用于现实世界的任务。
- 奖励的模糊性:设计一个能准确代表所需行为的奖励函数是很有挑战性的,尤其是在包含人类反馈的时候。
- 可转移性:经过 RLHF 训练的个体应该能够将他们学到的技能转移到新的任务、环境或情况中。开发促进转移学习和领域适应的方法对于实际应用是至关重要的。
- 安全性和稳健性:确保 RLHF 个体是安全的,对不确定性、对抗性攻击和模型的错误规范是至关重要的,特别是在安全关键的应用中。


