1. 强化学习#
1.1 强化学习基本概念#
强化学习(Reinforcement Learning, RL)是一种让智能体(Agent)通过与环境(Environment)交互来**学习最优行为策略(Policy)**的机器学习方法。 其核心思想是:
智能体根据当前状态选择一个动作,通过环境反馈的奖励(Reward)来调整自己的策略,以最大化长期回报(Cumulative Reward)。
与监督学习和无监督学习的对比:
| 学习方式 | 数据特征 | 学习目标 | 是否有标签 |
|---|---|---|---|
| 监督学习 | 已知输入与正确输出 | 学习从输入到输出的映射关系 | ✅ 有标签 |
| 无监督学习 | 只有输入数据 | 发现数据的隐藏结构或聚类 | ❌ 无标签 |
| 强化学习 | 与环境交互获得奖励 | 学习能获得最大长期回报的策略 | ⚙️ 奖励信号取代标签 |
强化学习既不是监督学习,也不是无监督学习。 它通过与环境的交互、自主探索获得经验,从而优化策略,而不是依赖固定标签的数据。
1.2 为什么使用强化学习#
强化学习适用于以下场景:
- 缺乏明确监督信号:例如机器人控制、游戏对战、自动驾驶等,无法为每一步提供准确标签;
- 决策过程依赖序列:当前的动作会影响未来的状态与奖励;
- 目标是最大化长期回报,而非即时准确率;
- 可通过环境交互不断改进策略,具有自适应与探索特性。
RL广泛应用于:
- AlphaGo、Atari 游戏智能体;
- 机器人控制;
- 推荐系统;
- RLHF(人类反馈强化学习)中的策略微调。
1.3 强化学习基本组成要素#
强化学习系统通常由以下五个核心要素组成:
| 要素 | 含义 |
|---|---|
| Agent(智能体) | 执行动作、学习策略的主体 |
| Environment(环境) | 与智能体交互并提供反馈(奖励和新状态) |
| State(状态) | 描述当前环境的情况 |
| Action(动作) | 智能体在某一状态下可以执行的行为 |
| Reward(奖励) | 环境在智能体执行动作后返回的数值反馈,用于衡量该动作的好坏 |
智能体的目标是通过不断试错学习到最优策略(Policy),以在长期内获得尽可能高的奖励。
交互过程:
- 智能体在状态 下选择一个动作 ;
- 环境返回新的状态 和奖励 ;
- 智能体根据奖励调整策略;
- 循环往复,形成经验序列:,通常把这个序列称为Trajectory
1.4 强化学习的目标#
强化学习的核心目标是:
学习一个最优策略 ,使得 期望累积奖励 最大化。形式化地,强化学习的目标可以表示为:
其中:
:策略(Policy),即在状态下选择动作的概率分布;
可分为:
- 确定性策略:a=
- 随机策略:
:在时刻 获得的即时奖励;
:折扣因子(Discount Factor),用于平衡短期与长期收益;
目标是通过优化策略 ,使期望累积奖励 最大化。
**注意:**这里的期望 实际上已经隐含了:
- 环境状态转移的随机性;
- 策略选择动作的随机性。
也就是说,这个期望是对所有可能轨迹的加权平均。
1.5 价值函数#
价值函数用于评价状态或动作的“好坏”,帮助智能体优化策略。
1. 状态价值函数
表示在给定策略 下,从状态 开始能获得的期望长期回报:
它衡量了某个状态的“好坏”。
2. 动作价值函数
表示在给定策略 下,从状态 执行动作 后能获得的期望长期回报:
它衡量了在某个状态下采取某个动作的“好坏”。
3. 动作价值函数与状态价值函数之间的关系
状态价值函数其实可以看作动作价值函数的期望(加权平均):
也就是说:
状态价值函数是对该状态下所有可能动作的加权平均(权重是策略在该状态下选择该动作的概率)。
4. 优势函数
用于衡量一个动作相对于该状态下平均水平的优劣程度:
优势函数反映了动作 相对于该状态下平均行为的增益程度,是许多强化学习算法(如PPO)的核心计算部分。
若 ,则动作 比策略平均表现更好; 若 ,则动作 较差。
1.6 探索与利用#
在强化学习中,智能体(Agent)需要在未知环境中通过不断尝试来获得最大化长期奖励的策略。 然而,在学习过程中,智能体会面临一个关键的决策困境:
是继续利用已有的经验选择当前看来最优的动作,还是去尝试新的动作以获取更多潜在的知识?
这就是强化学习中著名的 “探索–利用权衡” 问题。
1. 探索(Exploration)
是指智能体有意识地尝试新的动作或策略,以发现可能带来更高奖励的行为。
即:
- 在不确定的情况下进行尝试;
- 通过探索新的状态–动作组合,获取更多关于环境的知识。
2. 利用(Exploitation)
是指智能体根据当前已有的知识,选择当前看来能够带来最高奖励的动作。
即:
- 智能体使用已经学到的策略;
- 根据现有的价值函数或策略评估,选择期望回报最高的行为。
3. 常见平衡方法
ε-贪心策略(ε-Greedy Policy)
以概率 选择当前最优动作;
以概率 随机选择一个动作进行探索。
数学表达式:
通常会让 随时间逐渐减小,以在训练后期更多地利用已学知识。
Softmax 策略(Boltzmann Exploration)
按照动作的 Q 值通过 Softmax 分布采样动作,使得较优动作被选择的概率更高:
参数 (温度参数)控制探索程度:
- 大 → 行为更随机(高探索);
- 小 → 更倾向选择最优动作(高利用)。
1.7 Actor–Critic 架构#
在强化学习中,我们通常需要同时解决两个问题:
- 如何选择动作?(即策略问题)
- 如何评估一个状态或动作的好坏?(即价值评估问题)
Actor–Critic 架构将这两个问题分开处理:
- Actor(行动者):负责决策 —— 输出动作;
- Critic(评估者):负责评估 —— 判断当前策略的好坏,并给出学习信号。
二者相互配合,共同完成策略优化。
1. Actor
Actor 是策略网络(Policy Network),它的任务是根据当前状态 ,输出一个动作的概率分布 。
- 它决定“在当前状态下要采取什么行动”;
- 通过梯度上升(Policy Gradient)优化策略参数 ,以最大化期望奖励。
策略目标函数为:
Actor 通过梯度更新策略参数(推导过程见 此处)
其中:
- 是优势函数,用于衡量当前动作相对平均水平的好坏;
- 该项由 Critic 提供。
2. Critic
Critic 是价值函数网络(Value Network),用于评估当前策略的表现,给 Actor 提供“学习方向”。
Critic 的目标是预测状态或状态–动作的价值函数:
- 状态价值函数:
- 或动作价值函数:
Critic 的优化目标通常是最小化价值函数的均方误差(MSE):
其中:
- 为实际回报;
- 为 Critic 网络估计的状态价值;
- 参数 为 Critic 的网络权重。
3. Actor 与 Critic 的交互过程
1️⃣ **状态输入:**智能体从环境中接收当前状态 。
2️⃣ Actor 决策动作
- 策略网络(Actor)根据当前状态输出一个动作分布:
- 从该分布中采样得到一个具体动作 。
3️⃣ 环境反馈
- 环境执行动作 后,返回:
- 奖励
- 新状态
4️⃣ Critic 价值评估
- 价值网络(Critic)根据当前状态估计价值:
- 同时可计算下一状态的价值预测:
- 得到当前动作的“经验回报”(即目标Q值): 引导式估计(bootstrapping)
5️⃣ 计算优势函数(Advantage)
通过 Critic 的输出,计算动作的相对优劣:
这个值表示“当前动作比平均水平好多少”。
6️⃣ Actor 参数更新(策略优化)
使用优势函数指导 Actor 更新策略参数:
当 时,该动作的概率将增加;反之减少。
7️⃣ Critic 参数更新(价值拟合)
Critic 通过最小化 MSE 损失函数来更新自身参数:
即让预测值 更接近目标值 。
8️⃣ 循环交互
- 进入下一时间步 ,重复整个过程。
1.8 总结#
强化学习是一种基于奖励反馈机制的自学习方法,其核心目标是通过交互学习最优策略。在现代人工智能系统(如 RLHF 框架)中,强化学习方法尤其在优化大语言模型(LLM)的行为策略方面发挥着关键作用。掌握强化学习的基础知识 —— 尤其是价值函数、策略梯度与Actor–Critic 架构 —— 是理解 RLHF 的前提条件。
2. GAE和重要性采样#
2.1 GAE#
1. TD 误差与基本优势估计
定义时间差分(TD)误差:
那么最简单的优势近似是:
这就是 1-step Advantage Estimation。虽然方差小,但偏差较大。
2. n-step Advantage 与 GAE
GAE(广义优势估计,Generalized Advantage Estimation)由 Schulman 等人在 TRPO/PPO 中提出。它通过加权多步回报,在方差与偏差之间取得平衡。
n步 TD 误差定义为:
比如:
- n=1:只看一步(偏差大,方差小);
- n=T:看整个序列(Monte Carlo,无偏但方差大)。
2. GAE 的核心思想
GAE 通过一个衰减因子 ,将所有 n-step 优势加权平均:
或者用递推式写作:
其中:
- :折扣因子;
- :平滑参数(控制偏差与方差权衡)。作用如下
| λ 值 | 行为 | 说明 |
|---|---|---|
| λ = 0 | 等价于 1-step TD | 方差小、偏差大 |
| λ = 1 | 等价于 Monte Carlo Return | 方差大、无偏 |
| 0 < λ < 1 | 折中方案(常用 λ=0.95) | 最佳性能实践值 |
2.2 重要性采样#
在策略梯度中,我们希望最大化期望:
但实际数据通常来自 旧策略 ,而不是当前策略 。为了重用旧数据,我们引入 重要性采样(Importance Sampling)。
1. 重要性采样的基本原理
设有两个分布 和 ,如果我们只能从 采样,但要计算 , 则可以通过:
这时 称为 重要性权重(importance weight)。
2. 应用于策略梯度
在策略梯度中:
但数据来自旧策略 ,于是用重要性采样修正分布:
定义:
称为 重要性比(importance ratio)。
3. PPO算法#
具体算法介绍请看 零基础学习强化学习算法:PPO
3.1 PPO算法的背景与思想#
在传统的 策略梯度方法(Policy Gradient) 中,我们的目标是最大化策略的期望回报:
更新方式为:
但是这种直接更新有两个问题:
- 方差大 → 更新不稳定;
- 步长难控制 → 策略可能剧烈变化,导致性能退化。
于是,PPO 出现了:
它通过“约束策略更新幅度”来稳定训练, 同时结合 GAE 降低方差、结合 重要性采样 重用旧数据。
3.2 PPO核心目标函数#
在 PPO 中,我们定义:
这是 重要性比(importance ratio), 用于衡量新旧策略在同一状态下采取相同行动的相对概率。
原始目标(带重要性采样的策略梯度)
其中 为优势函数估计(通常使用 GAE 计算)。
PPO 的关键创新:Clipped Objective
为了防止策略变化过大,PPO 引入“裁剪”操作:
- 当 远离 1 时(即策略变化太大),更新会被裁剪;
- 是一个超参数(通常取 0.1~0.3)。
这样做能有效防止策略“走太远”,稳定训练。
3.3 GAE与PPO#
PPO 仍是一个 Actor-Critic 结构:
- Actor(策略网络) 更新基于 ;
- Critic(价值网络) 更新基于状态值误差。
其中 Advantage 使用 GAE 计算:
GAE 优势:
- 平滑优势估计;
- 平衡偏差与方差;
- 提高 PPO 策略更新的稳定性。
3.4 价值函数与熵正则项#
PPO 的总损失函数通常包含三部分:
在实现中,定义损失为:
其中:
- 第一项:策略目标(Actor 部分);
- 第二项:价值函数损失(Critic 部分);
- 第三项:熵正则项,用于鼓励探索(防止策略过早收敛);
- 为权重超参数。
3.5 PPO 的训练流程(结合 GAE 与 IS)#
Step 1:采样轨迹
从当前旧策略 运行若干步,获得:
Step 2:计算优势函数(使用 GAE)
- 计算 TD 误差:
- 递推得到 GAE:
- 同时计算回报目标:
Step 3:计算重要性比
Step 4:优化目标函数
最小化负的 PPO 损失(或最大化其相反数):
Step 5:更新网络
- Actor:梯度上升最大化 ;
- Critic:最小化 ;
- 更新旧策略:
循环执行以上步骤,直到收敛。
3.6 PPO 的两个常见变体#
| 变体 | 特点 | 说明 |
|---|---|---|
| PPO-Clip | 使用裁剪函数(最常见) | 稳定且计算简单 |
| PPO-Penalty | 使用KL散度惩罚项 | 控制新旧策略距离(但需调节系数 β) |
PPO-Clip 的目标:
PPO-Penalty 的目标:
3.7 常用超参数参考#
| 参数 | 含义 | 常用值 |
|---|---|---|
| γ | 折扣因子 | 0.99 |
| λ | GAE 衰减因子 | 0.95 |
| ε | PPO 裁剪范围 | 0.1 – 0.3 |
| c₁ | 价值函数损失权重 | 0.5 |
| c₂ | 熵项权重 | 0.01 |
| 学习率 | 优化器步长 | 3e-4 (Adam) |
3.8 总结#
PPO = Policy Gradient + Importance Sampling + Clipping + GAE
它在保持理论简洁性的同时,实现了高稳定性与强泛化能力,是当前最常用、性能最稳定的策略梯度算法之一。
4. RLHF框架#
4.1 RLHF概述#
RLHF(Reinforcement Learning from Human Feedback) 是一种结合了监督学习与强化学习的训练方法,旨在让大语言模型(LLM)更好地符合人类偏好。其核心思想是:
通过人类反馈训练一个奖励模型(Reward Model),再利用强化学习算法优化语言模型,使其生成的回答更接近人类认为“好的”输出。
4.2 RLHF三阶段流程#
1. 监督微调(SFT)
在第一阶段,使用人工编写的高质量问答对(prompt–response)对基准语言模型进行监督微调。
这一阶段的目标是让模型具备初步的对话能力和任务理解能力,为后续的偏好学习奠定基础。
输入: 人工标注的高质量问答数据集 输出: 监督微调后的初始模型(SFT Model)
2. 奖励模型训练(Reward Model Training)
第二阶段引入偏好数据集(Preference Dataset)。
该数据集由基准模型生成多个回答,然后由人类标注者对回答进行两两比较,指出更优的回答。格式为 (prompt,chosen_response, rejected_response)
通过这种“偏好对比(Preference Comparison)”数据,可以训练一个**奖励模型(Reward Model)**,使其学会评估回答的优劣。
这不是一个简单的回归(预测一个绝对分数),而通常是一个排序学习问题。最常用的损失函数是Bradley-Terry模型的对比损失:
loss = -log(sigmoid(R(chosen) - R(rejected)))
这个损失函数的核心思想是:最大化“被选中的回答”和“被拒绝的回答”之间的分数差。模型最终学会输出一个标量分数 R(prompt, response),这个分数代表了回答的质量。
输入: 偏好数据集(包含 prompt 及人类偏好排序的多个 response) 输出: 奖励模型 Reward Model,能够为任意 (prompt, response) 对打分
奖励模型的输出通常是一个标量分数,表示该回答的“好坏程度”。该模型在强化学习阶段中充当“环境”的角色,用于提供奖励信号。
3. 强化学习阶段(Reinforcement Learning Fine-Tuning)
在第三阶段,使用强化学习算法(如 PPO,Proximal Policy Optimization)优化语言模型,使其生成更高分的回答。
这一阶段通常使用仅包含提示(prompt)的提示数据集(Prompt Dataset)。
训练过程如下:
- 模型根据 prompt 生成 response。
- 奖励模型对该 response 打分(即计算 reward)。
- 强化学习算法根据 reward 信号更新语言模型的策略参数,使得模型倾向于生成更高奖励的回答。
环境: 由提示数据集和奖励模型共同构成。
智能体: 我们需要训练的模型(通常由SFT模型初始化),它的策略就是根据提示生成回答的概率分布。
动作: 生成下一个词元(token)。
状态: 当前的提示和已经生成的部分回答。
奖励: 当一个完整的回答生成后,奖励模型会给出一个奖励分数
R(prompt, response)。目标: 最大化奖励模型给出的期望奖励,使模型输出更符合人类偏好。
4.3 强化学习优化算法#
在强化学习阶段,常用的算法包括:
- Policy Gradient(策略梯度):通过梯度上升最大化期望奖励;
- PPO(Proximal Policy Optimization):一种改进的策略优化算法,能够在稳定性与性能之间取得平衡,因而成为当前主流的RLHF优化方法(如ChatGPT使用的)。
4.4 总结#
RLHF框架的核心思想是将人类偏好引入模型优化过程。 通过“人类反馈 → 奖励模型 → 强化学习”三阶段机制,语言模型不仅学习语言规律,更学习“人类认为好的”回答方式,从而在开放式任务中展现出更自然、更符合人类预期的行为。
5. InstructGPT#
5.1 摘要与背景#
传统大规模自回归语言模型(GPT 系列)用下一个 token 的似然作为训练目标(无监督 / 自监督),因此,模型输出的“好坏”高度依赖训练语料的分布与质量,在“服从用户意图、真实与无害”这类目标上存在明显错配(misalignment)。为了解决这一点,作者提出用人类偏好(human preference)作为监督信号来微调模型,使模型“更会听指令、更真实、更少有毒内容”。
5.2 核心思想#
InstructGPT 的核心是 RLHF(Reinforcement Learning from Human Feedback)三步流水线:
- SFT(Supervised Fine-Tuning):人工编写/演示式示例(labeler demonstrations)对 GPT-3 进行监督微调,使模型初步“学会”如何按指令产出。
- RM(Reward Model)训练:对不同模型产出的若干候选回复,由人工对这些回复进行排序(ranking);训练一个模型 rθ(x,y) 来预测人工偏好(即哪个回复会被人工选为更好)。
- RL(PPO)微调:以 RM 的输出作为 reward,使用 PPO 对 SFT 模型进一步微调;为了防止策略漂移过大,在每个 token 上加入与 SFT 模型的 KL 惩罚(或把预训练梯度混入,见 PPO-ptx)。
创新点:
- 将"人类偏好"量化为可优化的目标函数
- 将复杂的价值观判断分解为可学习的奖励信号
- 在保持语言能力的同时优化对话质量
5.3 数据集:来源、格式与规模#
数据来源分为两类:labeler-written(由标注员构造的指令/示例) 和 customer/API prompts(用户在 Playground 提交的真实提示)。论文把用于三类训练的集合列出(以“prompt 数目”计):
- SFT 数据集(问答指令数据集)
- train — labeler:11,295
- train — customer:1,430
- valid — labeler:1,550
- valid — customer:103
- RM(Reward Model)数据集(偏好数据集,用于训练排序模型)
- train — labeler:6,623
- train — customer:26,584
- valid — labeler:3,488
- valid — customer:14,399
- PPO(RL)数据集(提示数据集,用于 RLHF,通常只用 customer prompts)
- train — customer:31,144
- valid — customer:16,185
其他数据相关要点:
- 对每个 prompt,标注员会对模型生成的 K 个候选回复(K≈4–9) 做排名(ranking),这样会产生 up to K*(K−1)/2 对比较对,用于 RM 的训练。为了避免过拟合,论文对比较对做了特殊的批处理策略(把一个 prompt 的所有 K 个回复作为一个 batch 单元来训练 RM)。
- 标注团队约 40 名承包标注员(contractors),通过筛选测试选出,以保证对“有害/有偏见内容”的敏感性和偏好判定的质量。
5.4 模型与训练目标#
SFT(监督微调)
- 用标注员示范(prompt → 人工写好的理想回复)做 标准的交叉熵监督训练,得到 SFT 基线模型( )。
Reward Model(RM)的损失(pairwise ranking loss)
- RM 的目标是给出一个标量评分 ,使得被人工偏好(更好的回复)在评分上高于被舍弃的回复。论文采用成对排序的 logistic(pairwise)损失,形式为(论文公式):
其中 是在一对中被标注为“更好”的回复, 为 sigmoid。直观上,这个损失推动 RM 使得被偏好的回复得分更高。论文在实现上把对同一 prompt 的 K 个回复一起作为一个 batch 元素来避免过拟合并加速。
RL(PPO)阶段的目标(带 KL 惩罚的期望 reward)
- 用 RM 的标量 作为 reward,使用 PPO 对策略 (基于 SFT 初始化)做 max-reward 的强化学习。为避免模型为了追求 reward 而产生极端/不可控输出,加入 每个 token 的 KL 惩罚项(相对于 ),并且论文还提出将预训练(pretrain)目标的梯度混入 RL 更新(称为 PPO-ptx),总体目标可以写成(论文给出的合并形式):
- 解释:第一项是期望 RM-reward 减去 β 倍的 KL(以 log 比例表示),第二项(系数 γ)是把预训练 log-likelihood 加回去以减轻 RL 导致的“性能回退”(alignment tax)。
5.5 训练流程#
总体步骤:SFT → 收集候选回复与人工排序 → 训练 RM → 用 RM 做 reward,对 SFT 用 PPO 微调(可选混入 pretrain 梯度)。
详细流程与实现细节(论文中给出的关键点):
- 收集 prompt 与演示:从 InstructGPT Playground 的用户 prompt(customer)与标注员编写的 prompt(labeler)混合构成数据集;标注员为每个 prompt 编写示范回答(SFT 数据)。
- SFT 训练:用标注员示范训练 SFT 模型(cross-entropy)。
- 生成候选并做 ranking:用多种策略(不同 checkpoint /温度等)生成 K 个回复,标注员对 K 个回复做完整排序(K≈4–9),得到比较数据。论文采用将同一 prompt 的所有 K 个回复作为一个 batch 元素来训练 RM,能避免过拟合。
- 训练 RM:训练单一 6B reward model(论文最终选择用 6B RM,因为 175B RM 虽然在验证集上 loss 低但训练不稳定、计算成本更高),RM 用上面的 pairwise loss 训练(一般训练 1 个 epoch,lr ≈ 9e-6,batch size 64,训练对 epoch 很敏感,过多 epoch 会过拟合)。 RM 的初始化:用一个 6B GPT-3(在若干公开 NLP 数据集上 finetune 的 checkpoint)来初始化。
- PPO 微调(RLHF):把 RM 输出作为即时 reward 的 bandit 环境(每条交互是一个 prompt → single reply,episode 立即结束)。用 PPO 对策略进行优化,同时在 reward 中加入 每 token KL 惩罚(系数 β),并可选地把预训练 loss 的梯度混入(系数 γ,得到 PPO-ptx)以减轻在某些公共 NLP 任务上的性能回退。论文中 value-function 也用 6B 初始化并被用于 advantage 估计。
超参数/工程要点(论文中提及):
- RM 训练:单 epoch,lr≈9e-6,batch=64;太多 epoch 会快速过拟合。
- 对所有 PPO 模型都使用同一个 6B RM 与 6B value function(便于比较不同 policy model 尺寸的效果)。具体 policy 的 value learning rate:1.3B/6B 用 9e-6,175B 用 5e-6(论文给出实验细节)。
5.6 实验结果#
人类偏好(primary claim):在作者的 API prompt 分布上,标注员显著更喜欢 InstructGPT(经过 RLHF 的模型)输出。甚至 1.3B 的 InstructGPT(PPO-ptx)在他们的测试集上比 175B 原始 GPT-3 更受偏好(也就是说,微调与对齐带来的质量提升可以超过单纯“更大模型参数量”的提升)。此外,175B 的 InstructGPT 比 175B GPT-3 优胜约 85% ± 3%,相比 few-shot 175B GPT-3 优胜 71% ± 4%。
真实性(TruthfulQA)与杜绝 hallucination:在 TruthfulQA 基准上,InstructGPT 生成既真实又信息性的回答出现频率约为 GPT-3 的 2 倍;在“闭域任务”(输出不应包含输入中不存在的信息)中,InstructGPT 的编造(hallucination)率约 21%,而 GPT-3 为 41%。
毒性(toxicity):使用 RealToxicityPrompts 做自动与人工评估,InstructGPT 在“被提示要尊重他人”的条件下生成的有毒回复 减少约 25%。在偏见(bias)评估(例如 Winogender、CrowS-Pairs)上并未显著好转。
性能退化(alignment tax):直接用 RLHF 可能会在某些公共 NLP 基准(如 SQuAD、DROP、HellaSwag、WMT 翻译)上出现回退;论文提出通过将预训练梯度混入(PPO-ptx)可以在不牺牲偏好得分的前提下显著降低这种回退。
5.7 局限性与讨论#
偏好是“有界”的:RLHF 将模型对齐到特定标注员(约 40 人)的偏好集合,这 并不等同于普遍的人类价值;不同群体/不同标注员偏好可能不同,模型如何在更广泛的人群上泛化仍需研究。
RM 与 reward hacking 风险:RM 只是对人工偏好的近似,RL 阶段可能出现对 RM 的过度优化(并非真实的“更好”),因此论文采用 KL 惩罚与其它工程手段来缓解,但长期来看这是一个研究难点。
不彻底解决事实性与安全性问题:尽管在 TruthfulQA 和毒性上有改善,但 InstructGPT 仍会犯错、编造事实或在某些任务上表现不佳。论文把这当作未来工作方向。
5.8 结论#
InstructGPT 的关键贡献不是提出全新的模型架构,而是展示了 用人类偏好来微调大型 LM(RLHF)是一个可行的、在实用上效果显著的对齐路径:能显著提升“按指令回答”和“更可信 / 更少有毒”这类行为,且在某些情况下,参数更少但经过 RLHF 的模型优于更大的未对齐模型。
三步流程(SFT → RM → PPO)是工程上可复现的管线;关键实践包括:用合适的 batch & ranking 策略训练 RM、用 KL(或 pretrain-mix)限制 RL drift、用单一稳定的 6B RM 作为所有策略的 reward 模型以降低不稳定性与计算开销。
参考: