阐释人类反馈强化学习 (RLHF)
人类反馈强化学习 (RLHF) 是一种通过使用强化学习直接根据人类偏好优化模型,从而使大型语言模型 (LLMs) 与人类价值观对齐的方法。这一过程允许模型超越简单的下一标记预测,从而生成更具帮助性、真实性和安全性的文本。
RLHF 训练的三步流程
RLHF 是一个多阶段的训练流水线,旨在将通用预训练模型转化为对齐的助手。该过程分为三个核心步骤:
1. 语言模型预训练
该过程始于使用经典目标(例如用于下一标记预测的交叉熵损失)进行预训练的语言模型。虽然初始模型可以在增强数据上进行微调——例如人类生成的“更优”文本 (OpenAI) 或用于“有帮助、诚实且无害”标准的蒸馏上下文线索 (Anthropic)——但核心要求是模型能够对多样化的指令做出良好的响应。
2. 奖励模型训练
由于定义“优质”文本的数学损失函数是难以实现的,因此 RLHF 使用奖励模型 (RM) 来以数值形式表示人类偏好。
- 目标: RM 接收一段文本序列并返回一个标量奖励。
- 数据收集: 从数据集中采样提示词 (Prompts),并通过初始 LM 生成多个输出。随后,人类标注员对这些输出进行排序。
- 排序优于评分: 人类通过面对面对决的方式(通常使用 Elo 系统)对输出进行排序,而不是提供绝对的标量分数,因为排序的噪声更小,且在不同标注员之间更具校准性。
- 模型容量: 奖励模型的大小各异。例如,OpenAI 使用了 6B 的奖励模型来配合 175B 的 LM,而 DeepMind 使用了 70B 的 Chinchilla 模型来同时作为 LM 和奖励模型。
3. 使用强化学习进行微调
最后阶段使用策略梯度 RL 算法,通常是 Proximal Policy Optimization (PPO),根据奖励模型的评分来优化初始 LM 的副本。
- RL 公式化:
- 策略 (Policy): 接收提示词并返回文本序列的 LM。
- 动作空间 (Action Space): 语言模型的词汇表(通常约为 50k 个 tokens)。
- 观测空间 (Observation Space): 可能的输入 token 序列的分布。
- 奖励函数 (Reward Function): 结合了来自偏好模型的标量奖励 ($r_{\theta}$) 以及基于 RL 策略与初始预训练模型之间的 Kullback–Leibler (KL) 散度所产生的惩罚项 ($r_{\text{KL}}$)。
- KL 惩罚: KL 散度项可以防止模型偏离原始预训练模型过远。如果没有这种惩罚,模型可能会生成一些“欺骗”奖励模型并使其给出高分的胡言乱语。
- 更新规则: PPO 被用作信任区域优化算法,以确保梯度更新不会破坏学习过程的稳定性。
RLHF 的开源工具
几个基于 PyTorch 的仓库提供了实现 RLHF 所需的基础设施:
- TRL (Transformers Reinforcement Learning): 专为在 Hugging Face 生态系统中通过 PPO 微调预训练 LM 而设计。
- TRLX: 由 CarperAI 构建的 TRL 的扩展分支,旨在处理更大的模型(最高支持 33B 参数,未来将支持 200B),用于在线和离线训练,支持 PPO 和 Implicit Language Q-Learning (ILQL)。
- RL4LMs: 来自 AllenAI 的一个库,为各种 RL 算法(PPO, NLPO, A2C, TRPO)和奖励函数提供构建模块,并在 2,000 次实验中进行了基准测试。
当前局限性与未来方向
尽管在 ChatGPT 等模型中取得了成功,RLHF 仍面临若干系统性挑战:
- 数据成本与质量: 收集人类偏好数据非常昂贵。高质量的人类生成文本需要专门的员工,且人类标注员之间往往存在分歧,这会在训练数据中引入偏差。
- 模型缺陷: 经过 RLHF 微调的模型在不表达不确定性的情况下,仍可能产生有害或事实错误的文本。
- 优化机会: PPO 是一种较旧的算法,仍有大量的设计空间可以探索。潜在的改进方向包括使用离线 RL(如 ILQL)以避免在训练期间进行昂贵的奖励模型前向传播,以及探索不同的探索与利用 (exploration-exploitation) 平衡。