尽管监督微调(SFT)为遵循指令提供了良好基础,但要使模型更好地符合复杂的人类偏好,通常需要人类反馈强化学习(RLHF)。RLHF 过程通过训练模型,使其基于人类判断为更好的输出,从而能够针对有益性和无害性等品质进行优化,这些品质仅通过监督示例难以把握。标准的 RLHF 流程通常包含三个主要阶段:
-
模型初步准备(预训练与 SFT): 从一个有能力的预训练语言模型开始。然后,使用高质量的提示-响应对数据集(如第 25 章所述)进行监督学习微调。SFT 步骤使模型适应遵循指令,并以期望的风格和格式生成响应。这个 SFT 模型将作为后续 RLHF 阶段的起点。
-
奖励模型 (RM) 训练: 核心思想是训练一个可以预测人类偏好的模型。
- 数据收集: 选择一组不同类型的提示。对于每个提示,使用 SFT 模型(或多个模型变体)生成多个响应。然后向人类标注者展示这些响应的成对(或更多)结果,并要求他们根据有益性、准确性或安全性等标准选择他们更喜欢哪一个。
- RM 架构: 奖励模型(RM)通常是另一个语言模型(常基于 SFT 模型或较小的预训练模型进行初始化),其最后一层被替换为一个线性层,输出一个表示预测偏好分数的单一标量值。它以提示和响应作为输入并输出此分数。
- 训练目标: 奖励模型使用收集到的成对偏好数据进行训练。给定一个提示 p 和两个响应 yw(胜者)和 yl(败者),其中人类更偏好 yw 而非 yl,奖励模型被训练为给 yw 分配比 yl 更高的分数。常用的损失函数是成对排序损失:
LRM=−E(p,yw,yl)∼D[log(σ(rθ(p,yw)−rθ(p,yl)))]
这里,rθ(p,y) 是奖励模型(参数为 θ)对提示 p 和响应 y 输出的标量分数,σ 是 sigmoid 函数,D 是人类偏好数据集。这个目标最大化了首选响应 yw 获得更高分数的概率。
-
强化学习 (RL) 微调: 训练好的奖励模型现在作为人类偏好的代表,提供奖励信号,使用强化学习算法(通常是近端策略优化,PPO)进一步微调 SFT 模型。
- RL 设置: SFT 模型在 RL 框架中充当初始策略(πSFT)。动作空间包含模型可能生成的令牌,而状态是迄今为止生成的令牌序列。
- 优化循环: 该过程迭代地从数据集中采样提示 p。当前的 RL 策略(πRL)生成一个响应 y。奖励模型将奖励 r=rθ(p,y) 分配给生成的响应。然后,PPO 算法使用此奖励信号更新策略 πRL 的权重。
- KL 散度惩罚: RL 微调中的一个重要问题是,策略可能会学习生成最大化奖励模型分数但显著偏离原始 SFT 模型分布的输出,这可能导致无意义或重复的文本(“奖励作弊”)。为了缓解这种情况,RLHF 中的 PPO 在奖励函数或目标中加入一个 Kullback-Leibler (KL) 散度惩罚项。目标是在最大化奖励模型分数的同时,与初始 SFT 策略保持接近:
目标=E(p,y)∼πRL[rθ(p,y)−β⋅KL(πRL(⋅∣p)∣∣πSFT(⋅∣p))]
项 KL(πRL(⋅∣p)∣∣πSFT(⋅∣p)) 衡量了 RL 策略和原始 SFT 策略对提示 p 预测的令牌分布之间的散度。超参数 β 控制此惩罚的强度,防止 RL 策略偏离 SFT 模型学习到的分布过远,从而保持连贯性和语言质量。
以下图表展示了这一多阶段过程:
标准 RLHF 流程的三个阶段:监督微调 (SFT)、基于人类偏好的奖励模型 (RM) 训练,以及由奖励模型和针对原始 SFT 模型的 KL 惩罚引导的强化学习 (PPO) 微调。
这个流程使模型能够从比较性人类反馈中学习,改进其生成与期望属性更一致的响应的能力,比仅通过 SFT 达到的效果更好。接下来的部分将详细说明收集偏好数据、训练奖励模型以及实施 PPO 微调步骤的实际方面。