ChatGPT 背后的 「功臣」——RLHF 技术详解

OpenAI 推出的 ChatGPT 对话模型掀起了新的 AI 热潮,它能够流畅地回答各种问题,其表现令人惊叹,仿佛已经打破了机器与人类之间的界限。这一成就的背后,离不开大型语言模型 (LLM) 生成领域的一种全新训练范式:RLHF (Reinforcement Learning from Human Feedback),意为以强化学习方式依据人类反馈优化语言模型

传统 LLM 评价体系的局限性

过去几年,各种 LLM 在根据人类输入的提示 (prompt) 生成多样化文本方面取得了显著进展。然而,对于生成结果的评估却是一个主观且依赖于具体语境的难题。例如,我们可能希望模型生成一个充满创意的故事、一段真实可靠的信息性文本,或者是一段可执行的代码,而这些结果难以用现有的、基于规则的文本生成指标 (如 BLEU 和 ROUGE) 进行准确衡量。

此外,传统的 LLM 通常以预测下一个单词的方式构建,并采用简单的损失函数 (如交叉熵) 进行训练,而没有显式地将人类的偏好和主观意见纳入考量。

RLHF 的核心思想

如果我们能够将人工反馈作为衡量生成文本质量的标准,甚至将其作为损失函数来优化模型,岂不是更好?这正是 RLHF 的核心思想:利用强化学习的方式,根据人类反馈直接优化语言模型。 RLHF 使得基于通用文本数据训练的语言模型能够与复杂的人类价值观相一致。

RLHF 技术分解

RLHF 涉及多个模型和不同的训练阶段,可以概括为以下三个步骤:

  1. 预训练语言模型 (LM)
  2. 聚合问答数据并训练奖励模型 (Reward Model,RM)
  3. 利用强化学习 (RL) 微调 LM

Step 1. 预训练语言模型

首先,我们需要使用经典的预训练目标训练一个基础语言模型。例如,OpenAI 在其首个 RLHF 模型 InstructGPT 中使用了较小版本的 GPT-3;Anthropic 则采用了 1000 万到 520 亿参数不等的 Transformer 模型;DeepMind 则使用了自家的 2800 亿参数模型 Gopher 。

Step 2. 训练奖励模型

奖励模型 (RM) 的训练是 RLHF 区别于传统训练范式的关键所在。 RM 接收一段文本作为输入,并返回一个标量奖励值,该值代表了人类对这段文本的偏好程度。

RM 的构建方式可以是端到端的 LM,也可以是模块化的系统 (例如,先对多个输出进行排序,再将排序结果转换为奖励值) 。

Step 3. 用强化学习微调

长期以来,由于工程和算法上的原因,人们普遍认为使用强化学习训练 LLM 是不切实际的。然而,目前多个研究机构已经找到了可行的解决方案,即使用策略梯度强化学习 (Policy Gradient RL) 算法,特别是近端策略优化 (Proximal Policy Optimization,PPO) 算法,对初始 LM 的部分或全部参数进行微调。

RLHF 的未来

尽管 RLHF 取得了一定的成果,但它仍然存在一些局限性。例如,RLHF 模型仍然可能生成有害或不真实的文本。

此外,RLHF 的成功很大程度上取决于人类偏好数据的质量和数量。生成高质量的回答需要雇佣专业的标注人员,而训练 RM 通常需要大量的奖励标签,这对于许多研究机构来说是一笔不小的开销。

参考资料

结语

RLHF 是 LLM 领域的一项突破性技术,它为构建更符合人类价值观的 AI 系统开辟了新的道路。 随着研究的深入,我们可以预见 RLHF 将在未来发挥更大的作用。


近端策略优化 (PPO) 算法

在 RLHF 的第三阶段,我们需要利用强化学习对预训练的语言模型进行微调。近端策略优化 (Proximal Policy Optimization, PPO) 算法作为一种高效且常用的强化学习算法,在这一阶段扮演着至关重要的角色。

为什么选择 PPO 算法?

长期以来,由于工程和算法上的挑战,人们普遍认为使用强化学习训练大型语言模型 (LLM) 是不切实际的。然而,PPO 算法的出现改变了这一现状。

PPO 算法具有以下优点,使其成为 RLHF 中的理想选择:

  • 高效性: PPO 算法在训练过程中能够高效地利用数据,并且收敛速度较快。
  • 稳定性: PPO 算法通过限制策略更新幅度,有效地避免了训练过程中的剧烈震荡,提高了训练的稳定性。
  • 易于实现: PPO 算法的实现相对简单,现有的深度学习框架 (如 TensorFlow 和 PyTorch) 都提供了相应的库和工具。

PPO 算法的工作原理

PPO 算法的核心思想是在每次迭代中,通过优化一个代理目标函数来更新策略,同时限制策略更新幅度,以确保训练的稳定性。

具体来说,PPO 算法会维护两个策略:

  • 当前策略 (Current Policy): 用于与环境交互并生成训练数据的策略。
  • 旧策略 (Old Policy): 用于计算代理目标函数的策略,其参数在每次迭代开始时会被更新为当前策略的参数。

PPO 算法的目标函数包含两个主要部分:

  • 策略改进项: 鼓励当前策略在旧策略的基础上取得更高的奖励。
  • 策略约束项: 限制当前策略与旧策略之间的差异,以确保训练的稳定性。

PPO 算法在 RLHF 中的应用

在 RLHF 中,我们将语言模型视为一个策略,该策略接收提示 (prompt) 作为输入,并生成文本作为输出。奖励模型 (RM) 则用于评估生成文本的质量,并提供相应的奖励值。

PPO 算法通过迭代优化策略,使得语言模型能够生成获得更高奖励的文本,从而逐步提高语言模型与人类偏好的匹配程度。

结语

PPO 算法作为一种高效且稳定的强化学习算法,在 RLHF 中发挥着至关重要的作用。随着研究的深入,我们可以预见 PPO 算法将在未来推动 LLM 领域取得更大的突破。

发表评论