人类反馈强化学习 (reinforcement learning)(RLHF)通过将人类判断直接融入训练过程,提供了一种结构化方法,引导大型语言模型(LLM)实现乐于助人、诚实和无害等预期行为。尽管其思路直接,但实际实施涉及一个多阶段流程,它结合了监督学习 (supervised learning)、偏好建模和强化学习的组成部分。理解这一工作原理,方能有效应用RLHF。
典型的RLHF流程如下图所示,包含三个主要环节,尽管存在一些不同:
- 模型准备(可选但常见): 从一个基础预训练 (pre-training)LLM开始,并可选地使用监督方法对其进行微调 (fine-tuning)。
- 奖励模型训练: 建立一个模型,能够根据人类偏好为LLM输出评分。
- RL策略微调: 使用奖励模型通过强化学习进一步微调LLM,以最大化偏好输出。
RLHF流程各环节及其关联的概述。SFT常被使用,但并非必需。SFT模型在RL微调期间常作为参考策略(πref)。
下面我们更详细地说明每个环节。
环节1:模型准备(基础模型和可选SFT)
该过程通常从一个能力较强的预训练 (pre-training)LLM开始。这个模型从大量文本数据中习得了通用语言模式,但可能没有专门适应遵循指令或表现出如乐于助人等预期行为。
通常会执行一个中间步骤,称为监督微调 (fine-tuning)(SFT)。在这个环节中,预训练模型在一个较小、高质量的输入提示和预期输出(示例)数据集上进行微调。这个数据集的目的是展示目标行为(例如,按指令提供帮助,特定的对话风格)。
SFT环节旨在使模型适应它可能遇到的提示分布,并教会它预期回应的基本格式和风格。该环节产生的模型,我们称之为πSFT,通常作为后续RLHF环节的起点。具体来说,它成为RL微调的初始策略,以及RL训练期间用于正则化 (regularization)的参考模型(πref)。SFT虽然有益,但并非RLHF的严格必需;可以从基础预训练模型直接开始奖励建模和RL微调。
环节2:奖励模型训练
RLHF的核心思路是学习人类偏好。这是通过训练一个单独的模型,即奖励模型(rθ),来预测人类会偏好哪一个LLM输出。
-
数据收集:
- 选择一组提示(x)(通常从SFT中使用的或预期部署时会遇到的分布中选取)。
- 当前LLM(通常是SFT模型πSFT)为每个提示x生成两个或更多回应(y1,y2,...)。
- 人类标注员会看到提示x以及一对回应(例如,yi,yj),并被要求选择他们偏好哪个回应(或者表示平局,或者两者都不可接受)。常见做法侧重于成对比较。
- 这一过程会产生一个偏好元组数据集:(x,yw,yl),其中yw是针对提示x的偏好(“胜出”)回应,而yl是较不偏好(“落败”)的回应。
-
模型架构: 奖励模型通常与正在训练的LLM共享相同的架构(或者使用基础预训练 (pre-training)架构)。然而,其最终层被修改,以输出一个表示预测奖励(偏好分数)的单一标量值,而不是令牌概率。
-
训练目标: 奖励模型rθ(x,y)的训练目标是,使其为偏好回应yw分配比不偏好回应yl更高的分数。一种常见方法是使用源自Bradley-Terry模型的损失函数 (loss function),该模型对yw优于yl的概率进行建模:
P(yw≻yl∣x)=σ(rθ(x,yw)−rθ(x,yl))
其中σ是sigmoid函数。模型通过最小化数据集中人类偏好标签的负对数似然进行训练:
L(θ)=−E(x,yw,yl)∼D[logσ(rθ(x,yw)−rθ(x,yl))]
这个损失函数促使奖励模型rθ在胜出回应和落败回应之间输出更大的分数差。
这个奖励模型的质量和校准是影响整个RLHF过程成功的要紧因素。本章后面我们将讨论奖励建模中的难点。
环节3:RL策略微调 (fine-tuning)
有了假定能捕捉人类偏好的已训练奖励模型rθ,最后环节使用强化学习 (reinforcement learning)来微调LLM策略πϕ(初始为πSFT),以最大化rθ分配的奖励。
-
RL设置:
- 策略: LLM本身,πϕ(y∣x),由ϕ参数 (parameter)化。
- 动作空间: LLM可以生成的令牌词汇表 (vocabulary)。
- 观察空间: 给定输入提示x后,目前已生成的令牌序列。
- 奖励函数: 由已训练的奖励模型rθ(x,y)提供,应用于给定提示x的最终生成序列y。
-
优化过程: 一种RL算法,最常见的是近端策略优化(PPO),用于更新策略参数ϕ。该过程通常包括:
- 从数据集中采样提示x(通常是SFT提示分布)。
- 使用当前策略πϕ(y∣x)为每个提示x生成回应y。
- 使用奖励模型计算提示-回应对(x,y)的奖励:r=rθ(x,y)。
- 使用PPO算法更新策略参数ϕ,以增加生成高奖励回应的可能性。
-
带KL惩罚的PPO目标: RLHF的一个要紧方面是防止策略πϕ与原始SFT模型πSFT(如果跳过SFT,则为基础预训练 (pre-training)模型)偏离过大。单纯为了已训练的奖励rθ进行过度优化,可能导致生成无意义或重复的、但恰好得分很高的文本(这种现象称为“奖励作弊”),或导致通用语言能力灾难性遗忘。为缓解此问题,会在奖励中添加一个基于当前策略πϕ与参考策略πref(通常是πSFT)之间Kullback-Leibler(KL)散度的惩罚项。RLHF中PPO优化的目标通常是:
目标(ϕ)=E(x,y)∼Dπϕ[rθ(x,y)−βKL(πϕ(y∣x)∣∣πref(y∣x))]
其中,Dπϕ是通过采样提示x并生成回应y∼πϕ(y∣x)得到的提示-回应对的分布。系数β控制KL惩罚的强度。这一项促使策略πϕ在最大化rθ预测奖励的同时,保持与参考模型πref行为相对接近,从而保持语言流畅性并缓解奖励作弊。
这个环节的产出是最终对齐 (alignment)的LLM,πϕ∗,它经过调整,能生成根据已训练奖励模型偏好的回应,并兼顾保持连贯性以及与预训练和SFT阶段学到的初始能力保持接近的需求。
这个三阶段流程(SFT -> 奖励建模 -> RL微调)构成了许多成功RLHF实现的核心。后续章节将说明每个环节的具体细节,以及相关难点和变体,特别是奖励建模和PPO优化。